Skip to content
Agentmart
Submit a tool

revenuecat

Use when checking subscription metrics (MRR, revenue, active subscriptions, trials), looking up why a specific user does or does not have Pro, granting…

Skill by tirupati17

IndexedMIT
Write a review

Chalk Labs

Need help deploying revenuecat?

Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.

Book a call

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/tirupati17-revenuecat

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Use when checking subscription metrics (MRR, revenue, active subscriptions, trials), looking up why a specific user does or does not have Pro, granting someone an entitlement for free (promo, support, giveaway, lifetime), listing products or offerings, or when a purchase, entitlement or webhook in RevenueCat does not behave as expected.

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/revenuecat

What's inside

Skill name
revenuecat
Description
Use when checking subscription metrics (MRR, revenue, active subscriptions, trials), looking up why a specific user does or does not have Pro, granting someone an entitlement for free (promo, support, giveaway, lifetime), listing products or offerings, or when a purchase, entitlement or webhook in RevenueCat does not behave as expected.
License
MIT
Instructions
67 lines in SKILL.md · view on GitHub

Files (1)

  • SKILL.md

SKILL.md (first lines)

# RevenueCat: metrics, customers, promotional grants, catalogue

## Credentials

`cpm creds setup revenuecat` asks for each one and says where it lives:

| Name | Where to get it |
|---|---|
| `REVENUECAT_API_KEY` | Project settings > API keys > **+ New secret API key**, version **v2**. Give it only what the task needs: `customer_information` read (customer), `charts_metrics` read (metrics), `project_configuration` read (products, offerings, entitlements), and customer_information **write** only if you will grant. |
| `REVENUECAT_PROJECT_ID` | The `proj...` id in the dashboard URL: `app.revenuecat.com/projects/<id>/...`. |
| `REVENUECAT_V1_API_KEY` | Optional. A legacy **v1** secret key from the same page. Only a lifetime grant uses v1; without it the v2 key is tried there, and v1 may refuse it. |

Secret keys are server-side only. The public SDK keys (`appl_`, `goog_`) in the
app cannot do any of this and should never be used here.

## Commands

```bash
cpm revenuecat metrics                       # overview: MRR, 28-day revenue, active subs/trials
cpm revenuecat customer <app_user_id>        # entitlements, subscriptions, one-time purchases
cpm revenuecat products                      # every product, per app and store
cpm revenuecat offerings                     # offerings > packages > products, current marked *
cpm revenuecat grant <id> <entitlement> --duration monthly           # dry run
cpm revenuecat grant <id> <entitlement> --until 2027-01-31 --commit
cpm revenuecat grant <id> <entitlement> --duration lifetime --commit # v1
```

Every read takes `--json` for the raw response. `grant` is a dry run unless
`--commit`; it still resolves the entitlement (a read) so the dry run shows the
exact body.

**API versions.** Everything is v2 except a lifetime grant. v2's
`customers/{id}/actions/grant_entitlement` takes an `expires_at`, not a duration,
so "lifetime" has no v2 form; it goes to v1
`subscribers/{id}/entitlements/{identifier}/promotional` with `duration: lifetime`.
`--api v1|v2` forces one.

## Traps

- **"The paid user has no Pro."** App user ids are exact and case-sensitive. A
  UUID logged in upper case on one platform and lower case on another is two
  customers. Run `customer` with each spelling before anything else.
- **A grant is not a purchase.** No store transaction, no revenue, no
  INITIAL_PURCHASE webhook, and store refunds cannot remove it. Anything counting
  "paying users" from webhooks will not see grants. Revoke in the dashboard.
- **Why grants exist at all:** a store non-consumable (lifetime) cannot be priced
  at zero or carry an intro offer. A free lifetime has to be a promotional grant,
  and any endpoint that issues them must check server-side that the promo is live
  and be idempotent per user, or it is a free-Pro button.
- **Webhooks see store ids, not RevenueCat ids.** Play subscriptions arrive as
  `subscription:base-plan`, one-time products bare. Code that maps products by
  substring (monthly/yearly/lifetime) breaks the day an id is named differently;
  check `products` when adding one.
- **The current offering can be named anything.** Do not hardcode `default`.
- **No direct Google Ads integration.** RevenueCat's attribution integrations
  include Meta Ads but not Google Ads. The path is RevenueCat > Firebase / GA4
  (Measurement Protocol) > import `purchase` into Google Ads, and RevenueCat drops
  those events silently unless the app sets `$firebaseAppInstanceId` on the
  customer.
- **Test prices do not prove live prices.** A local StoreKit or sandbox fixture
  drifts from the store. Neither RevenueCat's API nor metrics give list prices;
  ask the owner or read the store console.
- **Reinstall can orphan balances.** Entitlements restore from the store, but
  anything keyed on an anonymous app user id (credits, hours) is lost if the id
  does not survive reinstall. Log users in with a stable id.

From tirupati17/cpm, MIT.

More from tirupati17/cpm

Signals

Stars
0
Forks
0
Open issues
0
Last commit (this folder)
Sep 27, 2026 (1 month ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from tirupati17

Done for you

Rather not set it up yourself?

Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.

See how we build AI agents →Read the case studies

Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.

launches shipped
50+
launches shipped
media placements
500+
media placements
founders on every account
2
founders on every account

Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block

Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.

Get revenuecat running in your business

Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.

Goes to the Chalk Labs founders, not the newsletter. Privacy

Need help deploying revenuecat?

CallGet help
Cite this page

revenuecat skill. Agent Mart. https://agentmart.dev/skills/tirupati17-revenuecat (last updated 2026-10-24)