Skip to main content
skill CX Codex

revenuecat-cli — Claude Code skill: RevenueCat from the terminal

A skill that teaches your agent to drive RevenueCat with the official rc CLI: projects, products, paywalls, image and font uploads. Useful when MCP lacks the operation.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add RevenueCat/ai-toolkit --skill revenuecat-cli -a claude-code
Open on GitHub

What revenuecat-cli does

The skill documents running RevenueCat from a shell through the official rc command line interface. It covers most of what the RevenueCat MCP server does: projects, apps, products, entitlements, offerings, paywalls, charts, store state. The CLI adds paywall generate and edit, plus uploads of paywall images to the Media Gallery (rc media-assets upload) and custom fonts (rc fonts upload). MCP has no upload tools for those.

Before the first command the skill has you check the install (rc --version) and the login (rc auth status --json). The CLI keeps its own credential, separate from the MCP server, so the user runs rc auth login themselves — it opens a browser for OAuth. In CI you set RC_API_KEY or pass --api-key instead. Installing via brew or npm install -g changes the user's machine, so ask first; npx @revenuecat/cli needs no install.

The CLI authenticates with a RevenueCat secret key (sk_...), which is correct for a server-side tool. Public SDK keys (appl_/goog_/amzn_) belong in client app code, and a secret key never goes into an app or into a chat message. Don't guess flags — ask the binary. rc commands --schemas --json returns every command's flags, args and examples in one call. Images run up to 2 MiB, fonts up to 5 MiB, and the file has to exist on disk first.

What it helps with

  • upload a paywall image to the Media Gallery without the dashboard
  • push a custom paywall font from the terminal
  • check product and entitlement state in CI
  • generate or edit a paywall with rc paywalls
  • find the exact flags for a command without reading docs

Example prompts for the agent

  • Check whether rc is installed and print the version
  • Upload paywall-hero.png to the Media Gallery with rc media-assets upload
  • List the project's products as JSON

How to install revenuecat-cli

1Skills CLI (Vercel)

npx skills add RevenueCat/ai-toolkit --skill revenuecat-cli -a claude-code

2Manually: put the files in place

~/.claude/skills/revenuecat-cli/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/revenuecat-cli/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about revenuecat-cli

How do I install revenuecat-cli in Claude?

Run npx skills add RevenueCat/ai-toolkit --skill revenuecat-cli -a claude-code. The skill then lives at ~/.claude/skills/revenuecat-cli/SKILL.md.

What does revenuecat-cli do?

It covers RevenueCat work through the official rc CLI: install, authentication, command discovery and output conventions. It also handles paywall image and font uploads, which the MCP server cannot do.

How is the CLI different from the RevenueCat MCP server?

The two overlap on most operations. The CLI can generate and edit paywalls and upload images and fonts; the MCP server has SDK feature-gate and experiment tools the CLI lacks.

Source text

SKILL.md · MIT
---
name: revenuecat-cli
description: 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. Use for uploading paywall images to the Media Gallery (`rc media-assets upload`) or custom paywall fonts (`rc fonts upload`) — MCP has no upload tools for these. Referenced by the other RevenueCat skills whenever they offer a CLI path.
---

# 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 and paywall image/font upload; 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.

## Before the first command

The CLI needs a shell. Without one (for example in a chat app with only the MCP server), use MCP, or tell the user which `rc` command to run or which dashboard page to use.

1. **Check it is installed:** `rc --version`. If that fails, pick one:
   - Run without installing: `npx @revenuecat/cli <command>` everywhere `rc` appears below. Needs Node. Best for CI and agent sandboxes.
   - Install on macOS/Linux: `brew install RevenueCat/tap/rc`.
   - Install with npm: `npm install -g @revenuecat/cli`.

   Installing changes the user's machine, so ask before running `brew` or `npm install -g`. `npx` needs no permission beyond running the command.
2. **Check it is logged in:** `rc auth status --json`. The CLI does not share the MCP server's login. If no credential is active, ask the user to run `rc auth login` themselves: it opens a browser for OAuth. In CI, set `RC_API_KEY` or pass `--api-key`.
3. **Check the project:** pass `--project-id <id>`, or have the user set a default with `rc projects use`.

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, and never ask the user to paste one into the chat.

## 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` (dashboard design/audit playbook: `revenuecat-paywall-design`)
- **Paywall media and fonts**: `rc media-assets list|upload <file>`, `rc fonts list|upload <file>`. MCP cannot upload these; do not use the dashboard in a browser.
- **Dashboard**: `rc open [section] [id] --print` (resource URLs: `revenuecat-dashboard-links`)

Images: jpg/png/webp/avif/heic/heif, up to 2 MiB. Fonts: ttf/otf, up to 5 MiB. Write or generate the file on disk first, then pass that path. Confirm flags with `rc schema media-assets upload` / `rc schema fonts upload`.

Prefer the specific command. Drop to `rc api <METHOD> <path>` only for endpoints not yet in the CLI surface.

© RevenueCat · MIT · RevenueCat/ai-toolkit

Similar skills

All skills for Agent setup: memory, context, orchestration →

From the same set25

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor