[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-openai-stripe-projects":3,"mdc-7ohjak-key":36,"related-repo-openai-stripe-projects":1452,"related-org-openai-stripe-projects":1554},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":25,"repoUrl":26,"updatedAt":27,"license":28,"forks":29,"topics":30,"repo":31,"sourceUrl":34,"mdContent":35},"stripe-projects","provision infrastructure using 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 for a service\", \"set up monitoring\", \"show me the catalog\", \"what can I provision\", \"browse providers\", \"add an LLM provider\", \"configure model provider\", \"add email sending\", \"set up search\", \"add a message queue\", \"set up object storage\", \"add feature flags\". Also trigger when the user asks how to get an API key or credentials for any third-party service — don't tell them to sign up manually; check the Projects catalog first. Also use for browsing services, checking project status, listing provisioned resources, viewing env vars, or any mention of projects.dev or adding\u002Fprovisioning\u002Fconnecting a cloud service.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},"openai","OpenAI","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fopenai.png",[12,16,19,22],{"name":13,"slug":14,"type":15},"Database","database","tag",{"name":17,"slug":18,"type":15},"Infrastructure","infrastructure",{"name":20,"slug":21,"type":15},"Caching","caching",{"name":23,"slug":24,"type":15},"Stripe","stripe",4888,"https:\u002F\u002Fgithub.com\u002Fopenai\u002Fplugins","2026-08-28T15:08:52.778926",null,661,[],{"repoUrl":26,"stars":25,"forks":29,"topics":32,"description":33},[],"OpenAI Plugins","https:\u002F\u002Fgithub.com\u002Fopenai\u002Fplugins\u002Ftree\u002FHEAD\u002Fplugins\u002Fstripe\u002Fskills\u002Fstripe-projects","---\nname: stripe-projects\ndescription: >\n  Use when the user wants to provision infrastructure or third-party services\n  using Stripe Projects. Triggers: \"I need a database\", \"set up auth\", \"add\n  caching\", \"give me a Postgres\", \"provision Redis\", \"I need hosting\", \"add a\n  vector DB\", \"get me an API key for X\", \"get credentials for X\", \"sign up for a\n  service\", \"set up monitoring\", \"show me the catalog\", \"what can I provision\",\n  \"browse providers\", \"add an LLM provider\", \"configure model provider\", \"add\n  email sending\", \"set up search\", \"add a message queue\", \"set up object\n  storage\", \"add feature flags\". Also trigger when the user asks how to get an\n  API key or credentials for any third-party service — don't tell them to sign\n  up manually; check the Projects catalog first. Also use for browsing services,\n  checking project status, listing provisioned resources, viewing env vars, or\n  any mention of projects.dev or adding\u002Fprovisioning\u002Fconnecting a cloud service.\nallowed-tools:\n  - Bash(stripe *)\n  - Bash(which stripe)\n  - Bash(brew install stripe\u002Fstripe-cli\u002Fstripe)\n  - Bash(brew upgrade stripe\u002Fstripe-cli\u002Fstripe)\n  - Skill\n  - Read\n\n---\n\n## Stripe Projects — Service Provisioning\n\nProvision third-party services (databases, auth, hosting, analytics, caching, AI, observability) and retrieve API keys\u002Ftokens using the Stripe Projects CLI plugin.\n\n## Workflow\n\n### Step 1: Ensure Stripe CLI + Projects Plugin\n\nCheck if the Stripe CLI is available:\n\n```bash\nwhich stripe && stripe --version\n```\n\nIf not installed or below version 1.40.0:\n\n- **macOS (Homebrew):** `brew install stripe\u002Fstripe-cli\u002Fstripe` (or `brew upgrade stripe\u002Fstripe-cli\u002Fstripe`)\n- **Other platforms:** Direct the user to https:\u002F\u002Fdocs.stripe.com\u002Fstripe-cli\u002Finstall for up-to-date instructions.\n\nThen ensure the Projects plugin is installed:\n\n```bash\nstripe plugin install projects\n```\n\n### Step 2: Search the Catalog\n\nConfirm the requested provider\u002Fservice exists:\n\n```bash\nstripe projects search \u003Cquery> --json\n```\n\nIf `result_count` is 0, inform the user the service was not found and stop.\n\nIf the user’s request is vague (for example, “I need a database”), browse the catalog to suggest options:\n\n```bash\nstripe projects catalog --json\n```\n\n### Step 3: Initialize a Project\n\nCheck if a project is already initialized:\n\n```bash\nstripe projects status --json\n```\n\nIf not initialized, run a preflight check first to reveal all blockers at once:\n\n```bash\nstripe projects init --preflight --json\n```\n\nIf all preflight checks pass (or the only failures are `TOS_ACCEPTANCE_REQUIRED` or `Stripe session authenticated`), proceed:\n\n```bash\nstripe projects init --accept-tos --yes\n```\n\n**Important:** `stripe projects init` installs the `stripe-projects-cli` skill locally at `.claude\u002Fskills\u002Fstripe-projects-cli`. This skill contains the full post-init command reference.\n\n### Step 4: Hand Off to stripe-projects-cli\n\nVerify the skill was installed:\n\n```bash\ntest -f .claude\u002Fskills\u002Fstripe-projects-cli\u002FSKILL.md && echo \"OK\" || echo \"MISSING\"\n```\n\nIf `MISSING`: re-run `stripe projects init --accept-tos --yes` — the skill is bundled with the Projects plugin and installed during init.\n\nIf `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.\n\n### Step 5: Summarize and Suggest\n\nAfter a successful service addition, provide output in this format:\n\n| Field | Value |\n| --- | --- |\n| Provider | `\u003Cprovider name>` |\n| Service | `\u003Cservice type>` |\n| Tier | `\u003Ctier>` |\n| Env vars | `\u003Cvariable names only — never values>` |\n\nThen 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.\n\n## CLI as Source of Truth\n\nThe CLI manages all state under `.projects\u002F` and generates `.env` files. Don’t hand-edit these files. If you need to inspect project state, use the appropriate CLI command:\n\n| Task | Command |\n| --- | --- |\n| View provisioned services | `stripe projects status --json` |\n| List env var names | `stripe projects env --json` |\n| Check project health | `stripe projects status --json` |\n| Browse available services | `stripe projects catalog --json` |\n\nOnly inspect `.projects\u002F` or `.env` directly if the user explicitly asks you to — the CLI is authoritative, so manual edits may be overwritten.\n\n## Project Variables\n\nUse 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.\n\nCreate or update a project variable for the active environment:\n\n```bash\nstripe projects variables set \u003Cname> --env-key \u003CENV_KEY> --value \u003Cvalue>\n```\n\nA 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.\n\nBind an existing project variable to the active environment:\n\n```bash\nstripe projects env add \u003Cname> --variable --env-key \u003CENV_KEY>\n```\n\nRemove a variable binding from the active environment without deleting the stored variable:\n\n```bash\nstripe projects env remove \u003Cname> --variable\n```\n\nList and delete project variables:\n\n```bash\nstripe projects variables list --json\nstripe projects variables delete \u003Cname> --yes\n```\n\n## Error Handling\n\n| Error code | Cause | Recovery |\n| --- | --- | --- |\n| `BROWSER_AUTH_REQUIRED` | No auth session and browser needed | Tell user to run `stripe projects init` — you cannot fix this |\n| `ACCOUNT_NOT_ELIGIBLE` | Account not onboarded for Projects | Tell user to run `stripe projects switch-account` to choose an account or continue setup for this account. |\n| `TOS_ACCEPTANCE_REQUIRED` | Developer or provider terms not accepted | Re-run with `--accept-tos` |\n| `PROVIDER_NOT_LINKED` | Provider requires OAuth linking | Run `stripe projects link \u003Cprovider>` — may open a browser |\n| `PLAN_REQUIRED` | Deployable needs a plan provisioned first | Provision the plan listed in the error, then retry |\n| `UNKNOWN_ERROR` | Unexpected failure | Show the full error message to the user and suggest running with `--debug` for diagnostics |\n| Service not in catalog | Query returned 0 results | Inform user; suggest `stripe projects catalog --json` to browse alternatives |\n| CLI not found | Stripe CLI not installed | Install using Homebrew (macOS) or follow https:\u002F\u002Fdocs.stripe.com\u002Fstripe-cli\u002Finstall |\n",{"data":37,"body":45},{"name":4,"description":6,"allowed-tools":38},[39,40,41,42,43,44],"Bash(stripe *)","Bash(which stripe)","Bash(brew install stripe\u002Fstripe-cli\u002Fstripe)","Bash(brew upgrade stripe\u002Fstripe-cli\u002Fstripe)","Skill","Read",{"type":46,"children":47},"root",[48,57,63,69,76,81,127,132,184,189,218,224,229,279,292,297,324,330,335,362,367,399,420,452,485,491,496,568,587,612,618,623,719,732,738,759,847,865,871,876,881,973,994,999,1068,1073,1121,1126,1198,1204,1446],{"type":49,"tag":50,"props":51,"children":53},"element","h2",{"id":52},"stripe-projects-service-provisioning",[54],{"type":55,"value":56},"text","Stripe Projects — Service Provisioning",{"type":49,"tag":58,"props":59,"children":60},"p",{},[61],{"type":55,"value":62},"Provision third-party services (databases, auth, hosting, analytics, caching, AI, observability) and retrieve API keys\u002Ftokens using the Stripe Projects CLI plugin.",{"type":49,"tag":50,"props":64,"children":66},{"id":65},"workflow",[67],{"type":55,"value":68},"Workflow",{"type":49,"tag":70,"props":71,"children":73},"h3",{"id":72},"step-1-ensure-stripe-cli-projects-plugin",[74],{"type":55,"value":75},"Step 1: Ensure Stripe CLI + Projects Plugin",{"type":49,"tag":58,"props":77,"children":78},{},[79],{"type":55,"value":80},"Check if the Stripe CLI is available:",{"type":49,"tag":82,"props":83,"children":88},"pre",{"className":84,"code":85,"language":86,"meta":87,"style":87},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","which stripe && stripe --version\n","bash","",[89],{"type":49,"tag":90,"props":91,"children":92},"code",{"__ignoreMap":87},[93],{"type":49,"tag":94,"props":95,"children":98},"span",{"class":96,"line":97},"line",1,[99,105,111,117,122],{"type":49,"tag":94,"props":100,"children":102},{"style":101},"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF",[103],{"type":55,"value":104},"which",{"type":49,"tag":94,"props":106,"children":108},{"style":107},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[109],{"type":55,"value":110}," stripe",{"type":49,"tag":94,"props":112,"children":114},{"style":113},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[115],{"type":55,"value":116}," &&",{"type":49,"tag":94,"props":118,"children":120},{"style":119},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[121],{"type":55,"value":110},{"type":49,"tag":94,"props":123,"children":124},{"style":107},[125],{"type":55,"value":126}," --version\n",{"type":49,"tag":58,"props":128,"children":129},{},[130],{"type":55,"value":131},"If not installed or below version 1.40.0:",{"type":49,"tag":133,"props":134,"children":135},"ul",{},[136,164],{"type":49,"tag":137,"props":138,"children":139},"li",{},[140,146,148,154,156,162],{"type":49,"tag":141,"props":142,"children":143},"strong",{},[144],{"type":55,"value":145},"macOS (Homebrew):",{"type":55,"value":147}," ",{"type":49,"tag":90,"props":149,"children":151},{"className":150},[],[152],{"type":55,"value":153},"brew install stripe\u002Fstripe-cli\u002Fstripe",{"type":55,"value":155}," (or ",{"type":49,"tag":90,"props":157,"children":159},{"className":158},[],[160],{"type":55,"value":161},"brew upgrade stripe\u002Fstripe-cli\u002Fstripe",{"type":55,"value":163},")",{"type":49,"tag":137,"props":165,"children":166},{},[167,172,174,182],{"type":49,"tag":141,"props":168,"children":169},{},[170],{"type":55,"value":171},"Other platforms:",{"type":55,"value":173}," Direct the user to ",{"type":49,"tag":175,"props":176,"children":180},"a",{"href":177,"rel":178},"https:\u002F\u002Fdocs.stripe.com\u002Fstripe-cli\u002Finstall",[179],"nofollow",[181],{"type":55,"value":177},{"type":55,"value":183}," for up-to-date instructions.",{"type":49,"tag":58,"props":185,"children":186},{},[187],{"type":55,"value":188},"Then ensure the Projects plugin is installed:",{"type":49,"tag":82,"props":190,"children":192},{"className":84,"code":191,"language":86,"meta":87,"style":87},"stripe plugin install projects\n",[193],{"type":49,"tag":90,"props":194,"children":195},{"__ignoreMap":87},[196],{"type":49,"tag":94,"props":197,"children":198},{"class":96,"line":97},[199,203,208,213],{"type":49,"tag":94,"props":200,"children":201},{"style":119},[202],{"type":55,"value":24},{"type":49,"tag":94,"props":204,"children":205},{"style":107},[206],{"type":55,"value":207}," plugin",{"type":49,"tag":94,"props":209,"children":210},{"style":107},[211],{"type":55,"value":212}," install",{"type":49,"tag":94,"props":214,"children":215},{"style":107},[216],{"type":55,"value":217}," projects\n",{"type":49,"tag":70,"props":219,"children":221},{"id":220},"step-2-search-the-catalog",[222],{"type":55,"value":223},"Step 2: Search the Catalog",{"type":49,"tag":58,"props":225,"children":226},{},[227],{"type":55,"value":228},"Confirm the requested provider\u002Fservice exists:",{"type":49,"tag":82,"props":230,"children":232},{"className":84,"code":231,"language":86,"meta":87,"style":87},"stripe projects search \u003Cquery> --json\n",[233],{"type":49,"tag":90,"props":234,"children":235},{"__ignoreMap":87},[236],{"type":49,"tag":94,"props":237,"children":238},{"class":96,"line":97},[239,243,248,253,258,263,269,274],{"type":49,"tag":94,"props":240,"children":241},{"style":119},[242],{"type":55,"value":24},{"type":49,"tag":94,"props":244,"children":245},{"style":107},[246],{"type":55,"value":247}," projects",{"type":49,"tag":94,"props":249,"children":250},{"style":107},[251],{"type":55,"value":252}," search",{"type":49,"tag":94,"props":254,"children":255},{"style":113},[256],{"type":55,"value":257}," \u003C",{"type":49,"tag":94,"props":259,"children":260},{"style":107},[261],{"type":55,"value":262},"quer",{"type":49,"tag":94,"props":264,"children":266},{"style":265},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[267],{"type":55,"value":268},"y",{"type":49,"tag":94,"props":270,"children":271},{"style":113},[272],{"type":55,"value":273},">",{"type":49,"tag":94,"props":275,"children":276},{"style":107},[277],{"type":55,"value":278}," --json\n",{"type":49,"tag":58,"props":280,"children":281},{},[282,284,290],{"type":55,"value":283},"If ",{"type":49,"tag":90,"props":285,"children":287},{"className":286},[],[288],{"type":55,"value":289},"result_count",{"type":55,"value":291}," is 0, inform the user the service was not found and stop.",{"type":49,"tag":58,"props":293,"children":294},{},[295],{"type":55,"value":296},"If the user’s request is vague (for example, “I need a database”), browse the catalog to suggest options:",{"type":49,"tag":82,"props":298,"children":300},{"className":84,"code":299,"language":86,"meta":87,"style":87},"stripe projects catalog --json\n",[301],{"type":49,"tag":90,"props":302,"children":303},{"__ignoreMap":87},[304],{"type":49,"tag":94,"props":305,"children":306},{"class":96,"line":97},[307,311,315,320],{"type":49,"tag":94,"props":308,"children":309},{"style":119},[310],{"type":55,"value":24},{"type":49,"tag":94,"props":312,"children":313},{"style":107},[314],{"type":55,"value":247},{"type":49,"tag":94,"props":316,"children":317},{"style":107},[318],{"type":55,"value":319}," catalog",{"type":49,"tag":94,"props":321,"children":322},{"style":107},[323],{"type":55,"value":278},{"type":49,"tag":70,"props":325,"children":327},{"id":326},"step-3-initialize-a-project",[328],{"type":55,"value":329},"Step 3: Initialize a Project",{"type":49,"tag":58,"props":331,"children":332},{},[333],{"type":55,"value":334},"Check if a project is already initialized:",{"type":49,"tag":82,"props":336,"children":338},{"className":84,"code":337,"language":86,"meta":87,"style":87},"stripe projects status --json\n",[339],{"type":49,"tag":90,"props":340,"children":341},{"__ignoreMap":87},[342],{"type":49,"tag":94,"props":343,"children":344},{"class":96,"line":97},[345,349,353,358],{"type":49,"tag":94,"props":346,"children":347},{"style":119},[348],{"type":55,"value":24},{"type":49,"tag":94,"props":350,"children":351},{"style":107},[352],{"type":55,"value":247},{"type":49,"tag":94,"props":354,"children":355},{"style":107},[356],{"type":55,"value":357}," status",{"type":49,"tag":94,"props":359,"children":360},{"style":107},[361],{"type":55,"value":278},{"type":49,"tag":58,"props":363,"children":364},{},[365],{"type":55,"value":366},"If not initialized, run a preflight check first to reveal all blockers at once:",{"type":49,"tag":82,"props":368,"children":370},{"className":84,"code":369,"language":86,"meta":87,"style":87},"stripe projects init --preflight --json\n",[371],{"type":49,"tag":90,"props":372,"children":373},{"__ignoreMap":87},[374],{"type":49,"tag":94,"props":375,"children":376},{"class":96,"line":97},[377,381,385,390,395],{"type":49,"tag":94,"props":378,"children":379},{"style":119},[380],{"type":55,"value":24},{"type":49,"tag":94,"props":382,"children":383},{"style":107},[384],{"type":55,"value":247},{"type":49,"tag":94,"props":386,"children":387},{"style":107},[388],{"type":55,"value":389}," init",{"type":49,"tag":94,"props":391,"children":392},{"style":107},[393],{"type":55,"value":394}," --preflight",{"type":49,"tag":94,"props":396,"children":397},{"style":107},[398],{"type":55,"value":278},{"type":49,"tag":58,"props":400,"children":401},{},[402,404,410,412,418],{"type":55,"value":403},"If all preflight checks pass (or the only failures are ",{"type":49,"tag":90,"props":405,"children":407},{"className":406},[],[408],{"type":55,"value":409},"TOS_ACCEPTANCE_REQUIRED",{"type":55,"value":411}," or ",{"type":49,"tag":90,"props":413,"children":415},{"className":414},[],[416],{"type":55,"value":417},"Stripe session authenticated",{"type":55,"value":419},"), proceed:",{"type":49,"tag":82,"props":421,"children":423},{"className":84,"code":422,"language":86,"meta":87,"style":87},"stripe projects init --accept-tos --yes\n",[424],{"type":49,"tag":90,"props":425,"children":426},{"__ignoreMap":87},[427],{"type":49,"tag":94,"props":428,"children":429},{"class":96,"line":97},[430,434,438,442,447],{"type":49,"tag":94,"props":431,"children":432},{"style":119},[433],{"type":55,"value":24},{"type":49,"tag":94,"props":435,"children":436},{"style":107},[437],{"type":55,"value":247},{"type":49,"tag":94,"props":439,"children":440},{"style":107},[441],{"type":55,"value":389},{"type":49,"tag":94,"props":443,"children":444},{"style":107},[445],{"type":55,"value":446}," --accept-tos",{"type":49,"tag":94,"props":448,"children":449},{"style":107},[450],{"type":55,"value":451}," --yes\n",{"type":49,"tag":58,"props":453,"children":454},{},[455,460,461,467,469,475,477,483],{"type":49,"tag":141,"props":456,"children":457},{},[458],{"type":55,"value":459},"Important:",{"type":55,"value":147},{"type":49,"tag":90,"props":462,"children":464},{"className":463},[],[465],{"type":55,"value":466},"stripe projects init",{"type":55,"value":468}," installs the ",{"type":49,"tag":90,"props":470,"children":472},{"className":471},[],[473],{"type":55,"value":474},"stripe-projects-cli",{"type":55,"value":476}," skill locally at ",{"type":49,"tag":90,"props":478,"children":480},{"className":479},[],[481],{"type":55,"value":482},".claude\u002Fskills\u002Fstripe-projects-cli",{"type":55,"value":484},". This skill contains the full post-init command reference.",{"type":49,"tag":70,"props":486,"children":488},{"id":487},"step-4-hand-off-to-stripe-projects-cli",[489],{"type":55,"value":490},"Step 4: Hand Off to stripe-projects-cli",{"type":49,"tag":58,"props":492,"children":493},{},[494],{"type":55,"value":495},"Verify the skill was installed:",{"type":49,"tag":82,"props":497,"children":499},{"className":84,"code":498,"language":86,"meta":87,"style":87},"test -f .claude\u002Fskills\u002Fstripe-projects-cli\u002FSKILL.md && echo \"OK\" || echo \"MISSING\"\n",[500],{"type":49,"tag":90,"props":501,"children":502},{"__ignoreMap":87},[503],{"type":49,"tag":94,"props":504,"children":505},{"class":96,"line":97},[506,511,516,521,525,530,535,540,545,550,554,558,563],{"type":49,"tag":94,"props":507,"children":508},{"style":101},[509],{"type":55,"value":510},"test",{"type":49,"tag":94,"props":512,"children":513},{"style":107},[514],{"type":55,"value":515}," -f",{"type":49,"tag":94,"props":517,"children":518},{"style":107},[519],{"type":55,"value":520}," .claude\u002Fskills\u002Fstripe-projects-cli\u002FSKILL.md",{"type":49,"tag":94,"props":522,"children":523},{"style":113},[524],{"type":55,"value":116},{"type":49,"tag":94,"props":526,"children":527},{"style":101},[528],{"type":55,"value":529}," echo",{"type":49,"tag":94,"props":531,"children":532},{"style":113},[533],{"type":55,"value":534}," \"",{"type":49,"tag":94,"props":536,"children":537},{"style":107},[538],{"type":55,"value":539},"OK",{"type":49,"tag":94,"props":541,"children":542},{"style":113},[543],{"type":55,"value":544},"\"",{"type":49,"tag":94,"props":546,"children":547},{"style":113},[548],{"type":55,"value":549}," ||",{"type":49,"tag":94,"props":551,"children":552},{"style":101},[553],{"type":55,"value":529},{"type":49,"tag":94,"props":555,"children":556},{"style":113},[557],{"type":55,"value":534},{"type":49,"tag":94,"props":559,"children":560},{"style":107},[561],{"type":55,"value":562},"MISSING",{"type":49,"tag":94,"props":564,"children":565},{"style":113},[566],{"type":55,"value":567},"\"\n",{"type":49,"tag":58,"props":569,"children":570},{},[571,572,577,579,585],{"type":55,"value":283},{"type":49,"tag":90,"props":573,"children":575},{"className":574},[],[576],{"type":55,"value":562},{"type":55,"value":578},": re-run ",{"type":49,"tag":90,"props":580,"children":582},{"className":581},[],[583],{"type":55,"value":584},"stripe projects init --accept-tos --yes",{"type":55,"value":586}," — the skill is bundled with the Projects plugin and installed during init.",{"type":49,"tag":58,"props":588,"children":589},{},[590,591,596,598,603,605,610],{"type":55,"value":283},{"type":49,"tag":90,"props":592,"children":594},{"className":593},[],[595],{"type":55,"value":539},{"type":55,"value":597},": use the locally-installed ",{"type":49,"tag":90,"props":599,"children":601},{"className":600},[],[602],{"type":55,"value":474},{"type":55,"value":604}," skill (invoke using the Skill tool with name ",{"type":49,"tag":90,"props":606,"children":608},{"className":607},[],[609],{"type":55,"value":474},{"type":55,"value":611},") to continue the workflow — adding services, managing credentials, and configuring the project.",{"type":49,"tag":70,"props":613,"children":615},{"id":614},"step-5-summarize-and-suggest",[616],{"type":55,"value":617},"Step 5: Summarize and Suggest",{"type":49,"tag":58,"props":619,"children":620},{},[621],{"type":55,"value":622},"After a successful service addition, provide output in this format:",{"type":49,"tag":624,"props":625,"children":626},"table",{},[627,646],{"type":49,"tag":628,"props":629,"children":630},"thead",{},[631],{"type":49,"tag":632,"props":633,"children":634},"tr",{},[635,641],{"type":49,"tag":636,"props":637,"children":638},"th",{},[639],{"type":55,"value":640},"Field",{"type":49,"tag":636,"props":642,"children":643},{},[644],{"type":55,"value":645},"Value",{"type":49,"tag":647,"props":648,"children":649},"tbody",{},[650,668,685,702],{"type":49,"tag":632,"props":651,"children":652},{},[653,659],{"type":49,"tag":654,"props":655,"children":656},"td",{},[657],{"type":55,"value":658},"Provider",{"type":49,"tag":654,"props":660,"children":661},{},[662],{"type":49,"tag":90,"props":663,"children":665},{"className":664},[],[666],{"type":55,"value":667},"\u003Cprovider name>",{"type":49,"tag":632,"props":669,"children":670},{},[671,676],{"type":49,"tag":654,"props":672,"children":673},{},[674],{"type":55,"value":675},"Service",{"type":49,"tag":654,"props":677,"children":678},{},[679],{"type":49,"tag":90,"props":680,"children":682},{"className":681},[],[683],{"type":55,"value":684},"\u003Cservice type>",{"type":49,"tag":632,"props":686,"children":687},{},[688,693],{"type":49,"tag":654,"props":689,"children":690},{},[691],{"type":55,"value":692},"Tier",{"type":49,"tag":654,"props":694,"children":695},{},[696],{"type":49,"tag":90,"props":697,"children":699},{"className":698},[],[700],{"type":55,"value":701},"\u003Ctier>",{"type":49,"tag":632,"props":703,"children":704},{},[705,710],{"type":49,"tag":654,"props":706,"children":707},{},[708],{"type":55,"value":709},"Env vars",{"type":49,"tag":654,"props":711,"children":712},{},[713],{"type":49,"tag":90,"props":714,"children":716},{"className":715},[],[717],{"type":55,"value":718},"\u003Cvariable names only — never values>",{"type":49,"tag":58,"props":720,"children":721},{},[722,724,730],{"type":55,"value":723},"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 ",{"type":49,"tag":90,"props":725,"children":727},{"className":726},[],[728],{"type":55,"value":729},"stripe projects catalog --json",{"type":55,"value":731}," output — never fabricate commands or provider names.",{"type":49,"tag":50,"props":733,"children":735},{"id":734},"cli-as-source-of-truth",[736],{"type":55,"value":737},"CLI as Source of Truth",{"type":49,"tag":58,"props":739,"children":740},{},[741,743,749,751,757],{"type":55,"value":742},"The CLI manages all state under ",{"type":49,"tag":90,"props":744,"children":746},{"className":745},[],[747],{"type":55,"value":748},".projects\u002F",{"type":55,"value":750}," and generates ",{"type":49,"tag":90,"props":752,"children":754},{"className":753},[],[755],{"type":55,"value":756},".env",{"type":55,"value":758}," files. Don’t hand-edit these files. If you need to inspect project state, use the appropriate CLI command:",{"type":49,"tag":624,"props":760,"children":761},{},[762,778],{"type":49,"tag":628,"props":763,"children":764},{},[765],{"type":49,"tag":632,"props":766,"children":767},{},[768,773],{"type":49,"tag":636,"props":769,"children":770},{},[771],{"type":55,"value":772},"Task",{"type":49,"tag":636,"props":774,"children":775},{},[776],{"type":55,"value":777},"Command",{"type":49,"tag":647,"props":779,"children":780},{},[781,798,815,831],{"type":49,"tag":632,"props":782,"children":783},{},[784,789],{"type":49,"tag":654,"props":785,"children":786},{},[787],{"type":55,"value":788},"View provisioned services",{"type":49,"tag":654,"props":790,"children":791},{},[792],{"type":49,"tag":90,"props":793,"children":795},{"className":794},[],[796],{"type":55,"value":797},"stripe projects status --json",{"type":49,"tag":632,"props":799,"children":800},{},[801,806],{"type":49,"tag":654,"props":802,"children":803},{},[804],{"type":55,"value":805},"List env var names",{"type":49,"tag":654,"props":807,"children":808},{},[809],{"type":49,"tag":90,"props":810,"children":812},{"className":811},[],[813],{"type":55,"value":814},"stripe projects env --json",{"type":49,"tag":632,"props":816,"children":817},{},[818,823],{"type":49,"tag":654,"props":819,"children":820},{},[821],{"type":55,"value":822},"Check project health",{"type":49,"tag":654,"props":824,"children":825},{},[826],{"type":49,"tag":90,"props":827,"children":829},{"className":828},[],[830],{"type":55,"value":797},{"type":49,"tag":632,"props":832,"children":833},{},[834,839],{"type":49,"tag":654,"props":835,"children":836},{},[837],{"type":55,"value":838},"Browse available services",{"type":49,"tag":654,"props":840,"children":841},{},[842],{"type":49,"tag":90,"props":843,"children":845},{"className":844},[],[846],{"type":55,"value":729},{"type":49,"tag":58,"props":848,"children":849},{},[850,852,857,858,863],{"type":55,"value":851},"Only inspect ",{"type":49,"tag":90,"props":853,"children":855},{"className":854},[],[856],{"type":55,"value":748},{"type":55,"value":411},{"type":49,"tag":90,"props":859,"children":861},{"className":860},[],[862],{"type":55,"value":756},{"type":55,"value":864}," directly if the user explicitly asks you to — the CLI is authoritative, so manual edits may be overwritten.",{"type":49,"tag":50,"props":866,"children":868},{"id":867},"project-variables",[869],{"type":55,"value":870},"Project Variables",{"type":49,"tag":58,"props":872,"children":873},{},[874],{"type":55,"value":875},"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.",{"type":49,"tag":58,"props":877,"children":878},{},[879],{"type":55,"value":880},"Create or update a project variable for the active environment:",{"type":49,"tag":82,"props":882,"children":884},{"className":84,"code":883,"language":86,"meta":87,"style":87},"stripe projects variables set \u003Cname> --env-key \u003CENV_KEY> --value \u003Cvalue>\n",[885],{"type":49,"tag":90,"props":886,"children":887},{"__ignoreMap":87},[888],{"type":49,"tag":94,"props":889,"children":890},{"class":96,"line":97},[891,895,899,904,909,913,918,923,927,932,936,941,946,950,955,959,964,968],{"type":49,"tag":94,"props":892,"children":893},{"style":119},[894],{"type":55,"value":24},{"type":49,"tag":94,"props":896,"children":897},{"style":107},[898],{"type":55,"value":247},{"type":49,"tag":94,"props":900,"children":901},{"style":107},[902],{"type":55,"value":903}," variables",{"type":49,"tag":94,"props":905,"children":906},{"style":107},[907],{"type":55,"value":908}," set",{"type":49,"tag":94,"props":910,"children":911},{"style":113},[912],{"type":55,"value":257},{"type":49,"tag":94,"props":914,"children":915},{"style":107},[916],{"type":55,"value":917},"nam",{"type":49,"tag":94,"props":919,"children":920},{"style":265},[921],{"type":55,"value":922},"e",{"type":49,"tag":94,"props":924,"children":925},{"style":113},[926],{"type":55,"value":273},{"type":49,"tag":94,"props":928,"children":929},{"style":107},[930],{"type":55,"value":931}," --env-key",{"type":49,"tag":94,"props":933,"children":934},{"style":113},[935],{"type":55,"value":257},{"type":49,"tag":94,"props":937,"children":938},{"style":107},[939],{"type":55,"value":940},"ENV_KE",{"type":49,"tag":94,"props":942,"children":943},{"style":265},[944],{"type":55,"value":945},"Y",{"type":49,"tag":94,"props":947,"children":948},{"style":113},[949],{"type":55,"value":273},{"type":49,"tag":94,"props":951,"children":952},{"style":107},[953],{"type":55,"value":954}," --value",{"type":49,"tag":94,"props":956,"children":957},{"style":113},[958],{"type":55,"value":257},{"type":49,"tag":94,"props":960,"children":961},{"style":107},[962],{"type":55,"value":963},"valu",{"type":49,"tag":94,"props":965,"children":966},{"style":265},[967],{"type":55,"value":922},{"type":49,"tag":94,"props":969,"children":970},{"style":113},[971],{"type":55,"value":972},">\n",{"type":49,"tag":58,"props":974,"children":975},{},[976,978,984,986,992],{"type":55,"value":977},"A successful ",{"type":49,"tag":90,"props":979,"children":981},{"className":980},[],[982],{"type":55,"value":983},"variables set",{"type":55,"value":985}," syncs the active environment output file immediately. If the user doesn’t provide the value, run the command without ",{"type":49,"tag":90,"props":987,"children":989},{"className":988},[],[990],{"type":55,"value":991},"--value",{"type":55,"value":993}," only in interactive mode so the CLI can prompt securely. Never print secret values in your response.",{"type":49,"tag":58,"props":995,"children":996},{},[997],{"type":55,"value":998},"Bind an existing project variable to the active environment:",{"type":49,"tag":82,"props":1000,"children":1002},{"className":84,"code":1001,"language":86,"meta":87,"style":87},"stripe projects env add \u003Cname> --variable --env-key \u003CENV_KEY>\n",[1003],{"type":49,"tag":90,"props":1004,"children":1005},{"__ignoreMap":87},[1006],{"type":49,"tag":94,"props":1007,"children":1008},{"class":96,"line":97},[1009,1013,1017,1022,1027,1031,1035,1039,1043,1048,1052,1056,1060,1064],{"type":49,"tag":94,"props":1010,"children":1011},{"style":119},[1012],{"type":55,"value":24},{"type":49,"tag":94,"props":1014,"children":1015},{"style":107},[1016],{"type":55,"value":247},{"type":49,"tag":94,"props":1018,"children":1019},{"style":107},[1020],{"type":55,"value":1021}," env",{"type":49,"tag":94,"props":1023,"children":1024},{"style":107},[1025],{"type":55,"value":1026}," add",{"type":49,"tag":94,"props":1028,"children":1029},{"style":113},[1030],{"type":55,"value":257},{"type":49,"tag":94,"props":1032,"children":1033},{"style":107},[1034],{"type":55,"value":917},{"type":49,"tag":94,"props":1036,"children":1037},{"style":265},[1038],{"type":55,"value":922},{"type":49,"tag":94,"props":1040,"children":1041},{"style":113},[1042],{"type":55,"value":273},{"type":49,"tag":94,"props":1044,"children":1045},{"style":107},[1046],{"type":55,"value":1047}," --variable",{"type":49,"tag":94,"props":1049,"children":1050},{"style":107},[1051],{"type":55,"value":931},{"type":49,"tag":94,"props":1053,"children":1054},{"style":113},[1055],{"type":55,"value":257},{"type":49,"tag":94,"props":1057,"children":1058},{"style":107},[1059],{"type":55,"value":940},{"type":49,"tag":94,"props":1061,"children":1062},{"style":265},[1063],{"type":55,"value":945},{"type":49,"tag":94,"props":1065,"children":1066},{"style":113},[1067],{"type":55,"value":972},{"type":49,"tag":58,"props":1069,"children":1070},{},[1071],{"type":55,"value":1072},"Remove a variable binding from the active environment without deleting the stored variable:",{"type":49,"tag":82,"props":1074,"children":1076},{"className":84,"code":1075,"language":86,"meta":87,"style":87},"stripe projects env remove \u003Cname> --variable\n",[1077],{"type":49,"tag":90,"props":1078,"children":1079},{"__ignoreMap":87},[1080],{"type":49,"tag":94,"props":1081,"children":1082},{"class":96,"line":97},[1083,1087,1091,1095,1100,1104,1108,1112,1116],{"type":49,"tag":94,"props":1084,"children":1085},{"style":119},[1086],{"type":55,"value":24},{"type":49,"tag":94,"props":1088,"children":1089},{"style":107},[1090],{"type":55,"value":247},{"type":49,"tag":94,"props":1092,"children":1093},{"style":107},[1094],{"type":55,"value":1021},{"type":49,"tag":94,"props":1096,"children":1097},{"style":107},[1098],{"type":55,"value":1099}," remove",{"type":49,"tag":94,"props":1101,"children":1102},{"style":113},[1103],{"type":55,"value":257},{"type":49,"tag":94,"props":1105,"children":1106},{"style":107},[1107],{"type":55,"value":917},{"type":49,"tag":94,"props":1109,"children":1110},{"style":265},[1111],{"type":55,"value":922},{"type":49,"tag":94,"props":1113,"children":1114},{"style":113},[1115],{"type":55,"value":273},{"type":49,"tag":94,"props":1117,"children":1118},{"style":107},[1119],{"type":55,"value":1120}," --variable\n",{"type":49,"tag":58,"props":1122,"children":1123},{},[1124],{"type":55,"value":1125},"List and delete project variables:",{"type":49,"tag":82,"props":1127,"children":1129},{"className":84,"code":1128,"language":86,"meta":87,"style":87},"stripe projects variables list --json\nstripe projects variables delete \u003Cname> --yes\n",[1130],{"type":49,"tag":90,"props":1131,"children":1132},{"__ignoreMap":87},[1133,1157],{"type":49,"tag":94,"props":1134,"children":1135},{"class":96,"line":97},[1136,1140,1144,1148,1153],{"type":49,"tag":94,"props":1137,"children":1138},{"style":119},[1139],{"type":55,"value":24},{"type":49,"tag":94,"props":1141,"children":1142},{"style":107},[1143],{"type":55,"value":247},{"type":49,"tag":94,"props":1145,"children":1146},{"style":107},[1147],{"type":55,"value":903},{"type":49,"tag":94,"props":1149,"children":1150},{"style":107},[1151],{"type":55,"value":1152}," list",{"type":49,"tag":94,"props":1154,"children":1155},{"style":107},[1156],{"type":55,"value":278},{"type":49,"tag":94,"props":1158,"children":1160},{"class":96,"line":1159},2,[1161,1165,1169,1173,1178,1182,1186,1190,1194],{"type":49,"tag":94,"props":1162,"children":1163},{"style":119},[1164],{"type":55,"value":24},{"type":49,"tag":94,"props":1166,"children":1167},{"style":107},[1168],{"type":55,"value":247},{"type":49,"tag":94,"props":1170,"children":1171},{"style":107},[1172],{"type":55,"value":903},{"type":49,"tag":94,"props":1174,"children":1175},{"style":107},[1176],{"type":55,"value":1177}," delete",{"type":49,"tag":94,"props":1179,"children":1180},{"style":113},[1181],{"type":55,"value":257},{"type":49,"tag":94,"props":1183,"children":1184},{"style":107},[1185],{"type":55,"value":917},{"type":49,"tag":94,"props":1187,"children":1188},{"style":265},[1189],{"type":55,"value":922},{"type":49,"tag":94,"props":1191,"children":1192},{"style":113},[1193],{"type":55,"value":273},{"type":49,"tag":94,"props":1195,"children":1196},{"style":107},[1197],{"type":55,"value":451},{"type":49,"tag":50,"props":1199,"children":1201},{"id":1200},"error-handling",[1202],{"type":55,"value":1203},"Error Handling",{"type":49,"tag":624,"props":1205,"children":1206},{},[1207,1228],{"type":49,"tag":628,"props":1208,"children":1209},{},[1210],{"type":49,"tag":632,"props":1211,"children":1212},{},[1213,1218,1223],{"type":49,"tag":636,"props":1214,"children":1215},{},[1216],{"type":55,"value":1217},"Error code",{"type":49,"tag":636,"props":1219,"children":1220},{},[1221],{"type":55,"value":1222},"Cause",{"type":49,"tag":636,"props":1224,"children":1225},{},[1226],{"type":55,"value":1227},"Recovery",{"type":49,"tag":647,"props":1229,"children":1230},{},[1231,1260,1289,1316,1346,1368,1398,1423],{"type":49,"tag":632,"props":1232,"children":1233},{},[1234,1243,1248],{"type":49,"tag":654,"props":1235,"children":1236},{},[1237],{"type":49,"tag":90,"props":1238,"children":1240},{"className":1239},[],[1241],{"type":55,"value":1242},"BROWSER_AUTH_REQUIRED",{"type":49,"tag":654,"props":1244,"children":1245},{},[1246],{"type":55,"value":1247},"No auth session and browser needed",{"type":49,"tag":654,"props":1249,"children":1250},{},[1251,1253,1258],{"type":55,"value":1252},"Tell user to run ",{"type":49,"tag":90,"props":1254,"children":1256},{"className":1255},[],[1257],{"type":55,"value":466},{"type":55,"value":1259}," — you cannot fix this",{"type":49,"tag":632,"props":1261,"children":1262},{},[1263,1272,1277],{"type":49,"tag":654,"props":1264,"children":1265},{},[1266],{"type":49,"tag":90,"props":1267,"children":1269},{"className":1268},[],[1270],{"type":55,"value":1271},"ACCOUNT_NOT_ELIGIBLE",{"type":49,"tag":654,"props":1273,"children":1274},{},[1275],{"type":55,"value":1276},"Account not onboarded for Projects",{"type":49,"tag":654,"props":1278,"children":1279},{},[1280,1281,1287],{"type":55,"value":1252},{"type":49,"tag":90,"props":1282,"children":1284},{"className":1283},[],[1285],{"type":55,"value":1286},"stripe projects switch-account",{"type":55,"value":1288}," to choose an account or continue setup for this account.",{"type":49,"tag":632,"props":1290,"children":1291},{},[1292,1300,1305],{"type":49,"tag":654,"props":1293,"children":1294},{},[1295],{"type":49,"tag":90,"props":1296,"children":1298},{"className":1297},[],[1299],{"type":55,"value":409},{"type":49,"tag":654,"props":1301,"children":1302},{},[1303],{"type":55,"value":1304},"Developer or provider terms not accepted",{"type":49,"tag":654,"props":1306,"children":1307},{},[1308,1310],{"type":55,"value":1309},"Re-run with ",{"type":49,"tag":90,"props":1311,"children":1313},{"className":1312},[],[1314],{"type":55,"value":1315},"--accept-tos",{"type":49,"tag":632,"props":1317,"children":1318},{},[1319,1328,1333],{"type":49,"tag":654,"props":1320,"children":1321},{},[1322],{"type":49,"tag":90,"props":1323,"children":1325},{"className":1324},[],[1326],{"type":55,"value":1327},"PROVIDER_NOT_LINKED",{"type":49,"tag":654,"props":1329,"children":1330},{},[1331],{"type":55,"value":1332},"Provider requires OAuth linking",{"type":49,"tag":654,"props":1334,"children":1335},{},[1336,1338,1344],{"type":55,"value":1337},"Run ",{"type":49,"tag":90,"props":1339,"children":1341},{"className":1340},[],[1342],{"type":55,"value":1343},"stripe projects link \u003Cprovider>",{"type":55,"value":1345}," — may open a browser",{"type":49,"tag":632,"props":1347,"children":1348},{},[1349,1358,1363],{"type":49,"tag":654,"props":1350,"children":1351},{},[1352],{"type":49,"tag":90,"props":1353,"children":1355},{"className":1354},[],[1356],{"type":55,"value":1357},"PLAN_REQUIRED",{"type":49,"tag":654,"props":1359,"children":1360},{},[1361],{"type":55,"value":1362},"Deployable needs a plan provisioned first",{"type":49,"tag":654,"props":1364,"children":1365},{},[1366],{"type":55,"value":1367},"Provision the plan listed in the error, then retry",{"type":49,"tag":632,"props":1369,"children":1370},{},[1371,1380,1385],{"type":49,"tag":654,"props":1372,"children":1373},{},[1374],{"type":49,"tag":90,"props":1375,"children":1377},{"className":1376},[],[1378],{"type":55,"value":1379},"UNKNOWN_ERROR",{"type":49,"tag":654,"props":1381,"children":1382},{},[1383],{"type":55,"value":1384},"Unexpected failure",{"type":49,"tag":654,"props":1386,"children":1387},{},[1388,1390,1396],{"type":55,"value":1389},"Show the full error message to the user and suggest running with ",{"type":49,"tag":90,"props":1391,"children":1393},{"className":1392},[],[1394],{"type":55,"value":1395},"--debug",{"type":55,"value":1397}," for diagnostics",{"type":49,"tag":632,"props":1399,"children":1400},{},[1401,1406,1411],{"type":49,"tag":654,"props":1402,"children":1403},{},[1404],{"type":55,"value":1405},"Service not in catalog",{"type":49,"tag":654,"props":1407,"children":1408},{},[1409],{"type":55,"value":1410},"Query returned 0 results",{"type":49,"tag":654,"props":1412,"children":1413},{},[1414,1416,1421],{"type":55,"value":1415},"Inform user; suggest ",{"type":49,"tag":90,"props":1417,"children":1419},{"className":1418},[],[1420],{"type":55,"value":729},{"type":55,"value":1422}," to browse alternatives",{"type":49,"tag":632,"props":1424,"children":1425},{},[1426,1431,1436],{"type":49,"tag":654,"props":1427,"children":1428},{},[1429],{"type":55,"value":1430},"CLI not found",{"type":49,"tag":654,"props":1432,"children":1433},{},[1434],{"type":55,"value":1435},"Stripe CLI not installed",{"type":49,"tag":654,"props":1437,"children":1438},{},[1439,1441],{"type":55,"value":1440},"Install using Homebrew (macOS) or follow ",{"type":49,"tag":175,"props":1442,"children":1444},{"href":177,"rel":1443},[179],[1445],{"type":55,"value":177},{"type":49,"tag":1447,"props":1448,"children":1449},"style",{},[1450],{"type":55,"value":1451},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":1453,"total":1553},[1454,1473,1489,1501,1516,1529,1541],{"slug":1455,"name":1455,"fn":1456,"description":1457,"org":1458,"tags":1459,"stars":25,"repoUrl":26,"updatedAt":1472},"accessibility-and-inclusive-visualization","make data visualizations accessible","Make data visualizations accessible and inclusive. Use when the user needs chart or diagram accessibility guidance, text alternatives for complex visuals, color and contrast review, keyboard support, reduced-motion behavior for animation or parallax, or an accessibility QA workflow for exported figures, UML-like diagrams, and dashboards.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1460,1463,1466,1469],{"name":1461,"slug":1462,"type":15},"Accessibility","accessibility",{"name":1464,"slug":1465,"type":15},"Charts","charts",{"name":1467,"slug":1468,"type":15},"Data Visualization","data-visualization",{"name":1470,"slug":1471,"type":15},"Design","design","2026-06-30T19:00:57.102",{"slug":1474,"name":1474,"fn":1475,"description":1476,"org":1477,"tags":1478,"stars":25,"repoUrl":26,"updatedAt":1488},"adobe-batch-edit-photos","apply consistent photo adjustments","Apply consistent photo adjustments across a set of images so they look like they were edited together. Use this skill whenever the user says \"make my photos look cohesive\", \"give all these the same style\", \"apply a warm and golden feel to all of these\", \"make this cinematic\", \"match the look across my photos\", \"edit all my travel photos the same way\", \"batch edit these\", \"make these consistent\", \"fix my phone photos\", or uploads a folder of photos and wants a unified, polished result. Also triggers for requests like \"apply a preset to all of these\", \"make these look professional\", or \"they were shot in mixed lighting — can you fix them all\". Outputs direct final image URLs plus an in-chat preview grid and optional Firefly Board link. Access: 🔐 Signed-In required | Gen AI: ❌\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1479,1482,1485],{"name":1480,"slug":1481,"type":15},"Creative","creative",{"name":1483,"slug":1484,"type":15},"Editing","editing",{"name":1486,"slug":1487,"type":15},"Imaging","imaging","2026-08-28T15:09:11.185865",{"slug":1490,"name":1490,"fn":1491,"description":1492,"org":1493,"tags":1494,"stars":25,"repoUrl":26,"updatedAt":1500},"adobe-create-mockups","create product and scene mockups","Use when a user wants to see their logo, design, or sketch on a product or scene mockup — mugs, t-shirts, business cards, hats, phone screens, posters, billboards, or similar. Triggers on \"create mockups\", \"show my logo on products\", or any logo upload with a request to visualize it on items. Access: 🔐 Signed-In required | Gen AI: ✅ Adobe Firefly via `image_generate` used for design creation, sketch polishing, and mockup scene generation\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1495,1496,1497],{"name":1480,"slug":1481,"type":15},{"name":1470,"slug":1471,"type":15},{"name":1498,"slug":1499,"type":15},"Graphics","graphics","2026-08-28T15:09:07.42507",{"slug":1502,"name":1502,"fn":1503,"description":1504,"org":1505,"tags":1506,"stars":25,"repoUrl":26,"updatedAt":1515},"adobe-create-social-variations","export platform-ready social media assets","Resize, crop, or export any image or video into platform-ready social media assets using Adobe Creative Cloud tools. Use this skill when a user wants to prepare a photo, image, or video for one or more social platforms — Instagram, TikTok, LinkedIn, Facebook, YouTube, Snapchat, Pinterest, Threads, or X\u002FTwitter. Triggers on: \"prepare my image for Instagram\", \"resize for TikTok\", \"get this ready to post\", \"make versions for all platforms\", \"social media sizes\", \"crop for stories\", \"export for LinkedIn\", \"resize my video for social\", \"make social media assets\", or any request to adapt a photo or video for specific platforms. Handles subject-aware cropping, AI canvas expansion, test previews before full runs, and same-ratio video resizing.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1507,1508,1509,1512],{"name":1480,"slug":1481,"type":15},{"name":1498,"slug":1499,"type":15},{"name":1510,"slug":1511,"type":15},"Marketing","marketing",{"name":1513,"slug":1514,"type":15},"Social Media","social-media","2026-08-28T15:10:07.282096",{"slug":1517,"name":1517,"fn":1518,"description":1519,"org":1520,"tags":1521,"stars":25,"repoUrl":26,"updatedAt":1528},"adobe-design-from-template","create visual designs from templates","Create any visual design using Adobe Express templates — flyers, posters, social media posts (Instagram, Facebook, LinkedIn), business cards, invitations, greeting cards, resumes, cover letters, brochures, newsletters, certificates, presentations, YouTube thumbnails, email headers, logos, menus, and labels. Use this skill whenever the user wants to make, design, or build any visual — even if they just say \"make me a flyer\", \"design a poster\", \"I need something for Instagram\", \"create an event invite\", or \"make a business card\". Also handles browsing templates, editing text, replacing images, changing backgrounds, animating, and exporting designs. Access: 🔐 Signed-In required | Gen AI: ❌ by default — image replacement only where the surface permits generative AI (e.g. Codex); none on Claude\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1522,1523,1524,1525],{"name":1480,"slug":1481,"type":15},{"name":1470,"slug":1471,"type":15},{"name":1498,"slug":1499,"type":15},{"name":1526,"slug":1527,"type":15},"Templates","templates","2026-08-28T15:10:03.050113",{"slug":1530,"name":1530,"fn":1531,"description":1532,"org":1533,"tags":1534,"stars":25,"repoUrl":26,"updatedAt":1540},"adobe-edit-quick-cut","create video sizzle reels","Create a punchy sizzle reel from a video using Adobe Quick Cut. Use this skill whenever a user wants to cut, trim, or shorten a video into highlights — including phrases like \"make a sizzle reel\", \"make a highlight reel\", \"quick cut this\", \"cut the best parts\", \"shorten this video\", \"make a highlight clip\", \"summarize this video visually\", or any request to produce a shorter edited version of a video. Use this skill for Quick Cut requests before suggesting manual editing in Premiere. Requires the user to upload a video file.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1535,1536,1537],{"name":1480,"slug":1481,"type":15},{"name":1483,"slug":1484,"type":15},{"name":1538,"slug":1539,"type":15},"Video","video","2026-08-28T15:09:07.765245",{"slug":1542,"name":1542,"fn":1543,"description":1544,"org":1545,"tags":1546,"stars":25,"repoUrl":26,"updatedAt":1552},"adobe-retouch-portraits","batch retouch portrait photos","Bulk-retouch a folder of portrait photos using Adobe tools — designed for wedding photographers and event photographers who need fast, walk-away batch processing. Use this skill when the user says \"retouch my photos\", \"batch process these portraits\", \"process my wedding photos\", \"clean up this folder of images\", \"run my headshots through Adobe\", or uploads\u002Fselects a folder of photos and wants them polished and ready to review. Automatically applies auto-straighten, auto-tone, and auto-light to every image. Outputs a preview grid and download folder. Access: 🔐 Signed-In required | Gen AI: ❌ by default — optional background-only cleanup only where the surface permits generative AI (e.g. Codex); none on Claude\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1547,1548,1549],{"name":1480,"slug":1481,"type":15},{"name":1486,"slug":1487,"type":15},{"name":1550,"slug":1551,"type":15},"Photography","photography","2026-08-28T15:09:10.386974",499,{"items":1555,"total":1756},[1556,1577,1600,1617,1633,1652,1671,1685,1701,1715,1727,1740],{"slug":1557,"name":1557,"fn":1558,"description":1559,"org":1560,"tags":1561,"stars":1574,"repoUrl":1575,"updatedAt":1576},"prior-auth-packet-builder","build healthcare prior authorization packets","Build a concise prior authorization packet from local case files and payer policy docs.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1562,1565,1568,1571],{"name":1563,"slug":1564,"type":15},"Documents","documents",{"name":1566,"slug":1567,"type":15},"Healthcare","healthcare",{"name":1569,"slug":1570,"type":15},"Insurance","insurance",{"name":1572,"slug":1573,"type":15},"Regulatory Compliance","regulatory-compliance",28169,"https:\u002F\u002Fgithub.com\u002Fopenai\u002Fopenai-agents-python","2026-08-02T05:48:07.395855",{"slug":1578,"name":1578,"fn":1579,"description":1580,"org":1581,"tags":1582,"stars":1597,"repoUrl":1598,"updatedAt":1599},"aspnet-core","build ASP.NET Core web applications","Build, review, refactor, or architect ASP.NET Core web applications using current official guidance for .NET web development. Use when working on Blazor Web Apps, Razor Pages, MVC, Minimal APIs, controller-based Web APIs, SignalR, gRPC, middleware, dependency injection, configuration, authentication, authorization, testing, performance, deployment, or ASP.NET Core upgrades.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1583,1586,1588,1591,1594],{"name":1584,"slug":1585,"type":15},".NET","dotnet",{"name":1587,"slug":1578,"type":15},"ASP.NET Core",{"name":1589,"slug":1590,"type":15},"Blazor","blazor",{"name":1592,"slug":1593,"type":15},"C#","csharp",{"name":1595,"slug":1596,"type":15},"Web Development","web-development",23787,"https:\u002F\u002Fgithub.com\u002Fopenai\u002Fskills","2026-04-12T05:07:02.819491",{"slug":1601,"name":1601,"fn":1602,"description":1603,"org":1604,"tags":1605,"stars":1597,"repoUrl":1598,"updatedAt":1616},"chatgpt-apps","build ChatGPT Apps SDK applications","Build, scaffold, refactor, and troubleshoot ChatGPT Apps SDK applications that combine an MCP server and widget UI. Use when Codex needs to design tools, register UI resources, wire the MCP Apps bridge or ChatGPT compatibility APIs, apply Apps SDK metadata or CSP or domain settings, or produce a docs-aligned project scaffold. Prefer a docs-first workflow by invoking the openai-docs skill or OpenAI developer docs MCP tools before generating code.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1606,1609,1612,1615],{"name":1607,"slug":1608,"type":15},"Apps SDK","apps-sdk",{"name":1610,"slug":1611,"type":15},"ChatGPT","chatgpt",{"name":1613,"slug":1614,"type":15},"MCP","mcp",{"name":9,"slug":8,"type":15},"2026-04-12T05:07:05.468097",{"slug":1618,"name":1618,"fn":1619,"description":1620,"org":1621,"tags":1622,"stars":1597,"repoUrl":1598,"updatedAt":1632},"cli-creator","build CLIs from API docs","Build a composable CLI for Codex from API docs, an OpenAPI spec, existing curl examples, an SDK, a web app, an admin tool, or a local script. Use when the user wants Codex to create a command-line tool that can run from any repo, expose composable read\u002Fwrite commands, return stable JSON, manage auth, and pair with a companion skill.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1623,1626,1629],{"name":1624,"slug":1625,"type":15},"API Development","api-development",{"name":1627,"slug":1628,"type":15},"CLI","cli",{"name":1630,"slug":1631,"type":15},"Codex","codex","2026-04-12T05:07:04.132762",{"slug":1634,"name":1634,"fn":1635,"description":1636,"org":1637,"tags":1638,"stars":1597,"repoUrl":1598,"updatedAt":1651},"cloudflare-deploy","deploy projects to Cloudflare","Deploy applications and infrastructure to Cloudflare using Workers, Pages, and related platform services. Use when the user asks to deploy, host, publish, or set up a project on Cloudflare.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1639,1642,1645,1648],{"name":1640,"slug":1641,"type":15},"Cloudflare","cloudflare",{"name":1643,"slug":1644,"type":15},"Cloudflare Pages","cloudflare-pages",{"name":1646,"slug":1647,"type":15},"Cloudflare Workers","cloudflare-workers",{"name":1649,"slug":1650,"type":15},"Deployment","deployment","2026-04-12T05:07:14.275118",{"slug":1653,"name":1653,"fn":1654,"description":1655,"org":1656,"tags":1657,"stars":1597,"repoUrl":1598,"updatedAt":1670},"define-goal","define and set measurable project goals","Help the user define a concrete, measurable goal before starting work, especially when they ask to use the goal tool, create a goal, set an objective, clarify success criteria, or turn a fuzzy intention into a quantitative outcome. Use this skill for goal creation and goal refinement only; it does not manage durable snapshots, decision logs, or long-running execution artifacts.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1658,1661,1664,1667],{"name":1659,"slug":1660,"type":15},"Productivity","productivity",{"name":1662,"slug":1663,"type":15},"Project Management","project-management",{"name":1665,"slug":1666,"type":15},"Strategy","strategy",{"name":1668,"slug":1669,"type":15},"Task Management","task-management","2026-05-23T06:17:16.870838",{"slug":1672,"name":1672,"fn":1673,"description":1674,"org":1675,"tags":1676,"stars":1597,"repoUrl":1598,"updatedAt":1684},"figma","translate Figma designs into code","Use the Figma MCP server to fetch design context, screenshots, variables, and assets from Figma, and to translate Figma nodes into production code. Trigger when a task involves Figma URLs, node IDs, design-to-code implementation, or Figma MCP setup and troubleshooting.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1677,1678,1680,1683],{"name":1470,"slug":1471,"type":15},{"name":1679,"slug":1672,"type":15},"Figma",{"name":1681,"slug":1682,"type":15},"Frontend","frontend",{"name":1613,"slug":1614,"type":15},"2026-04-12T05:06:47.939943",{"slug":1686,"name":1686,"fn":1687,"description":1688,"org":1689,"tags":1690,"stars":1597,"repoUrl":1598,"updatedAt":1700},"figma-code-connect-components","connect Figma designs to code components","Connects Figma design components to code components using Code Connect mapping tools. Use when user says \"code connect\", \"connect this component to code\", \"map this component\", \"link component to code\", \"create code connect mapping\", or wants to establish mappings between Figma designs and code implementations. For canvas writes via `use_figma`, use `figma-use`.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1691,1692,1695,1696,1697],{"name":1470,"slug":1471,"type":15},{"name":1693,"slug":1694,"type":15},"Design System","design-system",{"name":1679,"slug":1672,"type":15},{"name":1681,"slug":1682,"type":15},{"name":1698,"slug":1699,"type":15},"UI Components","ui-components","2026-05-10T05:59:52.971881",{"slug":1702,"name":1702,"fn":1703,"description":1704,"org":1705,"tags":1706,"stars":1597,"repoUrl":1598,"updatedAt":1714},"figma-create-design-system-rules","generate design system rules from Figma","Generates custom design system rules for the user's codebase. Use when user says \"create design system rules\", \"generate rules for my project\", \"set up design rules\", \"customize design system guidelines\", or wants to establish project-specific conventions for Figma-to-code workflows. Requires Figma MCP server connection.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1707,1708,1709,1712,1713],{"name":1470,"slug":1471,"type":15},{"name":1693,"slug":1694,"type":15},{"name":1710,"slug":1711,"type":15},"Documentation","documentation",{"name":1679,"slug":1672,"type":15},{"name":1681,"slug":1682,"type":15},"2026-05-16T06:07:47.821474",{"slug":1716,"name":1716,"fn":1717,"description":1718,"org":1719,"tags":1720,"stars":1597,"repoUrl":1598,"updatedAt":1726},"figma-implement-design","translate Figma designs into application code","Translates Figma designs into production-ready application code with 1:1 visual fidelity. Use when implementing UI code from Figma files, when user mentions \"implement design\", \"generate code\", \"implement component\", provides Figma URLs, or asks to build components matching Figma specs. For Figma canvas writes via `use_figma`, use `figma-use`.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1721,1722,1723,1724,1725],{"name":1470,"slug":1471,"type":15},{"name":1679,"slug":1672,"type":15},{"name":1681,"slug":1682,"type":15},{"name":1698,"slug":1699,"type":15},{"name":1595,"slug":1596,"type":15},"2026-05-16T06:07:40.583615",{"slug":1728,"name":1728,"fn":1729,"description":1730,"org":1731,"tags":1732,"stars":1597,"repoUrl":1598,"updatedAt":1739},"hatch-pet","create animated pets for Codex","Create, repair, validate, visually QA, and package Codex-compatible animated pets and pet spritesheets from character art, generated images, company or prospect brand cues, or visual references. Use when a user wants a lightweight-worker Codex pet workflow, a non-pixel custom pet style, a prospect or company mascot pet, or a full 8x9 animated pet atlas with transparent unused cells, QA contact sheets, and pet.json packaging. This skill composes the installed $imagegen system skill for visual generation and uses bundled scripts for deterministic spritesheet assembly.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1733,1736,1737,1738],{"name":1734,"slug":1735,"type":15},"Animation","animation",{"name":1630,"slug":1631,"type":15},{"name":1480,"slug":1481,"type":15},{"name":1470,"slug":1471,"type":15},"2026-05-02T05:31:48.48485",{"slug":1741,"name":1741,"fn":1742,"description":1743,"org":1744,"tags":1745,"stars":1597,"repoUrl":1598,"updatedAt":1755},"imagegen","generate and edit raster images","Generate or edit raster images when the task benefits from AI-created bitmap visuals such as photos, illustrations, textures, sprites, mockups, or transparent-background cutouts. Use when Codex should create a brand-new image, transform an existing image, or derive visual variants from references, and the output should be a bitmap asset rather than repo-native code or vector. Do not use when the task is better handled by editing existing SVG\u002Fvector\u002Fcode-native assets, extending an established icon or logo system, or building the visual directly in HTML\u002FCSS\u002Fcanvas.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1746,1747,1748,1751,1754],{"name":1480,"slug":1481,"type":15},{"name":1470,"slug":1471,"type":15},{"name":1749,"slug":1750,"type":15},"Image Generation","image-generation",{"name":1752,"slug":1753,"type":15},"Images","images",{"name":9,"slug":8,"type":15},"2026-05-15T06:23:24.312127",578]