Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 6 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -90,9 +90,9 @@ rc charts show mrr
| **Customers** | `show` · `list` · `grant` · `revoke` · `transfer` · `aliases` · `attributes` · `simulate-purchase` |
| **Subscriptions** | `show` · `cancel` · `extend` · `refund` · `transactions` |
| **Entitlements** | `list` · `show` · `create` · `update` · `attach` · `detach` |
| **Offerings** | `list` · `show` · `verify` · `preview` · `create` · `update` · `set-current` · `archive` |
| **Packages** | `list` (across all offerings) · `show` · `products` · `create` · `update` · `delete` · `attach` · `detach` |
| **Products** | `list` · `show` · `create` · `archive` · `restore` · `delete` · `store sync` |
| **Offerings** | `list` · `show` · `verify` · `preview` · `create` · `update` · `set-current` · `archive` · `restore` · `delete` |
| **Packages** | `list` (across offerings) · `show` · `products` · `create` · `update` · `delete` · `attach` · `detach` |
| **Products** | `list` · `show` · `create` · `update` · `archive` · `restore` · `delete` · `push` · `prices` / `prices set` · `store sync` |
| **Paywalls** | `list` · `show` · `create` · `generate` (AI) · `edit` (AI) · `rewind` · `publish` · `unpublish` · `attach` · `detach` · `delete` |
| **Rico (AI assistant)** | `rico` (streaming chat, tool approvals) · `conversations list/show/delete` · `feedback` |
| **Charts & metrics** | Interactive bar/line charts · daily/weekly/monthly/quarterly/yearly |
Expand Down Expand Up @@ -126,8 +126,9 @@ dashboard paywall.

### Product store-state plans (experimental)

Manage your App Store / Google Play catalog as a reviewable plan: describe the
desired state, review the computed diff, then apply it.
Manage your store product 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 and Google Play are the most complete.

```bash
rc products store sync app_abc # interactive: review, then apply
Expand Down
12 changes: 8 additions & 4 deletions docs/command-surface.md
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ refund_rate, revenue, subscription_retention, subscription_status,
trial_conversion_rate, trials, trials_movement, trials_new
```

CLI surface: `rc charts <name>` should validate against this enum and offer
CLI surface: `rc charts show <name>` should validate against this enum and offer
shell completion. `rc charts list` is a static command that prints these
names; there's no list endpoint.

Expand All @@ -70,6 +70,7 @@ names; there's no list endpoint.
rc setup # one-shot agent-driven bootstrap; featured in --help/home/README, runs non-interactively for the prompt
rc setup google [app-id] # experimental (hidden from --help until the Google OAuth consent screen is verified): local Google sign-in, bootstrap the Play service-account credential, grant package-scoped access, upload to RC
rc setup apple [app-id] # interactive: App Store Connect sign-in + 2FA, create/upload IAP & ASC keys, vendor number (rc apps apple setup is a hidden alias)
rc capital setup [app-id] # experimental: RevenueCat Capital onboarding — the same guided Apple credential flow under the product's name
rc # bare rc -> getting-started help; --all reveals experimental commands

# Auth / meta
Expand All @@ -79,6 +80,7 @@ rc auth logout # clears credentials fr
rc auth status # show auth state plus cached account identity; auth whoami and root rc whoami are aliases
rc commands # agent discovery (tree)
rc schema <cmd> # agent discovery (flags)
rc api <method> <path> # raw v2 request escape hatch for endpoints the surface doesn't cover; --body for payloads
rc skills install # install the core skills globally for RC-supported agents without a picker; --agent overrides
rc skills prompts # show copy-ready starter prompts; --json returns prompts for agent UIs
rc open [section] [id] # open the dashboard deep-linked to the active project (uses existing browser session)
Expand Down Expand Up @@ -111,11 +113,11 @@ rc apps apple check [app-id] # validate Apple login,
rc apps apple setup [app-id] # hidden alias of rc setup apple (kept for back-compat)

# Customers — busiest noun
rc customers show [id] # embeds active_entitlements
rc customers show <id> # embeds active_entitlements
rc customers list
rc customers aliases <id>
rc customers attributes <id> # GET all subscriber attributes
rc customers set-attribute <id> <key> <value> # set a single subscriber attribute
rc customers set-attribute <id> --set <key>=<value> # set subscriber attributes (--set is repeatable)
rc customers grant <id> <entitlement> [--duration ...]
rc customers revoke <id> <entitlement>
rc customers transfer <from> --to <id>
Expand Down Expand Up @@ -149,6 +151,7 @@ rc offerings delete <id>
rc offerings archive <id>
rc offerings restore <id>
rc offerings packages <offering-id> # nested resource
rc packages list # packages across offerings (first page per offering; large catalogs page via the API)
rc packages show <package-id>
rc packages create <offering-id>
rc packages update <package-id>
Expand Down Expand Up @@ -247,7 +250,8 @@ rc audit # /audit_logs with --li
deferred because its component schema needs a purpose-built editing UX.
- **No plugin system.** YAGNI; oclif model is a Node bet, not a Go one.
- **No `--account` flag.** Account is implicit in the API key.
- **No bulk-import** until there's a concrete ask.
- **No generic bulk-import** (customers, catalog CRUD) until there's a concrete
ask — store-state plans' CSV/JSON input is the one deliberate exception.

## Build order

Expand Down
10 changes: 5 additions & 5 deletions docs/cookbook.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,11 +30,11 @@ rc customers show cus_abc --json | jq '.data.subscriptions.items'
Grant a one-month promotional entitlement:

```bash
rc customers grant --customer-id cus_abc --entitlement-id pro --duration monthly --yes
rc customers grant cus_abc entl_pro --duration monthly --yes
```

Refund a Web Billing subscription (this is `--yes` by intentconfirmation
matters):
Refund a Web Billing subscription (no `--yes` on purposethis one should
prompt):

```bash
rc subscriptions refund sub_abc
Expand Down Expand Up @@ -63,7 +63,7 @@ rc entitlements list --json | jq -r '.data.items[].lookup_key'
Create an entitlement and immediately attach products:

```bash
rc entitlements create --lookup-key plus --display-name "Plus" --yes --json
rc entitlements create --lookup-key plus --display-name "Plus" --json
rc entitlements attach plus prod_monthly prod_yearly
```

Expand Down Expand Up @@ -127,7 +127,7 @@ Separate staging and prod credentials cleanly:
rc login --profile staging --api-key sk_staging_...
rc login --profile prod --api-key sk_prod_...

rc --profile staging customer list --limit 5
rc --profile staging customers list --limit 5
rc --profile prod metrics --json
```

Expand Down
Loading