Quickstart
1. Sign in
Section titled “1. Sign in”revcat auth loginrevcat opens your browser for the OAuth flow, you authorize against RevenueCat, and the tokens land in ~/.revcat/config.json (mode 0600).
2. Bind a project to your repo
Section titled “2. Bind a project to your repo”cd ~/your-reporevcat init
revcat init lists projects you can access, prompts for one (and optionally apps), then writes:
revcat.toml(committed): recordsproject_id+ apps so agit clonedocuments which RC project this repo belongs to..revcat/config.json(gitignored, mode 0600): copies your credential into the directory so subsequent commands and any agent or sandbox in the directory inherit it without touching~/.revcat/config.json.
.revcat/ is auto-appended to .gitignore.
3. Verify
Section titled “3. Verify”revcat auth doctorrevcat doctorBoth should report OK for every check.
4. Run your first command
Section titled “4. Run your first command”Inside the repo, project context is automatic:
revcat metrics overviewrevcat subscribers info app_user_123revcat publish offering pro --paywall ./paywalls/pro.jsonMultiple accounts
Section titled “Multiple accounts”Juggling several RC accounts? Log in to each with a different --name and switch:
revcat auth login --name workrevcat auth login --name personalrevcat auth use personal # default for global commandsrevcat --profile work auth status # one-shot overrideWhen you revcat init inside a repo, it copies whichever profile is active at that moment. If you need to switch credentials for an existing repo, rerun revcat init --force.
Headless / CI
Section titled “Headless / CI”For fresh sandboxes with no browser:
export REVCAT_REFRESH_TOKEN=rtk_...export REVCAT_PROJECT_ID=proj_...revcat offerings listrevcat synthesizes a virtual profile, refreshes tokens in-memory, and skips the login flow entirely. Pull the refresh token from your CI secret manager.