RevenueCat CLI command reference
Every RevenueCat CLI command, grouped the way the CLI groups them
This page lists every RevenueCat CLI command and what it does. To install the CLI, see Setup. For what the CLI is and when to use it instead of the dashboard, see RevenueCat CLI.
Groups and their order match rc --help. Within a group, commands are ordered by the sequence you'd run them in. The CLI itself is the source of truth for flags and arguments: rc commands prints the full command tree, and rc schema <cmd> prints any command's flags, arguments, and examples.
Some commands are experimental: hidden from rc --help until their feature ships, but runnable, revealed with rc --all, and marked "experimental": true in rc commands output.
Global flags
These flags work on every command:
| Flag | What it does |
|---|---|
--json | Machine-readable output with a stable shape |
--no-input | Fail rather than prompt, for scripts and CI |
--project-id <id> | Act on a specific project (precedence: flag → $RC_PROJECT_ID → .revenuecat.json in the directory tree → the profile default) |
--profile <name> | Config profile (precedence: flag → $RC_PROFILE → rc profiles use → default) |
--api-key <key> | Override the profile's API key ($RC_API_KEY) |
--yes, -y | Skip confirmation prompts |
--quiet, -q | Suppress non-essential output |
--all | Also show experimental (unreleased) commands in help |
--no-color | Disable ANSI color (also respects $NO_COLOR) |
--format <expr> | jq expression applied to --json output |
Exit codes
| Code | Meaning |
|---|---|
| 0 | Success |
| 1 | Error |
| 2 | Bad usage |
| 4 | Authentication / authorization |
| 5 | Not found |
| 6 | Rate limited |
Get started
Authentication and profiles
| Command | What it does |
|---|---|
rc auth login | Log in with browser OAuth or an API key |
rc auth signup | Create a RevenueCat account without a browser; see For coding agents |
rc auth status | Show auth state and cached account identity |
rc auth logout | Clear credentials from the active profile |
rc profiles list | List configured profiles |
rc profiles show [name] | Show the resolved active or named profile |
rc profiles use <name> | Switch the active profile |
rc profiles delete <name> | Remove a profile |
rc login and rc whoami are shortcuts for rc auth login and rc auth status.
Projects
| Command | What it does |
|---|---|
rc projects list | List the projects your account can reach |
rc projects show [id] | Show one project |
rc projects create | Create a project; --use saves it as the active project |
rc projects use [project-id] | Switch the profile's default project (interactive picker if no argument) |
Setup
Guided setup and store credential flows. The store flows run locally: your Apple or Google sign-in stays between you and the store, and the CLI uploads only the resulting credentials to RevenueCat. <app-id> is the RevenueCat app ID (like app_abc), not a bundle ID or a store app ID.
| Command | What it does |
|---|---|
rc setup | Agent-guided setup of your whole RevenueCat project; run it with --json to get the setup prompt for your own agent |
rc setup apple [app-id] | Sign in to App Store Connect, create the missing In-App Purchase and App Store Connect API keys, and upload them |
rc setup google [app-id] | Sign in to Google, bootstrap the Play service-account credential, grant package-scoped access, and upload it |
The store flows are marked requires_human in rc commands: Apple and Google sign-in need a person in a local interactive terminal, because they involve two-factor authentication. The manual equivalents are documented in App Store Connect API keys, In-App Purchase keys, and Google Play service credentials.
Dashboard access
| Command | What it does |
|---|---|
rc open [section] [id] | Open the dashboard deep-linked to the active project |
rc browse | Open an interactive project hub in the terminal |
Design paywalls
Paywalls
Create and edit Paywalls, including generating and editing them from a prompt.
| Command | What it does |
|---|---|
rc paywalls list | List Paywalls |
rc paywalls show <id> | Show one Paywall |
rc paywalls generate --prompt "..." | Generate a Paywall with AI; --offering-id attaches it to an Offering |
rc paywalls edit <paywall-id> --prompt "..." | Edit a Paywall with AI, or continue a session with --session <file> |
rc paywalls rewind --session <file> | Undo the last editor action |
rc paywalls publish [id] | Publish the current draft (requires confirmation or --yes) |
rc paywalls unpublish [id] | Remove the published Paywall (requires confirmation or --yes) |
rc paywalls attach <paywall-id> <offering-id> | Attach or move a Paywall to an Offering (one Paywall per Offering) |
rc paywalls detach <paywall-id> | Make a Paywall standalone; unpublish a published Paywall first |
rc paywalls delete <id> | Delete a Paywall; attached or published Paywalls refuse without --force |
Media assets and fonts
Assets for use in Paywalls.
| Command | What it does |
|---|---|
rc media-assets list | List images in the project's Media Gallery |
rc media-assets upload <file> | Upload an image (jpg/png/webp/avif/heic/heif, up to 2 MiB) to the Media Gallery |
rc fonts list | List fonts uploaded to the project |
rc fonts upload <file> | Upload a font (ttf/otf, up to 5 MiB) for use in Paywalls |
Manage your catalog
Products
Products are the purchasable items in your catalog; see Products overview. The store subcommands manage your store catalog as a reviewable plan: describe the desired state, review the computed diff, then apply it. The server decides which stores and fields it supports — App Store Connect and Google Play are the most complete. Store-state plans may not be available on every account yet.
| Command | What it does |
|---|---|
rc products list | List Products |
rc products show <id> | Show one Product |
rc products create | Create a Product |
rc products update <id> | Update a Product |
rc products archive <id> | Archive a Product (kept on file, hidden from new Offerings) |
rc products restore <id> | Restore an archived Product |
rc products delete <id> | Delete a Product |
rc products push <id> | Push a Product to the store |
rc products prices [product-id] | List Test Store and Web Billing prices |
rc products prices set [product-id] | Create or update Test Store prices idempotently (--price USD=9.99) |
rc products store sync [app-id] | Interactive store sync: gather desired state, review the diff, confirm, apply |
rc products store plan [app-id] | Persist a desired-state plan and its diff on the backend (--file <path|->) |
rc products store list | List persisted store plans |
rc products store show <plan-id> | Inspect a persisted plan from any process |
rc products store apply <plan-id> | Apply a reviewed plan (requires confirmation or --yes) |
rc products store discard <plan-id> | Discard a plan without applying |
rc products store screenshot <product-id> | Upload an App Review screenshot to App Store Connect for a Product |
Entitlements
Entitlements gate what a Customer has access to; see Entitlements.
| Command | What it does |
|---|---|
rc entitlements list | List Entitlements |
rc entitlements show <id> | Show one Entitlement |
rc entitlements create | Create an Entitlement |
rc entitlements update <id> | Update an Entitlement |
rc entitlements attach <id> <product-id> [...] | Attach one or more Products |
rc entitlements detach <id> <product-id> [...] | Detach one or more Products |
rc entitlements products <id> | List the Entitlement's attached Products |
rc entitlements archive <id> | Archive an Entitlement |
rc entitlements restore <id> | Restore an archived Entitlement |
rc entitlements delete <id> | Delete an Entitlement |
Offerings and packages
Offerings are the sets of Packages your app presents; see Offerings overview.
| Command | What it does |
|---|---|
rc offerings list | List Offerings |
rc offerings show <id> | Show one Offering |
rc offerings verify [id] | Inspect the full Offering graph: Packages, Products, prices, Entitlements, Paywall state, and an issues array |
rc offerings preview [app-id] | Show the v1 SDK response an app receives, using the app's public SDK key |
rc offerings create | Create an Offering |
rc offerings update <id> | Update an Offering |
rc offerings set-current <id> | Make an Offering the SDK's current Offering (requires confirmation or --yes) |
rc offerings archive <id> | Archive an Offering |
rc offerings restore <id> | Restore an archived Offering |
rc offerings delete <id> | Delete an Offering |
rc offerings packages <offering-id> | List an Offering's Packages |
rc packages list | List Packages across all Offerings |
rc packages show <package-id> | Show one Package |
rc packages create <offering-id> | Create a Package in an Offering |
rc packages update <package-id> | Update a Package |
rc packages attach <package-id> <product-id> [...] | Attach one or more Products |
rc packages detach <package-id> <product-id> [...] | Detach one or more Products |
rc packages products <package-id> | List a Package's attached Products and eligibility criteria |
rc packages delete <package-id> | Delete a Package |
Manage customers & revenue
Customers
Look up and act on Customers. rc customers show embeds active Entitlements in one response.
| Command | What it does |
|---|---|
rc customers list | List Customers |
rc customers show [id] | Show one Customer, including active Entitlements |
rc customers aliases <id> | List a Customer's aliases |
rc customers attributes <id> | List a Customer's attributes |
rc customers set-attribute <id> <key> <value> | Set a single Customer attribute |
rc customers grant <customer-id> [entitlement-id] | Grant a promotional Entitlement (--duration daily|weekly|monthly|yearly|lifetime|...) |
rc customers revoke <id> <entitlement> | Revoke a granted Entitlement |
rc customers transfer <from> --to <id> | Transfer purchases between Customers |
rc customers override-offering <id> --offering <id> | Override the Offering a Customer sees |
rc customers clear-override <id> | Clear a Customer's Offering override |
rc customers restore-google <id> --token <t> | Restore a Google purchase by token |
rc customers simulate-purchase | Create a real headless Test Store transaction (--app-id, --product, --app-user-id) |
rc customers balances <id> | Show a Customer's In-App Currency balances |
Subscriptions, purchases, and invoices
| Command | What it does |
|---|---|
rc subscriptions show <id> | Show one subscription |
rc subscriptions transactions <id> | List a subscription's transactions |
rc subscriptions entitlements <id> | List the Entitlements a subscription unlocks |
rc subscriptions management-url <id> | Show the subscription's management URL |
rc subscriptions extend <id> --by <duration> | Extend a subscription's billing period |
rc subscriptions cancel <id> | Cancel a subscription (Web Billing only) |
rc subscriptions refund <id> | Refund a subscription (Web Billing only) |
rc purchases show <id> | Show one purchase |
rc purchases entitlements <id> | List the Entitlements a purchase unlocks |
rc purchases refund <id> | Refund a purchase (Web Billing only) |
rc invoices show <id> | Show one invoice |
rc invoices for <customer-id> | List a Customer's invoices |
Charts and metrics
Project analytics in the terminal; the same data as Charts in the dashboard.
| Command | What it does |
|---|---|
rc metrics | Show project-wide overview KPIs |
rc charts list | Print the available chart names |
rc charts show <name> | Show a chart: interactive in a terminal, raw data with --json (--filter key=value) |
rc charts options <name> | Show the filters a chart accepts |
Connect apps & integrations
Apps
| Command | What it does |
|---|---|
rc apps list | List the project's apps |
rc apps show <id> | Show one app |
rc apps create | Create an app |
rc apps update <id> | Update an app |
rc apps delete <id> | Delete an app |
rc apps keys <app-id> | Show the app's public SDK keys |
rc apps storekit-config <app-id> | Show the app's StoreKit configuration; optionally writes a .storekit file |
rc apps apple check [app-id] | Validate Apple login, two-factor authentication, team selection, and key access (read-only) |
Webhooks
Manage the project's webhooks.
| Command | What it does |
|---|---|
rc webhooks list | List webhooks |
rc webhooks show <id> | Show one webhook |
rc webhooks create | Create a webhook |
rc webhooks update <id> | Update a webhook |
rc webhooks delete <id> | Delete a webhook |
Automate with AI
Skills
Install the AI Toolkit skills for your coding agent. See RevenueCat CLI for coding agents.
| Command | What it does |
|---|---|
rc skills install | Install the core skills globally; --project for repository-local, --all for the full catalog |
rc skills prompts | Show copy-ready starter prompts |
Rico
Talk to Rico, RevenueCat's AI assistant, from the terminal.
| Command | What it does |
|---|---|
rc rico [message] | Open a streaming chat with tool approvals; --plain for a line loop |
rc rico --continue | Continue the most recent conversation |
rc rico -r | Pick a past conversation to resume |
rc rico --print "..." --json | Headless: one answer and exit, for scripts and agents |
rc rico conversations list | List past conversations (show <id>, delete <id>) |
rc rico feedback <run-id> <good|bad> | Rate a Rico response |
Advanced
The discovery commands are what agents use to learn the CLI's surface at runtime; see RevenueCat CLI for coding agents.
| Command | What it does |
|---|---|
rc commands | Print the full command tree with capabilities (--json for agents) |
rc schema <cmd> | Print a command's flags, arguments, and examples |
rc api <method> <path> | Call any RevenueCat API v2 endpoint with the CLI's credentials (--body <json|@file|@->) |
rc audit | List recent audit log events (--limit, --cursor) |
rc completion <shell> | Generate shell completions (bash, zsh, fish, powershell) |
rc version | Print the CLI version |
Related articles
- Install and authenticate the CLI
- RevenueCat CLI for coding agents
- RevenueCat MCP Server tools reference