[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6AC7153A1XFEDJXYNRQSCP1":3,"skill-same:01M6AC7153A1XFEDJXYNRQSCP1":75},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":28,"publishedAt":48,"linkOnly":49,"markdownContent":50,"markdownBody":51,"frontMatter":52,"refName":53,"commitSha":54,"skillDirectory":55,"forksCount":56,"repositoryHtmlUrl":57,"repositoryHomepageUrl":6,"ownerHtmlUrl":58,"ownerBlogUrl":59,"ownerDescription":6,"updatedAt":60,"install":61,"resources":74},"01M6AC7153A1XFEDJXYNRQSCP1","openai-platform-api-key",null,"Use when Cursor is asked to build, run, test, debug, or configure an OpenAI-backed or provider-unspecified AI app, UI, script, CLI, generator, or tool, especially requests phrased only as \"using AI\" or generators driven by forms\u002Fuser input; also use for OPENAI_API_KEY or sk-proj setup. Do not gate model or prompt migrations that can proceed with source edits and offline validation. Otherwise treat this as the credential gate: inspect safely, ask reuse-vs-new before API work, guide manual local setup when needed, verify presence, and never expose plaintext.","openai\u002Fopenai-developers-for-cursor","openai","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F14957082?v=4","01M6AC29YGCR4S2NTJFV0G8B81","OpenAI","01M6AC6NVP3PRMD1JT63NPWBPP",13,"Apache-2.0","https:\u002F\u002Fgithub.com\u002Fopenai\u002Fopenai-developers-for-cursor\u002Fblob\u002Fmain\u002Fskills\u002Fopenai-platform-api-key\u002FSKILL.md",[18,23],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000010","后端与接口","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":26,"taxonomyTypeDesc":27},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[29,9,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47],"openai platform api key","api","platform","as","guide","ui","input","offline","forms","work","ask","configure","only","local","model","never","app","run","cli","2026-11-10 10:12:30",false,"---\nname: openai-platform-api-key\ndescription: 'Use when Cursor is asked to build, run, test, debug, or configure an OpenAI-backed or provider-unspecified AI app, UI, script, CLI, generator, or tool, especially requests phrased only as \"using AI\" or generators driven by forms\u002Fuser input; also use for OPENAI_API_KEY or sk-proj setup. Do not gate model or prompt migrations that can proceed with source edits and offline validation. Otherwise treat this as the credential gate: inspect safely, ask reuse-vs-new before API work, guide manual local setup when needed, verify presence, and never expose plaintext.'\n---\n\n# OpenAI API Key Setup\n\nUse this as the credential gate for OpenAI API-backed work in Cursor.\n\n## When To Use\n\nUse this skill as the credential gate for API-backed work, not as the app, docs, or implementation skill.\n\nUse it when:\n\n- The user asks for an OpenAI API key, `OPENAI_API_KEY`, or an `sk-proj` key.\n- Cursor will build, implement, run, test, debug, or configure an app, script, CLI, generator, UI, or tool that calls the OpenAI API, even before a live request and even if a usable key already exists.\n- The user asks Cursor to build, implement, run, or configure an app, script, CLI, generator, or tool that uses AI to produce outputs from user input.\n- The user asks for an AI-powered app or UI that generates output from one or more input fields, forms, prompts, files, or other user-provided values.\n- The user says \"using AI\" in an app\u002Fscript\u002Fbuild request and does not name a different provider.\n\nDo not use it when:\n\n- The user only wants documentation, citations, model or API guidance, conceptual explanation, or code examples without asking Cursor to build, run, configure, or debug an API-backed artifact.\n- The user asks for a static frontend, visual mockup, design concept, or placeholder UI with no API-backed behavior.\n- The user only asks Cursor to write a one-off output directly and no app, script, generator, or API-backed tool is being built or run.\n- The user names a different AI provider for the artifact.\n- The user asks to migrate or update an existing OpenAI model or prompts and the work can proceed through source or configuration edits plus offline, mocked, static, fixture-based, or syntax validation. Use this skill later only if a live API request is actually needed.\n\nIf API access is needed and no usable key is found, guide the user through manual local setup instead of leaving placeholder docs or incomplete setup steps.\n\n## Coordination With Implementation Skills\n\nWhen another implementation skill also applies, run this skill first only to inspect credentials safely and send the credential decision message. Until reuse-existing-key vs create-new-key is resolved, it outranks design-first and implementation-first flows; do not design UI, choose architecture, inspect API examples, write code, or run smoke tests. Model and prompt migrations are the narrow exception above: complete requested source\u002Fconfiguration edits and offline validation without a credential decision, then use this skill only before any live API request. After the user answers, hand off to the appropriate implementation or docs skill.\n\n## Mandatory First Step\n\nBefore editing, testing, running, debugging, or configuring any code that calls the OpenAI API, except for the model\u002Fprompt migration source edits and offline validation explicitly allowed above:\n\n1. Inspect for a usable `OPENAI_API_KEY` without printing it.\n2. Unless the user explicitly asked for a new key, ask whether to reuse an existing key or create a new one. If none exists, ask whether they want to create one manually.\n3. Stop until the user answers.\n\nThis applies even if:\n\n- a usable key already exists\n- no live API call will be made\n- no secret will be written\n- the task is \"just create a script\"\n\nFinding an existing key is not permission to proceed. It only changes the question you ask.\n\nThe credential decision is a hard stop outside the model\u002Fprompt migration exception above. Before the user answers, do not create directories, scaffold files, draft implementation plans, wire API-dependent code, run smoke tests, or give placeholder key setup instructions. The only allowed pre-gate work is safe repo convention discovery and credential presence checks that do not print secrets.\n\n## Credential Decision Messages\n\nAfter inspecting credentials, the next user-facing message must be the credential decision message. Do not send interim user-facing messages about env files, key presence, API docs, file plans, implementation shape, or setup instructions before this decision.\n\nUse one of these branches:\n\n- Existing usable key found, and the user did not explicitly ask for a new key: make clear that the OpenAI API will power the app, script, or project, say that an existing usable `OPENAI_API_KEY` was found without revealing it, then ask whether to reuse that key or create a new one.\n- No usable key found: make clear that the OpenAI API will power the app, script, or project, say that no usable `OPENAI_API_KEY` was found, then ask whether they want to create one manually.\n- User explicitly asked for a new key: skip the reuse question and use the manual setup confirmation below.\n\nAfter sending the credential decision message, stop until the user answers.\n\n## Workflow\n\n1. Inspect before acting:\n   - look for a usable key without printing secret values in the current environment and likely local env files such as `.env.local`, `.env`, and ignored framework-specific env files\n   - inspect env files only with no-output checks that reveal presence\u002Fabsence, never with commands that echo matching lines or whole files\n   - check README\u002Fsetup docs, `OPENAI_BASE_URL`, and framework env docs for repo conventions separately from secret-bearing env files\n   - prefer ignored or untracked env files; avoid tracked targets unless the user explicitly confirms that choice\n   - default to `.env.local` and `OPENAI_API_KEY` when no stronger convention exists\n2. Based on that inspection:\n   - for tasks that will call the OpenAI API, when asking this up-front question, mention that the OpenAI API will power the app, script, or project before mentioning whether an existing key was found\n   - if the user explicitly asked for a new key, no reuse decision is needed\n   - otherwise, before building, implementing, running, testing, debugging, or configuring an app or script that calls the OpenAI API, ask up front whether to reuse an existing usable key or create a new one\n   - if no usable key exists, ask whether they want to create one manually before building the rest of the app\n   - ask this up front even before any live request; after asking, stop without adding an app plan, file list, code sketch, manual `OPENAI_API_KEY` instructions, or fallback placeholder setup\n   - do not silently reuse a detected key for implementation, verification, smoke tests, or other live requests just because the user did not ask about credentials\n   - treat requests to create or configure a key as ambiguous unless the user says they want a new key\n   - if the user chooses reuse and a persistent file write is still needed, confirm the destination file\u002Fenv var before writing\n\n## Manual Setup\n\nUse manual setup because this Cursor package cannot mint or retrieve OpenAI API keys automatically.\n\n1. Point the user to [Platform API keys](https:\u002F\u002Fplatform.openai.com\u002Fsettings\u002Forganization\u002Fapi-keys).\n2. Ask them to place the key locally as `OPENAI_API_KEY`, defaulting to `.env.local`.\n3. After they say setup is complete, verify presence with no-output checks before continuing.\n\n## Safe Checks\n\n- Prefer no-output existence checks such as checking whether the environment variable is set.\n- For env files, only use no-output presence checks such as whether a line beginning with `OPENAI_API_KEY=` exists. Do not print file contents or matching lines.\n- Inspect repo conventions separately from secret-bearing files when choosing `.env.local`, `.env`, or another ignored local env file.\n\n## Rules\n\n- Never print, quote, summarize, or paste a plaintext key.\n- Never inspect credentials with commands that can print secret values, such as `cat .env*`, `grep OPENAI_API_KEY .env*`, or `rg OPENAI_API_KEY .env*`. Use silent exit-status checks or redacted summaries only.\n- Never claim this Cursor setup can mint or retrieve keys automatically.\n- Prefer `.env.local` unless the repo already has a better local secret convention.\n- Stop at the credential decision point until the user answers.\n- Verify the key is present before continuing with API-backed work.\n","# OpenAI API Key Setup\n\nUse this as the credential gate for OpenAI API-backed work in Cursor.\n\n## When To Use\n\nUse this skill as the credential gate for API-backed work, not as the app, docs, or implementation skill.\n\nUse it when:\n\n- The user asks for an OpenAI API key, `OPENAI_API_KEY`, or an `sk-proj` key.\n- Cursor will build, implement, run, test, debug, or configure an app, script, CLI, generator, UI, or tool that calls the OpenAI API, even before a live request and even if a usable key already exists.\n- The user asks Cursor to build, implement, run, or configure an app, script, CLI, generator, or tool that uses AI to produce outputs from user input.\n- The user asks for an AI-powered app or UI that generates output from one or more input fields, forms, prompts, files, or other user-provided values.\n- The user says \"using AI\" in an app\u002Fscript\u002Fbuild request and does not name a different provider.\n\nDo not use it when:\n\n- The user only wants documentation, citations, model or API guidance, conceptual explanation, or code examples without asking Cursor to build, run, configure, or debug an API-backed artifact.\n- The user asks for a static frontend, visual mockup, design concept, or placeholder UI with no API-backed behavior.\n- The user only asks Cursor to write a one-off output directly and no app, script, generator, or API-backed tool is being built or run.\n- The user names a different AI provider for the artifact.\n- The user asks to migrate or update an existing OpenAI model or prompts and the work can proceed through source or configuration edits plus offline, mocked, static, fixture-based, or syntax validation. Use this skill later only if a live API request is actually needed.\n\nIf API access is needed and no usable key is found, guide the user through manual local setup instead of leaving placeholder docs or incomplete setup steps.\n\n## Coordination With Implementation Skills\n\nWhen another implementation skill also applies, run this skill first only to inspect credentials safely and send the credential decision message. Until reuse-existing-key vs create-new-key is resolved, it outranks design-first and implementation-first flows; do not design UI, choose architecture, inspect API examples, write code, or run smoke tests. Model and prompt migrations are the narrow exception above: complete requested source\u002Fconfiguration edits and offline validation without a credential decision, then use this skill only before any live API request. After the user answers, hand off to the appropriate implementation or docs skill.\n\n## Mandatory First Step\n\nBefore editing, testing, running, debugging, or configuring any code that calls the OpenAI API, except for the model\u002Fprompt migration source edits and offline validation explicitly allowed above:\n\n1. Inspect for a usable `OPENAI_API_KEY` without printing it.\n2. Unless the user explicitly asked for a new key, ask whether to reuse an existing key or create a new one. If none exists, ask whether they want to create one manually.\n3. Stop until the user answers.\n\nThis applies even if:\n\n- a usable key already exists\n- no live API call will be made\n- no secret will be written\n- the task is \"just create a script\"\n\nFinding an existing key is not permission to proceed. It only changes the question you ask.\n\nThe credential decision is a hard stop outside the model\u002Fprompt migration exception above. Before the user answers, do not create directories, scaffold files, draft implementation plans, wire API-dependent code, run smoke tests, or give placeholder key setup instructions. The only allowed pre-gate work is safe repo convention discovery and credential presence checks that do not print secrets.\n\n## Credential Decision Messages\n\nAfter inspecting credentials, the next user-facing message must be the credential decision message. Do not send interim user-facing messages about env files, key presence, API docs, file plans, implementation shape, or setup instructions before this decision.\n\nUse one of these branches:\n\n- Existing usable key found, and the user did not explicitly ask for a new key: make clear that the OpenAI API will power the app, script, or project, say that an existing usable `OPENAI_API_KEY` was found without revealing it, then ask whether to reuse that key or create a new one.\n- No usable key found: make clear that the OpenAI API will power the app, script, or project, say that no usable `OPENAI_API_KEY` was found, then ask whether they want to create one manually.\n- User explicitly asked for a new key: skip the reuse question and use the manual setup confirmation below.\n\nAfter sending the credential decision message, stop until the user answers.\n\n## Workflow\n\n1. Inspect before acting:\n   - look for a usable key without printing secret values in the current environment and likely local env files such as `.env.local`, `.env`, and ignored framework-specific env files\n   - inspect env files only with no-output checks that reveal presence\u002Fabsence, never with commands that echo matching lines or whole files\n   - check README\u002Fsetup docs, `OPENAI_BASE_URL`, and framework env docs for repo conventions separately from secret-bearing env files\n   - prefer ignored or untracked env files; avoid tracked targets unless the user explicitly confirms that choice\n   - default to `.env.local` and `OPENAI_API_KEY` when no stronger convention exists\n2. Based on that inspection:\n   - for tasks that will call the OpenAI API, when asking this up-front question, mention that the OpenAI API will power the app, script, or project before mentioning whether an existing key was found\n   - if the user explicitly asked for a new key, no reuse decision is needed\n   - otherwise, before building, implementing, running, testing, debugging, or configuring an app or script that calls the OpenAI API, ask up front whether to reuse an existing usable key or create a new one\n   - if no usable key exists, ask whether they want to create one manually before building the rest of the app\n   - ask this up front even before any live request; after asking, stop without adding an app plan, file list, code sketch, manual `OPENAI_API_KEY` instructions, or fallback placeholder setup\n   - do not silently reuse a detected key for implementation, verification, smoke tests, or other live requests just because the user did not ask about credentials\n   - treat requests to create or configure a key as ambiguous unless the user says they want a new key\n   - if the user chooses reuse and a persistent file write is still needed, confirm the destination file\u002Fenv var before writing\n\n## Manual Setup\n\nUse manual setup because this Cursor package cannot mint or retrieve OpenAI API keys automatically.\n\n1. Point the user to [Platform API keys](https:\u002F\u002Fplatform.openai.com\u002Fsettings\u002Forganization\u002Fapi-keys).\n2. Ask them to place the key locally as `OPENAI_API_KEY`, defaulting to `.env.local`.\n3. After they say setup is complete, verify presence with no-output checks before continuing.\n\n## Safe Checks\n\n- Prefer no-output existence checks such as checking whether the environment variable is set.\n- For env files, only use no-output presence checks such as whether a line beginning with `OPENAI_API_KEY=` exists. Do not print file contents or matching lines.\n- Inspect repo conventions separately from secret-bearing files when choosing `.env.local`, `.env`, or another ignored local env file.\n\n## Rules\n\n- Never print, quote, summarize, or paste a plaintext key.\n- Never inspect credentials with commands that can print secret values, such as `cat .env*`, `grep OPENAI_API_KEY .env*`, or `rg OPENAI_API_KEY .env*`. Use silent exit-status checks or redacted summaries only.\n- Never claim this Cursor setup can mint or retrieve keys automatically.\n- Prefer `.env.local` unless the repo already has a better local secret convention.\n- Stop at the credential decision point until the user answers.\n- Verify the key is present before continuing with API-backed work.\n",{"name":5,"description":7},"main","773bf911a0526a3f4bd395af6dd6de003917298c","skills\u002Fopenai-platform-api-key",7,"https:\u002F\u002Fgithub.com\u002Fopenai\u002Fopenai-developers-for-cursor","https:\u002F\u002Fgithub.com\u002Fopenai","https:\u002F\u002Fopenai.com\u002F","2026-11-03 02:58:28",{"source":8,"skillName":5,"commands":62,"prompt":72,"zipAvailable":73},[63,66,69],{"tool":64,"command":65},"npx","npx skills add openai\u002Fopenai-developers-for-cursor --skill openai-platform-api-key",{"tool":67,"command":68},"bunx","bunx skills add openai\u002Fopenai-developers-for-cursor --skill openai-platform-api-key",{"tool":70,"command":71},"pnpm","pnpm dlx skills add openai\u002Fopenai-developers-for-cursor --skill openai-platform-api-key","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fopenai\u002Fopenai-developers-for-cursor\u002Fblob\u002Fmain\u002Fskills\u002Fopenai-platform-api-key\u002FSKILL.md",true,[],[76,103,115,131,145],{"skillNo":77,"name":78,"nameZh":6,"description":79,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":80,"categories":81,"keywords":85,"publishedAt":48},"01M6AC6ZDADZBE7S8SACF903BJ","openai-docs","Use whenever the user asks anything about OpenAI products, APIs, models, or SDKs — including factual lookups (\"what is the newest model\", \"does X support Y\"), build\u002Fcoding requests (\"write a script using the Responses API\"), latest\u002Fcurrent\u002Fdefault-model prompting guidance, model migrations, and citation requests. Invoke before calling any openaiDeveloperDocs MCP tool.","https:\u002F\u002Fgithub.com\u002Fopenai\u002Fopenai-developers-for-cursor\u002Fblob\u002Fmain\u002Fskills\u002Fopenai-docs\u002FSKILL.md",[82],{"categoryNo":83,"categoryName":84,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",[9,86,87,88,89,90,91,30,92,43,93,94,95,96,97,98,99,100,101,102],"openai docs","docs","write","MCP","support","responses api","tool","coding","use","models","guidance","migrations","default","build","calling","about","script",{"skillNo":104,"name":105,"nameZh":6,"description":106,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":107,"categories":108,"keywords":111,"publishedAt":48},"01M6AC6XMX7SVT6EZNVKCVGR22","openai-api-troubleshooting","Use when an OpenAI API request fails or the user asks what an error means, including blocked access to api.openai.com, 401 invalid_api_key, missing OPENAI_API_KEY, 429 insufficient_quota, 429 rate_limit_exceeded, or 403 model_not_found. Classify the failure, name the next step, route credential setup to openai-platform-api-key, and current guidance to openai-docs.","https:\u002F\u002Fgithub.com\u002Fopenai\u002Fopenai-developers-for-cursor\u002Fblob\u002Fmain\u002Fskills\u002Fopenai-api-troubleshooting\u002FSKILL.md",[109,110],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":24,"categoryName":25,"taxonomyType":26,"taxonomyTypeDesc":27},[112,113,9,87,114],"openai api troubleshooting","openai api","setup",{"skillNo":116,"name":117,"nameZh":6,"description":118,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":119,"categories":120,"keywords":122,"publishedAt":48},"01M6AC6VDFEBYF8TBM4FM09KWD","chatgpt-app-submission","Use when a developer needs a ChatGPT Apps submission import file from an MCP server. Inspect the implementation, generate chatgpt-app-submission.json with app info, tool-hint justifications, positive and negative test cases, then report review findings and outputSchema warnings.","https:\u002F\u002Fgithub.com\u002Fopenai\u002Fopenai-developers-for-cursor\u002Fblob\u002Fmain\u002Fskills\u002Fchatgpt-app-submission\u002FSKILL.md",[121],{"categoryNo":83,"categoryName":84,"taxonomyType":21,"taxonomyTypeDesc":22},[123,124,125,89,126,127,128,129,130],"chatgpt app submission","chatgpt","test","review","mcp server","generate","report","chatgpt apps",{"skillNo":132,"name":133,"nameZh":6,"description":134,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":135,"categories":136,"keywords":138,"publishedAt":48},"01M6AC6S2BGKFHQP4QW3AFNSTD","build-chatgpt-app","Use when the user explicitly wants a ChatGPT App, Apps SDK project, MCP server plus widget UI, ChatGPT-compatible tool UI, or submission\u002Fdeployment work for that surface. Build, scaffold, refactor, or troubleshoot those projects from Cursor, consult openai-docs before generating code, and use openai-platform-api-key before any app path that requires live OpenAI API credentials.","https:\u002F\u002Fgithub.com\u002Fopenai\u002Fopenai-developers-for-cursor\u002Fblob\u002Fmain\u002Fskills\u002Fbuild-chatgpt-app\u002FSKILL.md",[137],{"categoryNo":83,"categoryName":84,"taxonomyType":21,"taxonomyTypeDesc":22},[139,124,140,141,142,9,113,127,143,144,87,89],"build chatgpt app","deployment","code","troubleshoot","scaffold","sdk",{"skillNo":146,"name":147,"nameZh":6,"description":148,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":149,"categories":150,"keywords":151,"publishedAt":48},"01M6AC6QD2NYKG0A81BXFK22TA","agents-sdk","Use when the user wants to build, adapt, run, or evaluate an OpenAI Agents SDK app from Cursor. Prefer a docs-first workflow and route API credential decisions through openai-platform-api-key before API-backed work.","https:\u002F\u002Fgithub.com\u002Fopenai\u002Fopenai-developers-for-cursor\u002Fblob\u002Fmain\u002Fskills\u002Fagents-sdk\u002FSKILL.md",[],[152,144,153,87,46,9],"agents sdk","workflow"]