New to Claude Skills? Learn how to install them →

shubhamsaboo on GitHub

ChatGPT App Builder

Free

Easily create interactive ChatGPT apps with widgets.

Get this skill

Free · Opens the source repo

What ChatGPT App Builder does

ChatGPT App Builder is designed for developers looking to create interactive applications using ChatGPT and the mcp-use framework. This skill simplifies the development process by providing a zero-configuration environment for building widgets. It allows developers to focus on the functionality of their applications without getting bogged down by setup complexities. The skill facilitates seamless collaboration between a human user and the ChatGPT LLM, enabling them to interact through a shared widget interface.

The app operates by allowing both the human and the LLM to engage with the widget simultaneously. The human can manipulate the widget, while the LLM observes its state, creating a dynamic interaction model. This setup is particularly useful for applications that require real-time feedback and collaboration, such as educational tools, customer support interfaces, or creative applications that leverage AI assistance.

Before diving into coding, developers are encouraged to clarify their project goals and design their user interfaces effectively. The provided references guide users through the entire process, from project setup to advanced widget patterns. This structured approach helps ensure that developers can create robust applications that meet user needs while taking advantage of the capabilities offered by the OpenAI Apps SDK.

Although this skill is deprecated and has been replaced by mcp-app-builder, it still serves as a valuable resource for understanding the foundational concepts of building ChatGPT apps with interactive widgets. Developers should transition to the mcp-app-builder for continued support and enhanced features.

When to use it

Use this skill when developing ChatGPT applications that require interactive widgets and real-time collaboration between users and the LLM.

When not to use it

This skill is deprecated and should not be used for new projects; instead, use mcp-app-builder for up-to-date functionality.

What you can build with it

Creating an Educational Tool

Develop an interactive learning application where students can ask questions and receive real-time feedback from ChatGPT.

Building a Customer Support Interface

Implement a customer support widget that allows users to interact with ChatGPT for troubleshooting and inquiries.

Designing a Creative Writing Assistant

Create a writing assistant that helps users generate ideas and content collaboratively with ChatGPT.

How to install ChatGPT App Builder

View source

1. Install with the skills CLI

npx skills add shubhamsaboo/awesome-llm-apps/chatgpt-app-builder --agent claude-code

2. Or install it manually

Download the skill folder and drop it into ~/.claude/skills/ for all projects, or .claude/skills/ to scope it to one repo. Restart Claude Code so it picks up the new skill.

Anthropic's agentic coding CLI, and the reference implementation of Agent Skills. Drop a skill folder into ~/.claude/skills and Claude Code loads it automatically whenever a task matches the skill's description. Claude Code docs

Inside SKILL.md

Written by shubhamsaboo

ChatGPT App Builder

Build ChatGPT apps with interactive widgets using mcp-use. Zero-config widget development with automatic registration and built-in React hooks.

The app is consumed by two users at once: the human and the ChatGPT LLM. They collaborate through the widget -- the human interacts with it, the LLM sees its state. The widget is your shared surface.

Before You Code

  • Clarify what to builddiscover.md: when starting a new app, validating an idea, or scoping features
  • Design tools and widgetsarchitecture.md: when deciding what needs UI vs tools-only, designing UX flows

Setup

  • Scaffold and runsetup.md: when creating a new project, starting dev server, connecting to ChatGPT/Claude

Implementation

  • Server handlers + widget creationserver-and-widgets.md: when writing server.tool() with widgets, widget() helper, React widget files
  • Widget state and LLM contextstate-and-context.md: when persisting state, triggering LLM from widget, managing ephemeral vs persistent data
  • Display modes, theme, layoutui-guidelines.md: when adapting to inline/fullscreen/PiP, handling theme, device, locale
  • Component APIcomponents-api.md: when using McpUseProvider, Image, ErrorBoundary, useWidget
  • CSP and metadatacsp-and-metadata.md: when configuring external domains, dual-protocol metadata
  • Advanced patternswidget-patterns.md: when building complex widgets with tool calls, state, theming

Quick Reference

// Server
import { MCPServer, widget, text, object } from "mcp-use/server";
server.tool({ name: "...", schema: z.object({...}), widget: { name: "widget-name" } },
  async (input) => widget({ props: {...}, output: text("...") })
);

// Widget (resources/widget-name.tsx)
import { McpUseProvider, useWidget, type WidgetMetadata } from "mcp-use/react";
export const widgetMetadata: WidgetMetadata = { description: "...", props: z.object({...}) };
export default function MyWidget() {
  const { props, isPending, callTool, sendFollowUpMessage, state, setState, theme } = useWidget();
  if (isPending) return <McpUseProvider autoSize><div>Loading...</div></McpUseProvider>;
  return <McpUseProvider autoSize><div>{/* UI */}</div></McpUseProvider>;
}

Frequently asked questions about ChatGPT App Builder

Similar skills