💡 摘要
Skybridge是一个全栈TypeScript框架,用于构建具有类型安全性和React支持的AI嵌入式小部件。
🎯 适合人群
🤖 AI 吐槽: “看起来很能打,但别让配置把人劝退。”
风险:Medium。建议检查:是否执行 shell/命令行指令;是否发起外网请求(SSRF/数据外发);文件读写范围与路径穿越风险;依赖锁定与供应链风险。以最小权限运行,并在生产环境启用前审计代码与依赖。
Skybridge
Build ChatGPT & MCP Apps. The Modern TypeScript Way.
The fullstack TypeScript framework for AI-embedded widgets. Type-safe. React-powered. Platform-agnostic.
Documentation · Quick Start · Showcase
✨ Why Skybridge?
ChatGPT Apps and MCP Apps let you embed rich, interactive UIs directly in AI conversations. But the raw SDKs are low-level—no hooks, no type safety, no dev tools, and no HMR.
Skybridge fixes that.
| | |
|:--|:--|
| 👨💻 Full Dev Environment — HMR, debug traces, and local devtools. No more refresh loops. | ✅ End-to-End Type Safety — tRPC-style inference from server to widget. Autocomplete everywhere. |
| 🔄 Widget-to-Model Sync — Keep the model aware of UI state with data-llm. Dual surfaces, one source of truth. | ⚒️ React Query-style Hooks — isPending, isError, callbacks. State management you already know. |
| 🌐 Platform Agnostic — Write once, run anywhere. Works with ChatGPT (Apps SDK) and MCP-compatible clients. | 📦 Showcase Examples — Production-ready examples to learn from and build upon. |
🚀 Get Started
Create a new app:
npm create skybridge@latest
Or add to an existing project:
npm i skybridge yarn add skybridge pnpm add skybridge bun add skybridge deno add skybridge
👉 Read the Docs 👈
📦 Architecture
Skybridge is a fullstack framework with unified server and client modules:
skybridge/server— Define tools and widgets with full type inference. Extends the MCP SDK.skybridge/web— React hooks that consume your server types. Works with Apps SDK (ChatGPT) and MCP Apps.- Dev Environment — Vite plugin with HMR, DevTools emulator, and optimized builds.
Server
import { McpServer } from "skybridge/server"; server.registerWidget("flights", {}, { inputSchema: { destination: z.string() }, }, async ({ destination }) => { const flights = await searchFlights(destination); return { structuredContent: { flights } }; });
Widget
import { useToolInfo } from "skybridge/web"; function FlightsWidget() { const { output } = useToolInfo(); return output.structuredContent.flights.map(flight => <FlightCard key={flight.id} flight={flight} /> ); }
🎯 Features at a Glance
- Live Reload — Vite HMR. See changes instantly without reinstalling.
- Typed Hooks — Full autocomplete for tools, inputs, outputs.
- Widget → Tool Calls — Trigger server actions from UI.
- Dual Surface Sync — Keep model aware of what users see with
data-llm. - React Query-style API —
isPending,isError, callbacks. - Platform Agnostic — Works with ChatGPT (Apps SDK) and MCP Apps clients (Goose, VSCode, etc.).
- MCP Compatible — Extends the official SDK. Works with any MCP client.
📖 Showcase
Explore production-ready examples:
| Example | Description | Demo | Code | |------------------------|----------------------------------------------------------------------------------|-----------------------------------------------------|-------------------------------------------------------------------------------------| | Capitals Explorer | Interactive world map with geolocation and Wikipedia integration | Try Demo | View Code | | Ecommerce Carousel | Product carousel with cart, localization, and modals | Try Demo | View Code | | Everything | Comprehensive playground showcasing all hooks and features | Try Demo | View Code | | Productivity | Data visualization dashboard demonstrating Skybridge capabilities for MCP Apps | Try Demo | View Code |
See all examples in the Showcase or browse the examples/ directory.
See CONTRIBUTING.md for setup instructions
MIT License · Made with ❤️ by Alpic
优点
- 类型安全的开发环境
- 丰富的交互式UI功能
- 跨平台兼容性
- 全面的文档和示例
缺点
- 初学者的学习曲线较陡
- 对于简单项目可能过于复杂
- 依赖于TypeScript和React知识
- 与更成熟的框架相比,社区较小
相关技能
免责声明:本内容来源于 GitHub 开源项目,仅供展示和评分分析使用。
版权归原作者所有 alpic-ai.
