The command-line tool for RevenueCat — manage subscriptions, analyze charts, and export reports from your terminal.
brew tap AndroidPoet/tap && brew install revenuecat-cliOr download from Releases. After install, use revenuecat-cli or the alias rc. See all install options below.
| Feature | Command | Description |
|---|---|---|
| Magic Setup | rc magicsetup |
One-click interactive setup for iOS, Android, or both |
| 5 Templates | Freemium, Paywall, Trial, Tiered, Consumable | Preset configurations ready to customize |
| Price Input | Per-product pricing | Set display prices during setup |
| Dry Run | rc magicsetup --dry-run |
Preview everything before creating |
| Feature | Command | Description |
|---|---|---|
| 21 Chart Types | rc charts list |
Revenue, MRR, ARR, churn, trials, LTV, retention, and more |
| Chart Data | rc charts get revenue |
Fetch time-series data with resolution, date range, currency, segments |
| Chart Options | rc charts options revenue |
Discover available filters, segments, and resolutions per chart |
| Visual Export | rc charts export --format pdf |
SVG chart reports as HTML, PDF, JSON, YAML, or CSV |
| Feature | Command | Description |
|---|---|---|
| Status Dashboard | rc status |
One-command overview of your entire project |
| Live Watch | rc watch metrics |
Auto-refreshing terminal metrics dashboard |
| Project Diff | rc diff --source A --target B |
Compare entitlements and offerings between projects |
| Export/Import | rc export / rc import |
Backup and migrate project configuration as YAML |
| Full Report | rc report --format pdf |
Export entire project data as HTML, PDF, JSON, or YAML |
| Dynamic Completion | Tab on --app-id, --product-id, etc. |
Live API-powered shell completions |
Get your API key at app.revenuecat.com/settings/api-keys
rc auth login --api-key sk_your_key_here
rc init --project proj_your_project_id
rc doctor80+ commands across 16 resource groups covering the full RevenueCat API v2.
| Category | Commands | What you can do |
|---|---|---|
| Magic Setup | magicsetup |
One-click setup wizard for iOS, Android, or both |
| :--------- | :--------- | :---------------- |
| Charts | list get options export |
21 chart types with SVG visual export |
| Projects | list create |
Manage your RevenueCat projects |
| Apps | list get create update delete api-keys |
Configure app store connections |
| Products | list get create delete |
Define subscription and one-time products |
| Entitlements | list get create update delete attach detach |
Control access to premium features |
| Offerings | list get create update delete |
Group packages for remote configuration |
| Packages | list get create update delete attach detach |
Bundle products within offerings |
| Customers | list get create delete + 11 more |
Full customer lifecycle management |
| Subscriptions | get list-entitlements cancel refund |
Manage active subscriptions |
| Purchases | get list-entitlements refund |
View and refund purchases |
| Paywalls | list get create delete |
Manage paywall configurations |
| Metrics | overview |
MRR, active subscribers, trials, revenue |
| Webhooks | list create |
Set up webhook integrations |
| Audit Logs | list |
Track changes and access history |
| Auth | login switch list current delete |
Manage API key profiles |
Set up your entire RevenueCat offering stack in one command — apps, products, entitlements, offerings, and packages, all wired together.
rc magicsetup ┌─────────────────────────────────────────────┐
│ Magic Setup │
│ │
│ Apps Products Entitlements Offerings │
│ All wired together, ready to go. │
└─────────────────────────────────────────────┘
1. Pick your platform
1) iOS only (App Store)
2) Android only (Play Store)
3) Both iOS + Android (recommended)
2. Choose a template (or build custom)
1) Freemium Weekly, Monthly, Annual + Lifetime
2) Simple Paywall Monthly + Annual
3) Trial-First Free trial then Monthly / Annual
4) Tiered Basic + Pro tiers with Monthly / Annual
5) Consumable Credit / coin packs
6) Custom Build your own from scratch
3. Set prices and customize
Package Type Price Product IDs
────────────────────── ────────────── ────────────── ─────────────────────────
Weekly subscription $1.99/week iOS + Android
Monthly subscription $9.99/month iOS + Android
Annual subscription $49.99/year iOS + Android
Lifetime one_time $149.99 iOS + Android
4. Confirm and it creates everything
✓ iOS app: app_1a2b3c
✓ Android app: app_4d5e6f
✓ 8 products created
✓ Entitlements attached
✓ Offering set as current
✓ 4 packages wired up
rc magicsetup # Interactive wizard
rc magicsetup --dry-run # Preview without creating anythingFetch, explore, and export visual analytics from all 21 RevenueCat chart types.
rc charts list # List all 21 chart types
rc charts get revenue --resolution month # Fetch revenue data (monthly)
rc charts get mrr --start-date 2024-01-01 --end-date 2024-12-31
rc charts get churn --currency EUR --segment country
rc charts options revenue # Discover filters, segments, resolutionsrc charts export --format html # SVG chart report (open in browser)
rc charts export --format pdf # PDF via Chrome headless
rc charts export --format csv # Flat CSV for spreadsheets
rc charts export --format json # Structured JSON
rc charts export --format yaml # YAML
rc charts export --charts revenue,mrr,actives # Custom chart selectionAvailable charts: revenue mrr arr mrr_movement actives actives_movement actives_new trials trials_movement trials_new trial_conversion_rate conversion_to_paying churn refund_rate subscription_retention subscription_status customers_active customers_new ltv_per_customer ltv_per_paying_customer cohort_explorer
rc projects list
rc projects create --name "My Project"rc apps list
rc apps get --app-id app_xxx
rc apps create --name "My App" --type play_store
rc apps update --app-id app_xxx --name "New Name"
rc apps delete --app-id app_xxx --confirm
rc apps api-keys --app-id app_xxxrc products list
rc products get --product-id prod_xxx
rc products create --store-identifier com.app.monthly --type subscription --app-id app_xxx
rc products delete --product-id prod_xxx --confirmrc entitlements list
rc entitlements get --entitlement-id entl_xxx
rc entitlements create --lookup-key premium --display-name "Premium"
rc entitlements update --entitlement-id entl_xxx --display-name "Premium+"
rc entitlements delete --entitlement-id entl_xxx --confirm
rc entitlements attach-products --entitlement-id entl_xxx --product-ids prod1,prod2
rc entitlements detach-products --entitlement-id entl_xxx --product-ids prod1rc offerings list
rc offerings get --offering-id ofrngs_xxx
rc offerings create --lookup-key default --display-name "Default Offering"
rc offerings update --offering-id ofrngs_xxx --is-current
rc offerings update --offering-id ofrngs_xxx --metadata '{"theme":"dark"}'
rc offerings delete --offering-id ofrngs_xxx --confirmrc packages list --offering-id ofrngs_xxx
rc packages get --package-id pkg_xxx
rc packages create --offering-id ofrngs_xxx --lookup-key monthly --display-name "Monthly"
rc packages update --package-id pkg_xxx --display-name "Monthly Plan"
rc packages delete --package-id pkg_xxx --confirm
rc packages attach-products --package-id pkg_xxx --product-ids prod1,prod2
rc packages detach-products --package-id pkg_xxx --product-ids prod1rc customers get --customer-id user_xxx
rc customers create --customer-id user_xxx
rc customers delete --customer-id user_xxx --confirm
rc customers list-active-entitlements --customer-id user_xxx
rc customers list-subscriptions --customer-id user_xxx
rc customers list-purchases --customer-id user_xxx
rc customers list-invoices --customer-id user_xxx
rc customers set-attributes --customer-id user_xxx --attributes '{"key":"value"}'
rc customers transfer --customer-id user_xxx --target-id user_yyy
rc customers grant-entitlement --customer-id user_xxx --entitlement-id entl_xxx
rc customers revoke-entitlement --customer-id user_xxx --entitlement-id entl_xxxrc subscriptions get --subscription-id sub_xxx
rc subscriptions cancel --subscription-id sub_xxx --confirm
rc subscriptions refund --subscription-id sub_xxx --confirm
rc purchases get --purchase-id pur_xxx
rc purchases refund --purchase-id pur_xxx --confirmrc paywalls list
rc paywalls get --paywall-id pw_xxx
rc paywalls create --offering-id ofrngs_xxx
rc paywalls delete --paywall-id pw_xxx --confirmrc metrics overview # MRR, subscribers, trials, revenue
rc status # Full project dashboard
rc watch metrics # Live auto-refreshing metrics
rc watch metrics --interval 10s # Custom refresh intervalrc report # HTML project report
rc report --format pdf # Direct PDF export
rc report --format json --file report.json # Structured JSON
rc report --format yaml --file report.yaml # YAMLrc export --file my-project.yaml # Export config to YAML
rc import --file my-project.yaml --dry-run # Preview import
rc import --file my-project.yaml --confirm # Import config from YAML
rc diff --source proj_staging --target proj_prod # Compare two projectsrc auth login --api-key sk_xxx --name production
rc auth login --api-key sk_xxx --name staging --default-project proj_staging
rc auth switch --name staging
rc auth list
rc auth current
rc auth delete --name old --confirm
rc doctor # Verify configuration
rc init --project proj_xxx # Initialize project config
rc completion zsh > "${fpath[1]}/_rc" # Shell completionsrc webhooks list
rc webhooks create --url https://example.com/webhook
rc audit-logs listrc apps list # JSON (default)
rc apps list --pretty # Pretty JSON
rc apps list -o table # Table
rc apps list -o csv # CSV
rc apps list -o tsv # TSV
rc apps list -o yaml # YAML
rc apps list -o minimal # IDs onlyrc products list --limit 50
rc products list --starting-after prod_xxx
rc products list --allUse rc with AI coding agents. Install the skill pack and your agent learns every command.
npx skills add AndroidPoet/revenuecat-cli-skillsThen just ask:
Export my revenue and MRR charts as a PDF report
Show me the current MRR and active subscriber count
Compare my staging and production project configurations
brew tap AndroidPoet/tap && brew install revenuecat-cligo install github.com/AndroidPoet/revenuecat-cli/cmd/revenuecat-cli@latestDownload the latest binary for your platform from Releases.
| Platform | Architecture | File |
|---|---|---|
| macOS | Apple Silicon | revenuecat-cli_*_darwin_arm64.tar.gz |
| macOS | Intel | revenuecat-cli_*_darwin_amd64.tar.gz |
| Linux | x86_64 | revenuecat-cli_*_linux_amd64.tar.gz |
| Linux | ARM64 | revenuecat-cli_*_linux_arm64.tar.gz |
| Windows | x86_64 | revenuecat-cli_*_windows_amd64.zip |
# Debian / Ubuntu
sudo dpkg -i revenuecat-cli_*_amd64.deb
# RHEL / Fedora
sudo rpm -i revenuecat-cli_*_amd64.rpmReleases are fully automated via GitHub Actions and GoReleaser.
Push v* tag → CI runs tests → GoReleaser builds → GitHub Release created
│
├── Binaries (macOS, Linux, Windows × amd64/arm64)
├── .deb and .rpm packages
├── Homebrew formula updated (AndroidPoet/homebrew-tap)
└── Checksums (checksums.txt)
# Tag and push
git tag v0.5.0
git push origin v0.5.0That's it. The release workflow handles:
- Running tests
- Building binaries for all platforms (CGO_ENABLED=0)
- Creating
.tar.gz/.ziparchives - Generating
.deband.rpmpackages - Publishing the GitHub Release
- Updating the Homebrew formula in AndroidPoet/homebrew-tap
Every push and PR to master runs:
go build ./...go test ./... -v -racego vet ./...golangci-lint
git clone https://github.com/AndroidPoet/revenuecat-cli.git
cd revenuecat-cli
make deps # Download dependencies
make build # Build binary to bin/
make test # Run tests
make lint # Run linterMIT