Einführung:Autor: Boxu Li
Apps in ChatGPT ermöglichen es jetzt Drittentwicklern, interaktive Mini-Anwendungen zu erstellen, die in der Chat-Oberfläche leben. Anstatt Benutzer auf Websites oder mobile Apps zu schicken, laufen diese Anwendungen innerhalb des Gesprächs und nutzen das Denkvermögen des Modells, um Aktionen auszuführen. Frühe Partner wie Canva, Coursera, Expedia und Zillow zeigten, wie Benutzer eine Wiedergabeliste anfordern, ein Poster entwerfen oder Immobilien durchsuchen können, ohne ChatGPT zu verlassen[1]. Das neue Apps SDK basiert auf dem Model Context Protocol (MCP), einem offenen Standard, der es Modellen ermöglicht, mit externen Tools und Benutzeroberflächen zu interagieren[2]. Dieser Blog taucht tief in die Architektur von MCP-basierten Apps ein, erklärt die Fähigkeiten des SDKs, führt Schritt für Schritt durch den Aufbau einer App, erkundet, wie Benutzer Apps entdecken und nutzen, und diskutiert Datenschutz- und Sicherheitsüberlegungen. Dabei beziehen wir uns auf offizielle Dokumentationen und seriösen Journalismus, um die Analyse auf glaubwürdige Quellen zu stützen.
Das Model Context Protocol ist die Grundlage des Apps SDK. Laut der Entwicklerdokumentation verwendet jede Apps SDK-Integration einen MCP-Server, um Tools bereitzustellen, die Authentifizierung zu verwalten und sowohl strukturierte Daten als auch HTML zu paketieren, die in ChatGPT gerendert werden[2]. MCP ist ein offener Standard – jeder kann einen Server in jeder Sprache implementieren und ein Modell wie GPT‑4 oder Codex anschließen. Die Open-Source-Natur bedeutet, dass es keine Anbieterbindung gibt; dieselbe App kann theoretisch auf jeder AI-Plattform laufen, die das Protokoll implementiert. Diese Offenheit fördert Beiträge der Gemeinschaft und schafft ein Ökosystem, das dem frühen Web ähnelt, wo Standards wie HTTP interoperable Websites ermöglichten.
Ein MCP-Server stellt ein oder mehrere Tools bereit. Ein Tool definiert eine Aktion, die das Modell aufrufen kann, wie „ein Kanban-Board erstellen“, „nach Häusern suchen“ oder „eine Playlist erstellen“. Jedes Tool wird durch einen Maschinennamen, einen benutzerfreundlichen Titel und ein JSON-Schema beschrieben, das dem Modell mitteilt, welche Argumente es akzeptiert. Wenn ChatGPT entscheidet, dass das Tool aufgerufen werden soll, sendet es einen strukturierten Aufruf an den Server. Der Server führt die Logik aus – sei es durch Abfragen einer API, Durchführung einer Berechnung oder Interaktion mit einer Datenbank – und gibt dann eine Tool-Antwort zurück. Diese Antwort enthält drei Felder:
Tools können auch auf Ressourcen wie HTML-Vorlagen oder Bilder verweisen, indem sie eine ui:// URL verwenden. Der Server registriert diese Ressourcen beim Start. Die Dokumentation warnt, dass Entwickler diese versionieren sollten, indem sie einen Build-Hash im Dateinamen einfügen, da Ressourcen von der OpenAI-Infrastruktur zwischengespeichert werden[5]. Andernfalls könnten Benutzer nach Bereitstellungen veraltete UIs sehen.
Die Unterscheidung zwischen structuredContent und _meta ist entscheidend. Laut den Dokumentationen ist structuredContent für das Modell sichtbar und wird verwendet, um die UI-Komponente zu befüllen; _meta ist für das Modell verborgen und kann zusätzliche Daten für die UI enthalten, wie z. B. Listen für Dropdown-Menüs[3]. Durch die Trennung von sichtbaren und verborgenen Daten können Entwickler sensible Informationen vor dem Modell schützen und dennoch umfassende Schnittstellen bereitstellen. Dieses Design fördert auch eine minimale Datenfreigabe; es wird nur das freigegeben, was zur Erledigung der Aufgabe erforderlich ist, im Einklang mit den Datenschutzgrundsätzen.
Wenn ein Benutzer eine App zum ersten Mal aufruft, muss der Server ihn möglicherweise authentifizieren. Das Apps SDK unterstützt OAuth 2.1 Flows; Entwickler geben die Bereiche an und leiten Benutzer zum Identitätsanbieter weiter. Sobald der Benutzer die Zustimmung erteilt, erhält die App ein Token und kann auf die Daten des Benutzers zugreifen. Die Aufgabe des Servers besteht darin, den Sitzungsstatus zu verwalten, oft durch das Speichern von Tokens in einer Datenbank, die dem ChatGPT-Konto des Benutzers zugeordnet ist. Dies stellt sicher, dass nachfolgende Toolaufrufe die Sitzung wiederverwenden können, ohne den Benutzer erneut zu fragen.
OpenAI betont geringste Privilegien, explizite Zustimmung der Nutzer und Verteidigung in der Tiefe[6]. Apps sollten nur die minimal erforderlichen Berechtigungen anfordern, und Nutzer müssen die Datenfreigabe ausdrücklich genehmigen; das Modell selbst sollte niemals Anmeldeinformationen erraten. Die Datenspeicherung ist begrenzt: Strukturierte Inhalte bleiben nur aktiv, solange die Eingabeaufforderung des Nutzers aktiv ist, und Protokolle werden bereinigt, bevor sie mit Entwicklern geteilt werden[6]. Der Netzwerkzugriff für App-Komponenten wird durch eine Content-Security-Policy eingeschränkt; iframes können nicht auf beliebige Browser-APIs zugreifen, und alle HTTP-Anfragen müssen vom Server und nicht vom Client ausgehen[7]. Dies verhindert Cross-Site-Scripting und die Exfiltration von Tokens.

Das Apps SDK umhüllt die MCP in idiomatischen Client-Bibliotheken (derzeit Python und TypeScript) und Gerüstwerkzeuge. Wenn du eine App erstellst, definierst du die Werkzeuge, registrierst UI-Vorlagen und implementierst die Serverlogik. Der Server kann auf deiner eigenen Infrastruktur laufen und nutzt jedes Framework (FastAPI, Express, etc.), muss jedoch die MCP-Endpunkte implementieren. OpenAI stellt Entwicklungsserver und einen MCP Inspector zur Verfügung, um Anfragen lokal zu testen.
Entwickler gestalten sowohl die Logik als auch die Benutzeroberfläche. UIs werden normalerweise in React geschrieben und in statische Ressourcen kompiliert. Sie werden innerhalb eines sandboxed iframes in ChatGPT bereitgestellt. Innerhalb dieses iframes können Entwickler auf ein globales window.openai-Objekt zugreifen, um mit dem Host zu interagieren. Laut dem Leitfaden Erstelle eine benutzerdefinierte UX bietet diese API:
Diese APIs ermöglichen es Entwicklern, reichhaltige interaktive Komponenten zu erstellen, die mit dem Modelldenken synchron bleiben. Wenn ein Benutzer beispielsweise eine Aufgabe in eine neue Spalte auf einem Kanban-Board zieht, kann die Komponente ein callTool senden, um den Server zu aktualisieren, den neuen Zustand zu speichern und dann neue strukturierte Inhalte zurückzugeben. Währenddessen sieht das Modell nur den übergeordneten Board-Zustand; die UI kümmert sich um Details wie Drag-and-Drop.
In the server code you register a tool and its template. For instance, in a TypeScript server you might write:
import { Tool, StructuredToolResponse } from "@openai/apps";
// Register UI template
server.registerResource("ui://kanban-board/abc123", buildHtml());
// Define tool schema
const createBoard: Tool = {
name: "createKanbanBoard",
description: "Create a new kanban board with given tasks and columns",
inputSchema: z.object({
title: z.string(),
columns: z.array(z.object({ name: z.string() })),
tasks: z.array(z.object({ name: z.string(), columnIndex: z.number() }))
}),
async execute(input, ctx): Promise<StructuredToolResponse> {
// compute board state
const columns = input.columns.map((col, i) => ({
id: i,
title: col.name,
taskIds: input.tasks.filter(t => t.columnIndex === i).map((_t, idx) => idx)
}));
const tasksById = input.tasks.map((task, id) => ({ id, name: task.name }));
return {
content: `Created board '${input.title}'`,
structuredContent: { title: input.title, columns },
_meta: { tasksById, uiTemplate: "ui://kanban-board/abc123" }
};
}
};
The _meta field includes tasksById for hidden metadata and uiTemplate referencing the registered HTML. When ChatGPT receives this response, it will render the template with the structured content. The window.openai.toolOutput object in the component can then read the board data and display it.
Da Ressourcen wie UI-Vorlagen auf den Servern von OpenAI zwischengespeichert werden, sollten Entwickler einen eindeutigen Hash oder eine Version in den ui:// Bezeichner einfügen. Die Dokumentation warnt davor, dass, wenn Sie eine neue Version ohne Aktualisierung des Pfads bereitstellen, Benutzer weiterhin die alte UI aufgrund des Caches sehen könnten[5]. Eine bewährte Methode ist es, die Commit-SHA oder die Build-ID in die URL einzubetten. Dies stellt sicher, dass jede Bereitstellung zu einer frischen Ressource führt.
Komponenten müssen oft den Zustand beibehalten. Ein Beispiel: Eine Playlist-App könnte es Benutzern ermöglichen, Lieder als Favoriten zu markieren; diese Favoriten sollten erhalten bleiben, auch wenn der Benutzer eine andere Frage stellt. Die Methode setWidgetState() speichert Daten außerhalb von structuredContent und bleibt über mehrere Interaktionen hinweg erhalten[8]. Das Modell sieht diesen Zustand nicht, was die Privatsphäre gewährleistet.
Manchmal muss eine App dem Benutzer eine klärende Frage stellen. Die Methode sendFollowupTurn() ermöglicht es der Komponente, eine neue Eingabeaufforderung an ChatGPT zu senden, die dann im Transkript erscheint, als hätte das Modell die Frage gestellt[8]. Dies ist nützlich für mehrstufige Workflows: Beispielsweise könnte eine Reisebuchungs-App nach „Wie viele Nächte bleiben Sie?“ fragen, nachdem der Benutzer ein Hotel ausgewählt hat.
In this section we will build a simple Task Tracker app that demonstrates the core concepts of the Apps SDK. The app will let a user create tasks and organise them into categories. We choose this example because it is generic, easy to extend and showcases structured content, metadata, custom UI and tool calls.
First install the TypeScript SDK and scaffolding tool:
npm install -g @openai/apps-generator
apps init task-tracker
cd task-tracker
npm install
This command scaffolds a project with a server, a React frontend and build scripts. The server uses Express and the @openai/apps library. Run npm run dev to start the development server; the project includes an MCP Inspector that opens in your browser and simulates ChatGPT calling your app.
Open src/server.ts and define a tool called createTasks. The tool accepts an array of tasks and returns structured content grouping them by category. It also provides a summary in the content field.
import { Tool, StructuredToolResponse } from "@openai/apps";
export const createTasks: Tool = {
name: "createTasks",
description: "Create a list of tasks grouped by category",
inputSchema: z.object({ tasks: z.array(z.object({ name: z.string(), category: z.string() })) }),
async execute({ tasks }): Promise<StructuredToolResponse> {
const categories = Array.from(new Set(tasks.map(t => t.category)));
const grouped = categories.map(category => ({
name: category,
taskIds: tasks.filter(t => t.category === category).map((_, i) => i)
}));
const tasksById = tasks.map((task, id) => ({ id, name: task.name, category: task.category }));
return {
content: `Created ${tasks.length} tasks in ${categories.length} categories`,
structuredContent: { categories: grouped },
_meta: { tasksById, uiTemplate: "ui://task-tracker/1.0.0" }
};
}
};
Register the template before using it:
server.registerResource("ui://task-tracker/1.0.0", fs.readFileSync(path.join(__dirname, "../dist/index.html"), "utf8"));
server.registerTool(createTasks);
Next open src/frontend/App.tsx. This React component will read the structuredContent and display categories and tasks. It will also allow users to mark tasks as complete and persist that state using setWidgetState.
import { useEffect, useState } from "react";
declare global {
interface Window {
openai: any;
}
}
export default function App() {
const [complete, setComplete] = useState<{ [id: string]: boolean }>(() => window.openai.widgetState?.complete || {});
const output = window.openai.toolOutput;
const tasksById = output?._meta?.tasksById || [];
const categories = output?.structuredContent?.categories || [];
// persist completion state
useEffect(() => {
window.openai.setWidgetState({ complete });
}, [complete]);
return (
<div className="task-tracker">
{categories.map((cat: any, ci: number) => (
<div key={ci} className="category">
<h3>{cat.name}</h3>
<ul>
{cat.taskIds.map((tid: number) => (
<li key={tid}>
<label>
<input type="checkbox" checked={complete[tid]} onChange={() => setComplete(prev => ({ ...prev, [tid]: !prev[tid] }))} />
{tasksById[tid].name}
</label>
</li>
))}
</ul>
</div>
))}
</div>
);
}
This component uses window.openai.toolOutput to access the structuredContent and _meta fields. It stores completion state in widgetState so that checking a box persists even when the user continues the conversation. On subsequent tool calls, the component can fetch new tasks or update existing ones. This demonstrates how to combine model reasoning with client‑side interactions.
Run npm run dev again and open the MCP Inspector. In the prompt area, type:
@task‑tracker create a list of tasks: buy milk in shopping, finish report in work, call mom in personal
The inspector will show the structured content and render the task list UI. You can check tasks off; the state persists across turns. You can then ask ChatGPT: “Remind me of my tasks later.” Because the model retains context, it can call the tool again, display the UI and summarise your progress.

ChatGPT surfaces apps when it believes they can assist the user. There are two primary discovery modes. Named mention occurs when the user explicitly mentions the app name at the beginning of a prompt; in this case, the app will be surfaced automatically[9]. For instance, “@Spotify create a workout playlist” immediately invokes the Spotify integration. The user must place the app name at the start; otherwise the assistant may treat it as part of the conversation.
In‑conversation discovery happens when the model infers that an app could help based on context. The documentation explains that the model evaluates the conversation context, prior tool results and the user’s linked apps to determine which app might be relevant[9]. For example, if you are discussing travel plans, ChatGPT might suggest the Expedia app to book flights. The algorithm uses metadata like tool descriptions and keywords to match the conversation with potential actions[10]. Developers can improve discoverability by writing action‑oriented descriptions and clear UI component names.
OpenAI plans to release an app directory where users can browse and discover new apps[10]. Each listing will include the app name, description, supported prompts and any onboarding instructions. Users can also access the launcher via the “+” button in chat; this shows a menu of available apps based on context. These entry points will help less technical users find and enable apps without memorising names.
Beim ersten Aktivieren einer App startet ChatGPT einen Onboarding-Prozess. Das Modell fordert den Benutzer auf, sein Konto zu verbinden (falls erforderlich) und erklärt, welche Daten die App benötigt. Die Entwicklerrichtlinien betonen, dass Apps die Privatsphäre der Benutzer respektieren, vorhersehbar handeln und klare Richtlinien haben müssen[11]. Benutzer müssen die Erlaubnis ausdrücklich erteilen oder verweigern; es gibt keinen stillen Datenzugriff. Sobald die Verbindung hergestellt ist, kann die App für nachfolgende Interaktionen verbunden bleiben, aber Benutzer haben immer die Möglichkeit, die Verbindung zu trennen und Berechtigungen zu widerrufen.
Die App-Entwicklerrichtlinien von OpenAI definieren mehrere Prinzipien, um sicherzustellen, dass das Ökosystem sicher und vertrauenswürdig bleibt. Apps müssen einen legitimen Dienst anbieten, über eine klare Datenschutzrichtlinie und Datenaufbewahrungspraxis verfügen und den Nutzungsrichtlinien entsprechen[11]. Sie sollten die Datenerfassung minimieren, keine sensiblen persönlichen Informationen speichern und Benutzerdaten nicht ohne Zustimmung weitergeben[12]. Apps müssen vorhersehbar agieren; sie dürfen das Modell nicht manipulieren, um schädliche oder irreführende Inhalte zu erzeugen.
Die Richtlinien betonen, dass Apps nur Daten sammeln sollten, die für ihre Funktion unbedingt erforderlich sind und keine sensiblen Daten wie Gesundheitsakten oder amtliche Ausweise anfordern oder speichern dürfen[12]. Strukturierte Inhalte, die an das Modell gesendet werden, sollten keine Geheimnisse enthalten; versteckte Metadaten sollten keine Benutzertokens oder privaten Details speichern. Entwickler müssen starke Verschlüsselung und sichere Speicherung für alle während OAuth erhaltenen Tokens implementieren. Der Server sollte strikte Grenzen zwischen Benutzersitzungen aufrechterhalten; Daten eines Benutzers dürfen niemals in den Kontext eines anderen gelangen.
Der Leitfaden für Sicherheit und Datenschutz beschreibt die Abwehrmechanismen, die in die Plattform integriert sind. Er betont das Prinzip des geringsten Privilegs und die ausdrückliche Zustimmung des Nutzers als zentrale Grundsätze[6]. Die Datenaufbewahrung ist begrenzt; Protokolle, die Entwicklern zugänglich sind, werden redigiert, um persönlich identifizierbare Informationen zu entfernen, und strukturierte Inhalte werden nur so lange aufbewahrt, wie es die Eingabeaufforderung erfordert[6]. Der Netzwerkzugriff aus dem iframe heraus wird durch die Content-Security-Richtlinie eingeschränkt; externe Abrufe müssen über den Server erfolgen, um unbefugte Cross-Origin-Abfragen zu verhindern[7]. Die Authentifizierung erfolgt über branchenübliche OAuth-Flows mit kurzlebigen Tokens. Entwickler sind verpflichtet, Sicherheitsüberprüfungen, Kanäle zur Fehlermeldung und Überwachungen von Vorfällen zu implementieren, um die Betriebsbereitschaft aufrechtzuerhalten[7].
Apps müssen für ein breites Publikum geeignet sein. Die Richtlinien verbieten Apps, die Langform-Inhalte, komplexe Automatisierung oder Werbung bereitstellen[13]. Beispielsweise sollte eine App nicht versuchen, ein 30-minütiges Video bereitzustellen oder ein komplettes soziales Netzwerk innerhalb von ChatGPT zu replizieren. Die Plattform fördert kurze Interaktionen, die den Gesprächsfluss ergänzen. Verstöße können zur Ablehnung oder Entfernung führen.
Durch die Öffnung von ChatGPT für Drittanbieter-Apps positioniert sich OpenAI als „Intentionsschicht“ zwischen Nutzern und Diensten. Entwickler können nun Millionen von Nutzern über die Chat-Oberfläche erreichen, ohne separate Web- oder Mobile-Apps erstellen zu müssen. Apps haben das Potenzial, Hürden zu senken: Anstatt eine App herunterzuladen oder eine Website zu besuchen, erwähnen Benutzer einfach den Service im Gespräch. Dies könnte den Zugang zu Tools demokratisieren und das Spielfeld für kleine Entwickler ebnen.
Frühe Partnerschaften zeigen die Möglichkeiten: Nutzer können Coursera-Vorlesungen ansehen und gleichzeitig ChatGPT-Fragen stellen; Poster in Canva gestalten; Reisemöglichkeiten bei Expedia durchsuchen oder Immobilienangebote bei Zillow ansehen; Spotify-Playlists erstellen; oder Ideen mit Figma skizzieren[14][13]. Da die Apps im Chat laufen, kann das Modell zusammenfassen, analysieren und Empfehlungen generieren, wodurch statische Inhalte in interaktive Lektionen verwandelt werden. Die Apps bieten auch mehrere Anzeigemodi—Inline-Karten, Vollbild oder Bild-in-Bild—und bieten Flexibilität für verschiedene Aufgaben[15].
Die Fähigkeit, Apps zu nutzen, ohne zwischen Kontexten zu wechseln, könnte die Art und Weise, wie Menschen mit Diensten interagieren, verändern. ChatGPT wird nicht nur zu einem Chatbot, sondern zu einem universellen Betriebssystem für Intentionen. Wie Casey Newton feststellte, gehen wir von der Nutzung einzelner Apps dazu über, einfach zu äußern, was wir wollen[16]. Einige Analysten vergleichen diesen Wandel mit der Einführung des App Stores oder des Browsers: eine einzige Plattform, die Funktionalität und Wettbewerb bündelt.
Diese Transformation wirft jedoch Fragen zu Kontrolle und Macht auf. Wenn ChatGPT bestimmt, welche Apps angezeigt werden, könnte es zum Gatekeeper werden. Newton warnt, dass ein „AI-Graph“, der auf Benutzerpräferenzen basiert, ernsthaftere Datenschutzrisiken schaffen könnte als soziale Netzwerke[16]. Wirtschaftliche Anreize könnten zu einer Bezahlplatzierung oder -bewertung von Apps führen. Entwickler könnten sich unter Druck gesetzt fühlen, für ChatGPT zu gestalten, anstatt ihre Beziehung zu den Nutzern selbst zu pflegen. Es ist entscheidend, dass die Plattform transparent und fair bleibt, um Vertrauen zu erhalten.
Da Apps auf persönliche Daten wie Standort, Kontakte und Zahlungsmethoden zugreifen können, könnten Regulierungsbehörden prüfen, wie Daten durch ChatGPT fließen. Entwickler müssen Datenschutzgesetze wie die DSGVO einhalten, obwohl die Plattform in der Europäischen Union noch nicht verfügbar ist[17]. OpenAI hat versprochen, detailliertere Datenschutzkontrollen und Monetarisierungsoptionen anzubieten, einschließlich eines agentischen Handelsprotokolls, das einen sofortigen Checkout im Chat ermöglichen wird[18]. Der Erfolg dieses Ökosystems wird von robuster Sicherheit, klarer Benutzerzustimmung und fairen Wirtschaftsmodellen abhängen.
Das Apps SDK befindet sich noch in der Vorschau, und viele Funktionen müssen noch ausgearbeitet werden. Der Entwickler-Fahrplan umfasst:
Die Einführung von Apps in ChatGPT und dem MCP-basierten Apps SDK markiert einen bedeutenden Wandel in der Art und Weise, wie wir mit Software interagieren. Durch die direkte Einbindung von Drittanbieteranwendungen in die Chat-Oberfläche hat OpenAI eine neue Plattform geschaffen, die natürliche Sprache, Logik und interaktive Benutzeroberflächen vereint. Das Model Context Protocol bietet eine offene, standardisierte Methode für Modelle, um Werkzeuge aufzurufen und Komponenten darzustellen; das Apps SDK vereinfacht die Entwicklung, indem es die Serverkommunikation, die UI-Integration und das Zustandsmanagement übernimmt. Schritt-für-Schritt-Beispiele wie der Task Tracker zeigen, wie einfach es ist, eine nützliche App zu erstellen, während strenge Datenbarrieren und Datenschutz eingehalten werden.
Dennoch bringt diese Innovation Verantwortlichkeiten mit sich. Entwickler müssen Richtlinien befolgen, die den Schutz der Privatsphäre, Sicherheit und Fairness der Nutzer priorisieren[11][12]. Sicherheitsmechanismen wie das Prinzip der minimalen Rechte und die ausdrückliche Zustimmung schützen die Nutzer[6]. Gleichzeitig warnen Branchenbeobachter, dass die Plattform neue Formen der Zugangsbeschränkung und Datenschutzrisiken schaffen könnte[16]. Während sich das Ökosystem entwickelt, werden Transparenz, offene Standards und die Einbindung der Gemeinschaft darüber entscheiden, ob die App-Plattform von ChatGPT eine transformative und vertrauenswürdige Ebene für alltägliche Aufgaben wird.
[1] Aktuell im KI-Wettrüsten: ChatGPT ermöglicht jetzt Nutzern, sich in Chats mit Spotify und Zillow zu verbinden
[2] [3] [4] [5] Richte deinen Server ein
https://developers.openai.com/apps-sdk/build/mcp-server
[6] [7] Sicherheit & Datenschutz
https://developers.openai.com/apps-sdk/guides/security-privacy
[8] Erstelle eine benutzerdefinierte UX
https://developers.openai.com/apps-sdk/build/custom-ux
https://developers.openai.com/apps-sdk/concepts/user-interaction
[11] [12] Leitlinien für App-Entwickler
https://developers.openai.com/apps-sdk/app-developer-guidelines/
[13] ChatGPT-Apps sind live: Hier sind die ersten, die Sie ausprobieren können | The Verge
https://www.theverge.com/news/793081/chagpt-apps-sdk-spotify-zillow-openai
[14] OpenAI DevDay 2025: ChatGPT erhält Apps, AgentKit für Entwickler und günstigere GPT-Modelle
[15] OpenAI kündigt Apps SDK an, das es ChatGPT ermöglicht, Drittanbieter-Apps wie Zillow, Canva, Spotify zu starten und auszuführen | VentureBeat
https://venturebeat.com/ai/openai-announces-apps-sdk-allowing-chatgpt-to-launch-and-run-third-party
[16] Neue Plattform, bekannte Risiken: Zillow und Expedia setzen auf den Rollout der ChatGPT-Apps von OpenAI – GeekWire
[17] OpenAI DevDay: ChatGPT-Apps, AgentKit und GA-Veröffentlichung von Codex - SD Times
https://sdtimes.com/ai/openai-devday-chatgpt-apps-agentkit-and-ga-release-of-codex/
[18] OpenAI möchte ChatGPT zu einem universellen App-Frontend machen - Ars Technica
https://arstechnica.com/ai/2025/10/openai-wants-to-make-chatgpt-into-a-universal-app-frontend/