Agent skill · Frontend

chatgpt-apps

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.

Haohao-endgithub.com/Haohao-endGitHub ↗
claude-codeships scriptsMIT
Install
npx skills add Haohao-end/openagent --skill chatgpt-apps --agent claude-code

Same command for any agent — swap --agent for codex, cursor, copilot.

Facts
Files in the skill folder: 6
SKILL.md size: 19 KB
Bundled scripts: yes
Path: api/internal/core/skills/catalog/chatgpt-apps/SKILL.md
Open the folder on GitHub →
Where it comes from
Stars: 778
Language: Python

Weekly change comes from our own snapshots, not the repository page — it measures attention, not adoption.

From the SKILL.md

# ChatGPT Apps ## Overview Scaffold ChatGPT Apps SDK implementations with a docs-first, example-first workflow, then generate code that follows current Apps SDK and MCP Apps bridge patterns. Use this skill to produce: - A primary app-archetype classification and repo-shape decision - A tool plan (names, schemas, annotations, outputs) - An upstream starting-point recommendation (official example, ext-apps example, or local fallback scaffold) - An MCP server scaffold (resource registration, tool handlers, metadata) - A widget scaffold (MCP Apps bridge first, `window.openai` compatibility/extensions second) - A reusable Node + `@modelcontextprotocol/ext-apps` starter scaffold for low-dependency fallbacks - A validation report against the minimum working repo contract - Local dev and connector setup steps - A short stakeholder summary of what the app does (when requested) ## Mandatory Docs-First Workflow Use `$openai-docs` first whenever building or changing a ChatGPT Apps SDK app. 1. Invoke `$openai-docs` (preferred) or call the OpenAI docs MCP server directly. 2. Fetch current Apps SDK docs before writing code, especially (baseline pages): - `apps-sdk/build/mcp-server` - `apps-sdk/bu

What's inside
Steps it walks through
  1. Overview
  2. Mandatory Docs-First Workflow
  3. Prompt Guidance
  4. Classify The App Before Choosing Code
  5. Default Starting-Point Order
  6. Build Workflow
  7. 0. Classify The App Archetype
  8. 1. Plan Tools Before Code
  9. 2. Choose an App Architecture
  10. 2a. Start From An Upstream Example When One Fits
  11. 2b. Use the Starter Script When a Low-Dependency Fallback Helps
  12. 3. Scaffold the MCP Server
  13. 4. Scaffold the Widget UI
  14. 5. Add Resource Metadata and Security
Ships with 4 files
  • LICENSE.txt
  • agents/openai.yaml
  • manifest.yaml
  • scripts/scaffold_node_ext_apps.mjs
More from openagent
All skills →
About this skill
What does the chatgpt-apps skill do?

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.

How do I install it?

Run `npx skills add Haohao-end/openagent --skill chatgpt-apps --agent claude-code` — it drops the skill into your project so the agent can pick it up. Swap the --agent value for codex, cursor or copilot if you use one of those.

Where does this skill come from?

From Haohao-end/openagent, a repository with 778 stars. We read it straight from the repository tree rather than a submitted listing, so what you see here is what is actually published.

Is a popular skill a good skill?

Not necessarily. Stars measure attention, not adoption — a repository can trend for a week and be abandoned. That is why we show the weekly change from our own snapshots next to the total, instead of a single flattering number.

Keep going