PlugWiki

convex-billing Skill for Claude Code: What It Does and How to Install It

Makes Claude add Stripe checkout, a webhook and subscription checks to your Convex app with the @convex-dev/stripe component.

Installs
38.3K
on skills.sh
Stars
68
on GitHub
Updated
Oct 2026
last repo commit

This skill makes Claude wire Stripe billing into your Convex app with the @convex-dev/stripe component. It adds a checkout action, a webhook route that the component registers and verifies, and a query that tells the app whether a user has an active or trialing subscription. The gate reads subscription state stored on the server, not claims from the client.

It triggers when you ask for billing or payments in a Convex app. It installs the package, writes three files under convex/, runs a one-off dev push and stores two Stripe secrets in Convex env. The last step is adding the webhook endpoint in the Stripe Dashboard. It needs a Stripe account.

Good for

  • Developers adding paid subscriptions to a Convex app
  • Teams that want the component's built-in webhook signature check instead of a hand-written webhook

Install convex-billing

Claude Code

  1. 1

    Copy this prompt.

    Install the convex-billing skill in Claude Code. Run this command:
    
    npx skills add https://github.com/convex/agent-skills --skill convex-billing --skill convex-env
    
    Then check that it loaded and tell me how to use it.
  2. 2

    Paste it into Claude Code. It shows the change and asks before running it.

Requires Node.js.

SKILL.md hands work to convex-env, so the first command installs it too. Convex's docs say the skills CLI installs skills into .agents/skills/ in your project. The "All Convex skills" command installs every skill in the repo, which has 33 skill folders. One of them, convex-improve-convex-plugin, is listed in the Convex docs as sending your coding session's transcript to the Convex team. Run this skill with /convex-billing in Claude Code or $convex-billing in Codex, or let the agent pick it when the task fits. This skill works on your project folder, so this page offers no Claude app upload route.

Built from the package data we hold. Not yet tested by us.

What's in the skill

When it loads

Add Stripe billing/payments to the Convex app via @convex-dev/stripe (checkout + webhook + gating).

Sections in SKILL.md

  1. Workflow
  2. Rules

Key facts

Installs on skills.sh
38,322 (Nov 2, 2026)
Last repo commit
Oct 29, 2026

What it includes

  • Runs npm install @convex-dev/stripe

    The Rules section names @convex-dev/stripe@^0.1.4.

    Runs code · Install the component

  • Registers the Stripe component with app.use(stripe)

    The import must end in .js, because the Convex bundler requires it.

    Write · Write convex/convex.config.ts

  • Puts STRIPE_SECRET_KEY and STRIPE_WEBHOOK_SECRET into Convex env

    SKILL.md says to use the env helper for this. It accepts sk_test_ and sk_live_ keys.

    Write · Store the Stripe keys

  • Registers the webhook route at /stripe/webhook through registerRoutes

    The component verifies the webhook signature, so SKILL.md says not to write a manual constructEvent webhook.

    Write · Write convex/http.ts

  • Adds a subscription checkout action and an isSubscribed query

    The action needs a signed-in user. The success and cancel URLs use SITE_URL, or http://localhost:3000 when it is unset.

    Try: “Add Stripe subscriptions to my Convex app”

    Write · Write convex/billing.ts

  • Runs npx convex dev --once and looks for "Installed component stripe"

    Runs code · Push and check

  • Endpoint https://<deployment>.convex.site/stripe/webhook with four event groups

    Subscribe to checkout.session.completed, customer.subscription.*, invoice.* and payment_intent.*, then copy the signing secret into STRIPE_WEBHOOK_SECRET.

    Add the Stripe webhook

From the official docs

Permissions

Medium risk

What it can do

  • Read your data
  • Create and change things
  • Delete things
  • Read-only mode

Watch out for

  • It handles Stripe secret keys

    SKILL.md stores STRIPE_SECRET_KEY (sk_test_ or sk_live_) and the webhook secret in Convex env. Use a test key first, and keep live keys out of your repo and chat. github.com

  • It adds a public webhook route

    The route at /stripe/webhook accepts requests from the internet. SKILL.md relies on the component to verify each Stripe signature, so check that the route comes from registerRoutes and nothing replaces it. github.com

  • Set SITE_URL before you go live

    The checkout code falls back to http://localhost:3000 for the success and cancel URLs when SITE_URL is not set. github.com

Security advisories

No published security advisories as of Nov 2, 2026.

Technical details
Turning on read-onlySKILL.md defines no read-only mode.
Sign-in and keysThe Stripe secret key and webhook signing secret are stored as Convex environment variables, per SKILL.md.
Scopes
  • Edits your Convex project and adds three files under convex/

  • Installs the @convex-dev/stripe npm package

  • Stores STRIPE_SECRET_KEY and STRIPE_WEBHOOK_SECRET in Convex env

  • Pushes functions to your deployment with npx convex dev --once

Questions

What does convex-billing do?

It makes Claude add Stripe subscriptions to a Convex app. It uses the @convex-dev/stripe component to create checkout sessions, receive Stripe webhooks and check on the server whether a user is subscribed.

Do I need a Stripe account?

Yes. The steps use a Stripe secret key, a webhook signing secret and a webhook endpoint in the Stripe Dashboard. SKILL.md does not describe Stripe fees or what a test key does, so check Stripe's own pricing.

Should I use a test key or a live key?

SKILL.md accepts both sk_test_ and sk_live_ keys. Our advice: start with a test key and switch to live only after you have checked the whole checkout flow. SKILL.md does not describe what a test key does.

How do I install it?

Use the install box at the top of this page. SKILL.md says to store the Stripe keys with an env helper. Our reading: that is the repo's convex-env skill, so the first command installs it too. Run it with /convex-billing in Claude Code or $convex-billing in Codex.

Is it safe?

It writes code into your project and handles two Stripe secrets, so review the diff and check where the keys end up. The webhook route is public by nature, and SKILL.md relies on the component to verify each signature. Keep live keys out of your repo.

Why not write the Stripe webhook by hand?

SKILL.md says the component handles signature verification inside registerRoutes and tells Claude not to write a manual constructEvent webhook.

How is it different from convex-add?

convex-add looks capabilities up in a catalog that Convex serves, and billing is one of the capabilities it names. convex-billing carries the Stripe steps in its own SKILL.md.

Is it official?

It is in the convex/agent-skills repo under the Convex GitHub organisation, which is the vendor's own repo. It is not a Stripe product.

Is it part of Convex's Claude Code plugin?

Convex's official Claude Code plugin (/plugin install convex@claude-plugins-official, per the Convex docs) is a separate package. Its manifest lists a skills folder, a commands folder, two subagents (convex-expert and convex-reviewer), an MCP server that runs npx -y convex@1.46.0 mcp start, hooks (a check at session start, a lint check before file writes and edits, and a typecheck when a turn ends) and background monitors. The plugin repo has its own skill folder named billing, which is a separate file from this repo's convex-billing.

Information

updated Nov 2, 2026

Folder
skills/convex-billing

convex/agent-skillsskills.sh

Sources

Docs, issue trackers and discussions this page is built from.

Show all 8
  1. convex/agent-skills README · github.com
  2. skills CLI commands · github.com
  3. Convex docs: Agent Skills · docs.convex.dev
  4. convex-billing SKILL.md · github.com
  5. Convex docs: Agent Plugins · docs.convex.dev
  6. convex plugin.json · github.com
  7. convex plugin hooks.json · github.com
  8. convex plugin .mcp.json · github.com

Updated Nov 2, 2026.