The Challenge
When building Apps the traditional way, your development loop looks like:- Make a code change
- Restart your server
- Tunnel with ngrok (if not already running)
- Go to Claude or ChatGPT dev mode
- Trigger the tool manually by chatting
- Wait for the widget to load
- See if your change worked
- Repeat
The Skybridge Approach
With Skybridge, the loop becomes:- Make a code change
- See it instantly in your browser
DevTools
When you runpnpm dev, Skybridge starts:
- Your MCP server at
http://localhost:3000/mcp - DevTools UI at
http://localhost:3000/
- Tool listing - See all registered tools and widgets
- Input forms - Test tools with custom inputs
- Widget preview - Render widgets in a mocked Apps SDK (ChatGPT) environment
MCP Apps and DevToolsDevTools uses the Apps SDK runtime (mocked
window.openai). MCP Apps widget rendering is not yet supported in DevTools. For MCP Apps, use DevTools for tool development and UI logic; validate widgets in a real client (e.g. Goose, Claude) before shipping. See DevTools Guide and Test Your App.Full DevTools GuideFor comprehensive documentation on all DevTools features, including widget inspection, MCP client logs, and custom integration, see the DevTools Guide.

HMR with Vite Plugin
Skybridge includes a Vite plugin that enables Hot Module Replacement for widgets:- Auto-discovers widgets in
src/widgets/(both flat files and directories) - Enables HMR so changes appear instantly without page reload
- Transforms
data-llmattributes at build time - Configures build output with proper asset paths
Starter template requiredThese features require the Skybridge starter template structure (
pnpm create skybridge). If you’re adding Skybridge to an existing app, you’ll need to configure the Vite plugin manually.Automatic Environment Detection
Your widget code works identically in ChatGPT, MCP Apps clients like Claude, and local DevTools. Skybridge detects the environment and uses the appropriate communication layer:| Environment | Communication |
|---|---|
| ChatGPT | window.openai API |
| MCP Apps (Goose, Claude, …) | MCP protocol via postMessage |
| DevTools | Mocked Apps SDK (postMessage) |
| You don’t need to know which is active—just use the hooks. |
When to Use What
DevTools (90% of development time)- Rapid UI iteration
- Testing tool inputs/outputs
- Debugging state management
- Day-to-day development
- Final integration testing
- Real LLM conversation flow
- Verifying
data-llmcontext - Pre-ship validation
DevTools Features
The DevTools UI includes:Tool Inspector
See all registered tools and their schemas. Click to fill input forms automatically.Widget Preview
Renders your widget in an iframe with mockedwindow.openai. Supports:
- Theme switching (light/dark)
- Display mode switching (pip/inline/fullscreen)
- Locale changing
Response Inspector
View the full tool response includingcontent, structuredContent, and _meta.
Related
- DevTools Guide - Complete DevTools documentation and features
- Test Your App - Full testing workflow including ChatGPT and MCP Apps clients
- useLayout API - Access theme and layout info
- useCallTool API - Make tool calls from widgets