stripe-projects
Use when the user wants to provision infrastructure or third-party services using Stripe Projects. Triggers: "I need a database", "set up auth", "add caching", "give me a Postgres", "provision Redis", "I need hosting", "add a vector DB", "get me an API key for X", "get credentials for X", "sign up f
By stripe · 62,827 installs
npx skills add stripe/ai --skill stripe-projects
Source repository · Upstream listing
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:
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:
Step 2: Search the Catalog
Confirm the requested provider/service exists:
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:
Step 3: Initialize a Project
Check if a project is already initialized:
If not initialized, run a preflight check first to reveal all blockers at once:
If all preflight checks pass, or the only failure is TOS ACCEPTANCE REQUIRED , proceed:
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:
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:
Field Value
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:
Task Command
View provisioned services stripe projects status json
List env var names stripe projects env json
Check project health stripe projects status json
Browse available services stripe 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:
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:
Remove a variable binding from the active environment without deleting the stored variable:
List and delete project variables:
Error Handling
Error code Cause Recovery
BROWSER AUTH REQUIRED No Stripe session and browser sign in needed Tell 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 UNUSABLE A Stripe CLI session exists, but Projects cannot read live mode credentials from it Report 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 ELIGIBLE Account not onboarded for Projects Tell 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 REQUIRED Developer or provider terms not accepted Re run with accept tos
PROVIDER NOT LINKED Provider requires OAuth linking Run stripe projects link <provider — may open a browser
PLAN REQUIRED Deployable needs a plan provisioned first Provision the plan listed in the error, then retry
UNKNOWN ERROR Unexpected failure Show the full error message to the user and suggest running with debug for diagnostics
Service not in catalog Query returned 0 results Inform user; suggest stripe projects catalog json to browse alternatives
CLI not found Stripe CLI not installed Install using Homebrew (macOS) or follow https://docs.stripe.com/stripe cli/install