Docs-Builder

# Auth & Licensing Quick Reference

Version: 1.1.1
Last Updated: January 23, 2026


Plan Snapshot

Plan Key Features Notes
Ren’Py Free All features (AI, pilot, PFI, patch, cloud solo) 30-day token, free forever, renewable
Free (Registered) Full analysis, doctor lite, compare No payment; login required
Pro AI, pilot, PFI, patch, cloud solo 30-day auto-renew
Team Pro + team cloud, identity, audit, policy 30-day auto-renew
Enterprise Team + SSO, priority support, VPC Contract

Token Lifetimes

  • Access: 15 minutes (memory only)
  • Refresh: 30–90 days (disk)
  • License (entitlements): 30–90 days (disk), offline allowed up to max_offline_days (default 30)

Common Commands (CLI)

branchpy license login                 # Email/password login
branchpy license status --json         # Show plan/features
branchpy license claim-renpy           # Idempotent Ren’Py claim
branchpy license logout                # Revoke refresh token

Python Gating Helpers

from branchpy.license import has_feature, require_feature, get_plan

if has_feature("pilot_mode"):
    run_pilot()

@require_feature("ai_review", "AI Review")
def review():
    ...

Env Vars (critical)

  • JWT_PRIVATE_KEY, JWT_PUBLIC_KEY (access/refresh)
  • LICENSE_PUBLIC_KEY (entitlements verification)
  • MAX_OFFLINE_DAYS (default 30)
  • RATE_LIMIT_AUTH_LOGIN, RATE_LIMIT_DEVICE_START, RATE_LIMIT_DEVICE_POLL
  • CORE_DB_URL / CORE_DB_URL_PROXY (Postgres)

Support Patterns

  • “License required” → login or claim-renpy, then re-run command
  • Device approval stuck → ensure /device/poll is called; rebuild extension if missing
  • Duplicate email errors → verify Migration 024; lower-case emails

References