stripe/ai

stripe-projects

Use when the user wants to provision infrastructure or third-party services using Stripe Projects.

ソースを見る
リポジトリの原文

見出し、例、コード、表、リンク、参照画像を含む原文を表示しています。

Stripe Projects — Service Provisioning

Provision third-party services (databases, auth, hosting, analytics, caching, AI, observability) and retrieve API keys/tokens using the Stripe Projects CLI plugin.

Workflow

Step 1: Ensure Stripe CLI + Projects Plugin

Check if the Stripe CLI is available:

bash
which stripe && stripe --version

If not installed or below version 1.40.0:

  • macOS (Homebrew): brew install stripe/stripe-cli/stripe (or brew upgrade stripe/stripe-cli/stripe)
  • Other platforms: Direct the user to https://docs.stripe.com/stripe-cli/install for up-to-date instructions.

Then ensure the Projects plugin is installed:

bash
stripe plugin install projects

Step 2: Search the Catalog

Confirm the requested provider/service exists:

bash
stripe projects search <query> --json

If result_count is 0, inform the user the service was not found and stop.

If the user’s request is vague (for example, “I need a database”), browse the catalog to suggest options:

bash
stripe projects catalog --json

Step 3: Initialize a Project

Check if a project is already initialized:

bash
stripe projects status --json

If not initialized, run a preflight check first to reveal all blockers at once:

bash
stripe projects init --preflight --json

If all preflight checks pass, or the only failure is TOS_ACCEPTANCE_REQUIRED, proceed:

bash
stripe projects init --accept-tos --yes

If any check fails with BROWSER_AUTH_REQUIRED, PROJECTS_SESSION_UNUSABLE, or ACCOUNT_NOT_ELIGIBLE, stop here. Report that check’s message and remedy to the user verbatim and let them resolve it — clearing these requires a browser sign-in or a Dashboard visit you cannot perform. Do not run stripe projects init yourself and do not re-run the preflight: neither clears the blocker for you, since only the user can complete a browser sign-in or a Dashboard step.

Follow the remedy the failing check prints rather than assuming stripe login is the fix. If a Stripe CLI session already exists, stripe login reports that you are already logged in and exits 0 without changing anything — an exit code of 0 from a login command does not mean the blocker cleared.

Important: stripe projects init installs the stripe-projects-cli skill locally at .claude/skills/stripe-projects-cli. This skill contains the full post-init command reference.

Step 4: Hand Off to stripe-projects-cli

Verify the skill was installed:

bash
test -f .claude/skills/stripe-projects-cli/SKILL.md && echo "OK" || echo "MISSING"

If MISSING: re-run stripe projects init --accept-tos --yes once — the skill is bundled with the Projects plugin and installed during init. If the file is still missing after that single retry, or if init exits non-zero, report init’s error message to the user and stop. Do not keep re-running init.

If OK: use the locally-installed stripe-projects-cli skill (invoke using the Skill tool with name stripe-projects-cli) to continue the workflow — adding services, managing credentials, and configuring the project.

Step 5: Summarize and Suggest

After a successful service addition, provide output in this format:

FieldValue
Provider<provider name>
Service<service type>
Tier<tier>
Env vars<variable names only — never values>

Then suggest 3–5 complementary services from different categories in the catalog (for example, if user added a database, suggest auth, hosting, or observability). Only reference services that actually appear in stripe projects catalog --json output — never fabricate commands or provider names.

CLI as Source of Truth

The CLI manages all state under .projects/ and generates .env files. Don’t hand-edit these files. If you need to inspect project state, use the appropriate CLI command:

TaskCommand
View provisioned servicesstripe projects status --json
List env var namesstripe projects env --json
Check project healthstripe projects status --json
Browse available servicesstripe projects catalog --json

Only inspect .projects/ or .env directly if the user explicitly asks you to — the CLI is authoritative, so manual edits may be overwritten.

Project Variables

Use project variables when the user wants to store an environment variable that doesn’t come from a provisioned provider resource, such as an app URL, feature flag, or self-managed API key.

Create or update a project variable for the active environment:

bash
stripe projects variables set <name> --env-key <ENV_KEY> --value <value>

A successful variables set syncs the active environment output file immediately. If the user doesn’t provide the value, run the command without --value only in interactive mode so the CLI can prompt securely. Never print secret values in your response.

Bind an existing project variable to the active environment:

bash
stripe projects env add <name> --variable --env-key <ENV_KEY>

Remove a variable binding from the active environment without deleting the stored variable:

bash
stripe projects env remove <name> --variable

List and delete project variables:

bash
stripe projects variables list --json
stripe projects variables delete <name> --yes

Error Handling

Error codeCauseRecovery
BROWSER_AUTH_REQUIREDNo Stripe session and browser sign-in neededTell the user to run stripe projects init themselves, in a terminal where they can finish the browser sign-in — you cannot fix this, and re-running it yourself will not clear it
PROJECTS_SESSION_UNUSABLEA Stripe CLI session exists, but Projects cannot read live-mode credentials from itReport the message and remedy verbatim and stop. Do NOT retry, and do NOT run stripe login — it reports you are already logged in and exits 0
ACCOUNT_NOT_ELIGIBLEAccount not onboarded for ProjectsTell the user to run stripe projects switch-account to choose an account, or continue setup for this account; report the remedy the CLI printed and stop
TOS_ACCEPTANCE_REQUIREDDeveloper or provider terms not acceptedRe-run with --accept-tos
PROVIDER_NOT_LINKEDProvider requires OAuth linkingRun stripe projects link <provider> — may open a browser
PLAN_REQUIREDDeployable needs a plan provisioned firstProvision the plan listed in the error, then retry
UNKNOWN_ERRORUnexpected failureShow the full error message to the user and suggest running with --debug for diagnostics
Service not in catalogQuery returned 0 resultsInform user; suggest stripe projects catalog --json to browse alternatives
CLI not foundStripe CLI not installedInstall using Homebrew (macOS) or follow https://docs.stripe.com/stripe-cli/install
同じリポジトリから

関連する Skills

すべての Skills
stripe
公式

stripe-best-practices

- Guides Stripe integration decisions across development and test environment planning (separate sandboxes vs the shared test mode sandbox), API selection (Checkout Sessions vs PaymentIntents), Connect platform setup (Accounts v2, controller properties), billing/subscriptions, tax and registrations (Stripe Tax, automatictax, product tax codes), Treasury financial accounts, integration options (Checkout, Payment Element), migrating from deprecated Stripe APIs, and security best practices (API key management, API key permissions, webhooks, OAuth). Use when planning, building, modifying, testing, or reviewing any Stripe integration, including choosing a development environment, accepting payments, building marketplaces, integrating Stripe, processing payments, setting up subscriptions, collecting sales tax, VAT, or GST, creating connected accounts, or implementing secure key handling.

導入数
8.8万
GitHub Stars
1829
更新日
9月23日
stripe
公式

upgrade-stripe

Guide for upgrading Stripe API versions and SDKs

導入数
6.8万
GitHub Stars
1829
更新日
9月23日
stripe
公式

stripe-docs

- Use when the user or agent needs to read, search, or look up Stripe documentation or API reference. Prefer this over curl or WebFetch for any docs.stripe.com content. Use to fetch gated documentation.

導入数
3
GitHub Stars
1829
更新日
9月23日
stripe
公式

metronome

- Guides Metronome usage-based billing integration decisions — event ingestion (single and batch, idempotency, billable metrics), contract design (rate cards, overrides, dimensional pricing, products), invoicing lifecycle (grace periods, finalization, Stripe sync), credit and commit management (prepaid, postpaid, thresholds, auto-recharge), and Stripe integration (arrears invoicing, tax providers, line item limits). Use when building, modifying, or reviewing any Metronome integration — including ingesting usage events, creating contracts or rate cards, managing credits and commits, configuring invoicing, or syncing invoices with Stripe Billing.

導入数
1
GitHub Stars
1830
更新日
9月20日