How ChatGPT Apps Work

The distribution surface has shifted. Eight hundred million weekly ChatGPT users can now use interactive third-party apps inside the chat.

ChatGPT Apps replaced the earlier Plugins and GPTs approach with a richer architecture. Instead of returning plain text, an app can render a full interactive widget directly inside the conversation. The app has three parts: a Model Context Protocol server that exposes tools and UI resources, a widget that runs in a sandboxed iframe with its own state and event handling, and ChatGPT itself as the host that decides when to invoke the app and renders the result. With hundreds of millions of weekly users on the platform, this is a distribution surface, not just a feature.

The module traces the full request flow. A user sends a message. ChatGPT selects a tool based on its description, which is why the description text carries real weight. The server returns structured content plus a reference to a UI template. ChatGPT fetches the HTML bundle, renders it in the iframe, and the widget receives its data through a window.openai bridge. Widgets can call tools directly to bypass the model for fast data operations, or send follow-up messages to keep the model in the loop. Display modes include inline, full-screen, and picture-in-picture, with one widget per message as the current constraint.

After reading, you will be able to review an app design with the right questions. The security model is strict: widgets run on a sandbox origin, cannot access cookies or local storage, and can only make network requests to domains declared in their Content Security Policy. Sensitive business logic belongs on the MCP server, never in the widget, and every design review should include a data flow diagram showing which party sees which data at each step.

The failure modes are specific. Vague tool descriptions mean ChatGPT never selects the app. Authentication logic placed in the widget instead of the server breaks the trust boundary. Assuming one widget can access another app's state because they share a chat misunderstands the sandbox.

In one paragraph

ChatGPT Apps replaced the earlier Plugins and GPTs approach with a richer architecture. Instead of returning plain text, an app can render a full interactive widget directly inside the conversation. The app has three parts: a Model Context Protocol server that exposes tools and UI resources, a widget that runs in a sandboxed iframe with its own state and event handling, and ChatGPT itself as the host that decides when to invoke the app and renders the widget. Users install apps through settings; conversations can then summon widgets automatically based on context or by explicit mention.

This module is part of the Agents and Tooling track in the free AI Learning Hub. Source material: How ChatGPT Apps Work.