All skills
openai avatar

/chatgpt-apps

@cb9153a official
by openaiopenai/skills28k stars
1,891

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.

Use this Skill: https://skilld.dev/gh/openai/skills/chatgpt-apps

This session only. Nothing lands on disk.

referencesapp-archetypes.md

≈879 tokens on demand. Your agent reads this file only when SKILL.md points to it.

App Archetypes

Load this reference before choosing a starting point for a new ChatGPT app. The goal is to keep the skill inside a small number of supported app shapes instead of inventing a custom structure for every prompt.

Rule

Choose one primary archetype per request and state it.

Do not combine several archetypes unless the user explicitly asks for a hybrid app and the extra complexity is necessary.

Archetypes

tool-only

Use when:

  • The user does not need an in-ChatGPT UI
  • The task is mainly search, fetch, retrieval, or background actions

Default shape:

  • MCP server only

Best starting point:

  • Official docs and MCP server examples

Validation emphasis:

  • /mcp route works
  • tool schemas and annotations are correct
  • no unnecessary UI resource is registered
  • if the app is connector-like or sync-oriented, search and fetch should be the default read-only tools

vanilla-widget

Use when:

  • The user wants a small demo, workshop starter, or simple inline widget
  • A single HTML widget is enough
  • The user wants the fastest path to a working repo

Default shape:

  • Root-level server plus public/ widget assets

Best starting point:

  • Apps SDK quickstart first
  • Local fallback scaffold if the quickstart is not a good fit

Validation emphasis:

  • bridge initialization
  • ui/notifications/tool-result
  • tools/call only when the widget is interactive

react-widget

Use when:

  • The user wants a polished UI
  • The UI is clearly component-based
  • The user mentions React, TypeScript frontend tooling, or richer design requirements

Default shape:

  • Split server/ + web/ layout when the example already uses it

Best starting point:

  • Official OpenAI examples

Validation emphasis:

  • build output is wired into the server correctly
  • bundle references resolve
  • widget renders from structuredContent

interactive-decoupled

Use when:

  • The app has repeated user interaction
  • The widget should stay mounted while tools are called repeatedly
  • The app is a board, map, editor, game, dashboard, or other stateful experience

Default shape:

  • Split server/ + web/
  • data tools plus render tools

Best starting point:

  • Official OpenAI examples plus references/interactive-state-sync-patterns.md

Validation emphasis:

  • tool retries are safe
  • widget does not remount unnecessarily
  • state sync is intentional
  • UI tool calls work independently of model reruns

submission-ready

Use when:

  • The user asks for public launch, review readiness, or directory submission

Default shape:

  • Smallest viable repo that still includes deployment and review requirements

Best starting point:

  • Closest official example that matches the requested stack

Validation emphasis:

  • _meta.ui.domain
  • accurate CSP
  • auth and review-safe flows
  • submission prerequisites and artifacts

Selection Heuristic

  • If the prompt does not mention a UI, choose tool-only.
  • If the prompt is about a knowledge source, sync app, connector-like integration, or deep research, strongly prefer tool-only plus the standard search and fetch tools unless the user clearly needs a widget.
  • If the prompt asks for a simple demo or starter, choose vanilla-widget.
  • If the prompt asks for a polished UI or React, choose react-widget.
  • If the prompt implies long-lived client state or repeated interaction, choose interactive-decoupled.
  • Only choose submission-ready when the user explicitly asks for launch or review-readiness work.

Source: SKILL.md on GitHub

1 alert17d5 checks · Risk SAFE
  • Gen Agent Trust Hub17d

    This skill provides a robust framework for scaffolding ChatGPT Apps SDK applications, including MCP servers and widget UIs. It includes a built-in scaffolding script and detailed guidance on security best practices like Content Security Policy (CSP) and domain validation.

  • Socket17d

    No alerts

  • Snyk17d

    Risk: LOW · No issues

  • Runlayer6mo

    4/11 files flagged

  • ZeroLeaks5mo

    Score: 93/100 · 2 sections analyzed

Signed by skilld at cb9153a. This ties the file your Agent reads to that commit on GitHub. It does not review the instructions.

Last checked against GitHub 2 months ago.

Activeupdated 7 months ago

README badge

README badge for openai/skills/chatgpt-apps

Scaffolds ChatGPT Apps SDK implementations with MCP server and widget UI, using a docs-first workflow that references current Apps SDK guidance before generating code. Targets tool planning, MCP server registration, widget scaffolding with the MCP Apps bridge, and validation against the Apps SDK contract. Integrates with the openai-docs skill to keep generated code aligned with official examples and patterns.

Generated from the current SKILL.md.

Does this skill work with Python MCP servers or only Node.js?
The skill supports both. It defaults to Node.js examples and includes a Node fallback scaffold, but explicitly asks about backend language during planning and can scaffold Python MCP servers when requested.
What's the relationship between this skill and the openai-docs skill?
This skill requires a docs-first workflow and must be paired with openai-docs (or the OpenAI docs MCP server directly) before generating code. Always fetch current Apps SDK docs before writing scaffolds.
Does this help with apps already built, or only greenfield projects?
It handles both. The skill can scaffold new apps, refactor existing ones against current docs, validate repos against the minimum working contract, and plan tool surfaces or architecture changes.
What happens if I want to use React for the widget?
The skill can scaffold React widgets. It prefers official OpenAI examples first when they match your stack, or adapts ext-apps React examples, and falls back to vanilla HTML only when no closer match exists.
Can this skill help with submission to the ChatGPT directory?
Yes. The skill includes an `submission-ready` archetype and can generate production-ready scaffolds with tool annotations, CSP, URI versioning, and guides for deployment and submission workflows.

Generated from the current SKILL.md. These answers refresh after source changes.