revenuecat-cli: driving RevenueCat from the terminal
rc is the official RevenueCat command line interface. It covers most of the same project, app, product, entitlement, offering, paywall, chart, and store-state operations as the RevenueCat MCP server (the CLI adds paywall generate/edit; the MCP server has some SDK feature-gate and experiment tools the CLI does not). Use whichever surface is available; this skill is the reference for the CLI path.
Install and authenticate
- Run without installing:
npx @revenuecat/cli <command> (good for CI and agent sandboxes).
- Or install:
brew install RevenueCat/tap/rc, or npm install -g @revenuecat/cli.
- Authenticate once with
rc auth login (browser OAuth), or set RC_API_KEY. Non-interactively, pass --api-key or set RC_API_KEY.
- The CLI authenticates with a RevenueCat secret key (
sk_...); that is correct because the CLI is a server-side tool. This is not the same as the public SDK keys (appl_/goog_/amzn_) you fetch for client app code. Never put a secret key in an app.
Discover the surface
The CLI is self-describing. Don't guess a command or flag, ask the binary:
rc commands --json lists the full command tree. Capability IDs appear in colon form (apps:create, products:store:plan).
rc commands --schemas --json returns every command's flags, args, and examples in one call. This is the most reliable way for an agent to discover per-command detail.
rc schema <command> --json returns detail for a single command, but the command must be space-separated tokens (rc schema apps create), not the colon form from rc commands. rc schema apps:create silently returns the root schema, so when in doubt use rc commands --schemas.
rc --help and rc <noun> --help give human-readable help.
Output conventions
--json gives stable, machine-readable output. Data goes to stdout, progress and chatter to stderr.
- The envelope is
{ "data": ... }, but the shape under data varies by command: lists are usually data.items[], though some commands use other keys (charts use data.names[]). Inspect the schema or the response rather than assuming data.items.
--no-input never prompts, it fails instead. Use it in scripts, CI, and agents.
--yes / -y skips confirmation prompts on mutating commands.
--project-id <id> selects the project (or set a default with rc projects use). Pass it explicitly in scripts.
- Exit codes:
0 success, 1 error, 2 bad usage, 4 auth, 5 not found, 6 rate limited.
Common operations
Look up exact flags with rc commands --schemas --json (or rc schema <space-separated command>). The common nouns:
- Projects and apps:
rc projects list|create|use, rc apps list|create|keys
- Catalog:
rc products ..., rc entitlements ..., rc offerings ..., rc packages ...
- Store credentials and state:
rc setup apple|google, rc products store plan|apply|sync
- Data:
rc charts list|show, rc customers ...
- Paywalls:
rc paywalls generate|edit|publish
Prefer the specific command. Drop to rc api <METHOD> <path> only for endpoints not yet in the CLI surface.
1---2name: revenuecat-cli3description: Drive RevenueCat from the terminal with the `rc` CLI, an alternative to the RevenueCat MCP server for humans, CI, and agents. Covers install, authentication, command discovery, and output conventions. Referenced by the other RevenueCat skills whenever they offer a CLI path.4---5
6# revenuecat-cli: driving RevenueCat from the terminal
7
8`rc` is the official RevenueCat command line interface. It covers most of the same project, app, product, entitlement, offering, paywall, chart, and store-state operations as the RevenueCat MCP server (the CLI adds paywall generate/edit; the MCP server has some SDK feature-gate and experiment tools the CLI does not). Use whichever surface is available; this skill is the reference for the CLI path.
9
10## Install and authenticate
11
12- Run without installing: `npx @revenuecat/cli <command>` (good for CI and agent sandboxes).
13- Or install: `brew install RevenueCat/tap/rc`, or `npm install -g @revenuecat/cli`.
14- Authenticate once with `rc auth login` (browser OAuth), or set `RC_API_KEY`. Non-interactively, pass `--api-key` or set `RC_API_KEY`.
15- The CLI authenticates with a RevenueCat **secret** key (`sk_...`); that is correct because the CLI is a server-side tool. This is not the same as the **public** SDK keys (`appl_`/`goog_`/`amzn_`) you fetch for client app code. Never put a secret key in an app.
16
17## Discover the surface
18
19The CLI is self-describing. Don't guess a command or flag, ask the binary:
20
21- `rc commands --json` lists the full command tree. Capability IDs appear in colon form (`apps:create`, `products:store:plan`).
22- `rc commands --schemas --json` returns every command's flags, args, and examples in one call. This is the most reliable way for an agent to discover per-command detail.
23- `rc schema <command> --json` returns detail for a single command, but the command must be **space-separated tokens** (`rc schema apps create`), not the colon form from `rc commands`. `rc schema apps:create` silently returns the root schema, so when in doubt use `rc commands --schemas`.
24- `rc --help` and `rc <noun> --help` give human-readable help.
25
26## Output conventions
27
28- `--json` gives stable, machine-readable output. Data goes to stdout, progress and chatter to stderr.
29- The envelope is `{ "data": ... }`, but the shape under `data` varies by command: lists are usually `data.items[]`, though some commands use other keys (charts use `data.names[]`). Inspect the schema or the response rather than assuming `data.items`.
30- `--no-input` never prompts, it fails instead. Use it in scripts, CI, and agents.
31- `--yes` / `-y` skips confirmation prompts on mutating commands.
32- `--project-id <id>` selects the project (or set a default with `rc projects use`). Pass it explicitly in scripts.
33- Exit codes: `0` success, `1` error, `2` bad usage, `4` auth, `5` not found, `6` rate limited.
34
35## Common operations
36
37Look up exact flags with `rc commands --schemas --json` (or `rc schema <space-separated command>`). The common nouns:
38
39- **Projects and apps**: `rc projects list|create|use`, `rc apps list|create|keys`
40- **Catalog**: `rc products ...`, `rc entitlements ...`, `rc offerings ...`, `rc packages ...`
41- **Store credentials and state**: `rc setup apple|google`, `rc products store plan|apply|sync`
42- **Data**: `rc charts list|show`, `rc customers ...`
43- **Paywalls**: `rc paywalls generate|edit|publish`
44
45Prefer the specific command. Drop to `rc api <METHOD> <path>` only for endpoints not yet in the CLI surface.