Learning HubAgents and ToolingHow ChatGPT Apps Work

Module 11 · Agents and Tooling

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.

Overview

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.

Key ideas

  • 01

    Apps are not just GPTs with a user interface. They are a different architecture, with a sandboxed iframe, a structured tool-call flow, and a JavaScript bridge to the host.

  • 02

    A tool definition includes a name, a description that ChatGPT uses to decide when to invoke it, an input schema, and an output template pointing to a UI resource.

  • 03

    The flow is: user message, ChatGPT selects tool, server returns structured content plus a UI template reference, ChatGPT fetches the HTML bundle and renders it in the iframe, widget receives data through a window.openai bridge.

  • 04

    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.

  • 05

    Display modes include inline, full-screen, and picture-in-picture. One widget per message is the current constraint.

  • 06

    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.

How a senior leader uses this

  • Treat ChatGPT Apps as a distribution channel, not a product. Map which organization services would benefit from this surface.

  • Insist that sensitive business logic lives on the MCP server, not in the widget.

  • Require a clear data flow diagram showing which party sees which data at each step.

Common failure modes

  • Writing vague tool descriptions so ChatGPT never selects the app.

  • Putting authentication logic in the widget instead of the server.

  • Assuming the widget can access other apps' state because they appear in the same chat.

Further reading

Original source: How ChatGPT Apps Work on The System Design Newsletter by Neo Kim and collaborators

Shahzad Asghar

Head of Data and Digital Solutions at UN-ESCWA, where he leads AI-driven digital transformation across Arab member states. He writes on AI governance, self-healing pipelines, and data quality at scale. Connect on LinkedIn or visit unaiwork.org.