The ChatGPT apps framework. Make components, define schemas - everything else is automated.
Note: This project is a fork of OpenAI's Apps SDK Examples, enhanced with an automated framework to reduce boilerplate and simplify widget creation.
For AI Coding Tools: If you're using an AI coding tool like Cursor, Claude Code, or Codex, try prompting:
"Read the /docs/AGENTS.md and help me use this chatjs framework."
Or clone this repository to use as a starting point.
Terminal 1 - Frontend assets server:
Terminal 2 - MCP server:
Terminal 3 - Expose to internet:
From the ngrok command, You will get a public URL.
For example: https://<custom_endpoint>.ngrok-free.app/mcp
💡 Tip: If you used npx create-chatgpt-app, your project already includes 6 example widgets (pizzaz map, albums, carousel, list, solar-system, and todo) ready to try!
To add these apps to ChatGPT, enable developer mode, and add your apps in Settings > Connectors.
Add your local public URL from ngrok(like 'https://<custom_endpoint>.ngrok-free.app/mcp') to ChatGPT in Settings > Connectors.
Create src/components/my-widget/index.jsx:
Edit server/src/server.ts:
Done.
- component: "my-widget" maps to src/components/my-widget/
- Build script auto-discovers all components
- Server auto-syncs version from package.json for asset hashing
- Framework auto-generates MCP tools, resources, and handlers
404 on widget assets:
Component not found:
- Check src/components/your-widget/index.jsx exists
- Check widget definition in server/src/server.ts
This project is built upon OpenAI's Apps SDK Examples, which provides the foundation for creating ChatGPT apps using the Model Context Protocol (MCP).
Key enhancements in Chat.js:
- Automated MCP framework that eliminates 300+ lines of boilerplate
- Convention-based widget registration
- Automatic asset URL generation with version syncing
- Simplified API for creating widgets
- npm initializer (create-chatgpt-app) for instant project setup
Credits to OpenAI for the original Apps SDK implementation and example widgets.
MIT
.png)
![The Perfect Router Does Not Exi [video]](https://www.youtube.com/img/desktop/supported_browsers/firefox.png)

