
Responses API Starter App
https://github.com/openai/openai-responses-starter-app- Category
- AI Agents
- Rank
- No. 855Tools index
- Pricing
- Open Source
- Type
- APP
- Builder
- openai
- GitHub
- 865 stars
- Date
About
Reference app for the OpenAI Responses API. Shows streaming, tool calls, and conversation state in a small TypeScript codebase.
What it does
A browser-based assistant workshop where developers can switch capabilities on and test them interactively. It supports web and file retrieval, Python execution, custom actions, public MCP servers, annotations, and Google Calendar or Gmail access through OAuth.
Why it's ranked here
This is a useful teaching scaffold because it connects configuration, streamed events, tool execution, and visible chat output in one runnable application. Its breadth is unusually practical for experimentation, though its demo-grade session storage keeps it from being a production foundation without further engineering.
What's good
The interface exposes tool configuration instead of hiding it behind fixed server settings. File uploads feed vector-store search, streamed tool arguments appear in chat, and completed custom actions trigger another assistant turn. The Google example also demonstrates token refresh and connector authorization, giving developers a concrete pattern to adapt.
Tradeoffs
OAuth tokens also live in an in-memory session map, which the source explicitly marks for replacement in production. Authenticated MCP servers require custom logic. Computer use and image generation are absent. Connector approvals default to never, and token refresh failures fall through without surfacing an error.
How to use it well
Use it to learn Responses API event handling, prototype assistant tools, or copy focused integration patterns into a larger application. It best suits TypeScript developers comfortable with Next.js and API credentials. Treat it as an experimental scaffold, not a complete production session, authentication, or persistence layer.
Technical notes+
package.json defines a private Next.js application with development, build, start, and lint scripts. lib/assistant.ts consumes server-sent event frames, updates chat and conversation stores, parses partial function arguments, executes mapped functions, and starts another turn after recording output. lib/tools/tools.ts assembles enabled web search, file search, code interpreter, function, MCP, and Google connector definitions. lib/connectors-auth.ts discovers Google OAuth metadata, reads token cookies, refreshes near expiry, and persists refreshed values. lib/session.ts backs session tokens with a process-local Map, while lib/tools/connectors.ts sets both Google connectors to require_approval: "never".
Observed
- License
- MIT
- Primary language
- TypeScript and TSX
- Packaging
- Private npm package installed with npm install
- Interface
- Next.js browser application served locally on port 3000
- Framework
- Next.js 15 with React 18
- Tool surfaces
- Built-in tools, custom functions, public MCP servers, and Google first-party connectors
Read from README.md, package.json, lib/utils.ts, lib/session.ts, lib/assistant.ts, lib/connectors-auth.ts, lib/tools/tools.ts, lib/tools/connectors.ts, lib/tools/tools-handling.ts, next.config.mjs, eslint.config.mjs, postcss.config.mjs, tailwind.config.ts, app/page.tsx, app/layout.tsx.
What it can do
Stream API responses in real-time
API requests to OpenAI → Live streaming text responses
Execute tool calls through API
Function definitions and parameters → Tool execution results
Maintain conversation state across interactions
Multiple chat messages and responses → Persistent conversation context
Demonstrate TypeScript integration with OpenAI API
TypeScript code and API configurations → Working API implementation examples
Handle asynchronous API communication
OpenAI API requests → Processed API responses with proper async handling
Tags
Tech Stack
Comments (0)
No comments yet
Editorially curated, with community endorsements as a secondary signal. Corrections welcome.