Overture
官方面向AI编码代理的可视化方案审批。将代理的方案以交互式图表呈现,可附加上下文、选择方案,并在实际编写代码前进行审批。
文档
先看计划,再写代码。批准它,然后看着它执行。
问题 • 解决方案 • 安装 • 功能特性 • 市场 • 配置 • 讨论
https://github.com/user-attachments/assets/eeb9c4cb-c80d-42da-bf63-c0c4ecb1e5d6
🔥 问题所在
如今,每一个 AI 编程智能体——Cursor、Claude Code、Cline、Copilot——都以相同的方式工作:
当前的情况
|
文本计划无济于事有些智能体会在聊天中以文本形式显示计划。但文本无法展示:
|
✨ 解决方案
Overture 拦截你的 AI 智能体的规划阶段,并将其渲染为一个交互式可视化流程图——在任何代码被编写之前。
在你批准计划之前,智能体不会编写任何一行代码。
|
可视化计划 具有平移、缩放和点击导航功能的交互式流程图 |
附加上下文 每个步骤的文件、API 密钥、指令 |
选择方法 比较不同路径的优缺点 |
实时执行 观察节点随着进度亮起 |
MCP 市场 浏览并为每个节点附加工具 |
🚀 安装
Overture 是一个 MCP 服务器,可与任何兼容 MCP 的 AI 编程智能体配合使用。一条命令即可安装。
Claude Code
claude mcp add overture-mcp -- npx overture-mcp
Cursor
添加到 ~/.cursor/mcp.json:
{
"mcpServers": {
"overture": {
"command": "npx",
"args": ["overture-mcp"]
}
}
}
更多智能体 (Cline, Copilot, Sixth AI)
Cline (VS Code 扩展)
打开 VS Code 设置 → 搜索 "Cline MCP" → 添加:
{
"mcpServers": {
"overture": {
"command": "npx",
"args": ["overture-mcp"]
}
}
}
GitHub Copilot
在项目根目录创建 .vscode/mcp.json:
{
"servers": {
"overture": {
"command": "npx",
"args": ["overture-mcp"]
}
}
}
注意: GitHub Copilot MCP 需要 VS Code 1.99+,并使用
servers而不是mcpServers。
Sixth AI (VS Code 扩展)
添加到你的 Sixth AI MCP 设置文件中:
| 平台 | 路径 |
|---|---|
| macOS | ~/Library/Application Support/Code/User/globalStorage/sixth.sixth-ai/settings/sixth-mcp-settings.json |
| Windows | %APPDATA%\Code\User\globalStorage\sixth.sixth-ai\settings\sixth-mcp-settings.json |
| Linux | ~/.config/Code/User/globalStorage/sixth.sixth-ai/settings/sixth-mcp-settings.json |
{
"mcpServers": {
"overture": {
"command": "npx",
"args": ["overture-mcp"],
"disabled": false
}
}
}
全局安装(可选)
npm install -g overture-mcp
验证其是否工作
给你的智能体任何任务。Overture 会自动在 http://localhost:3031 打开,并显示你的计划等待批准。
🎯 工作原理
流程:
| 步骤 | 发生什么 |
|---|---|
| 1. 提示 | 你给智能体一个任务:"构建一个带身份验证的 REST API" |
| 2. 计划 | 智能体生成一个包含步骤、分支和需求的详细计划 |
| 3. 可视化 | Overture 将计划渲染为交互式图表 |
| 4. 丰富 | 你点击节点,附加文件,选择分支,填写 API 密钥 |
| 5. 批准 | 你点击"批准并执行"(或按 Enter 键) |
| 6. 执行 | 实时观察节点跳动、完成或失败 |
| 7. 控制 | 暂停(空格键)、恢复、重新运行节点,或在执行过程中修改计划 |
🛠 功能特性
交互式计划画布
| 功能 | 描述 |
|---|---|
| React Flow 画布 | 具有流畅动画的完整平移、缩放、拖拽功能 |
| 流式解析器 | 计划节点在智能体生成时实时出现 |
| Dagre 自动布局 | 智能的节点自动定位 |
| 可视化状态 | 待处理(灰色)→ 进行中(黄色脉冲)→ 已完成(绿色)/ 失败(红色) |
| 下一个节点指示器 | 蓝色脉冲显示下一个要执行的节点 |
| 复杂性徽章 | 低(绿色)、中(黄色)、高(红色)一目了然 |
| 发光效果 | 阴影发光突出显示活动和即将到来的节点 |
| 可插入边 | 悬停在边上以在计划中插入新节点 |
节点详情面板
点击任何节点以显示其完整详情:
| 信息 | 你看到的内容 |
|---|---|
| 标题和描述 | 此步骤执行操作的完整上下文 |
| 复杂性级别 | 低 / 中 / 高,带有可视化指示器 |
| 预期输出 | 该步骤应产生什么 |
| 风险和边缘情况 | 需要注意的潜在问题 |
| 优缺点 | 对于分支选项,比较权衡 |
动态字段(用户输入)
节点可以在执行前请求你的输入:
| 字段类型 | 用例 |
|---|---|
| 字符串 | 项目名称、URL、自定义值 |
| 数字 | 端口号、限制、计数 |
| 布尔值 | 选项的是/否切换 |
| 选择 | 带有预定义选项的下拉菜单 |
| 密钥 | API 密钥、令牌(掩码输入) |
| 文件 | 附加上下文的文件路径 |
每个字段包括:
- 必需/可选指示器
- 默认值
- 帮助文本和描述
- 设置说明("如何获取 API 密钥")
文件附件
将上下文文件附加到特定节点:
- 自动类型检测——图像、代码、文档或其他
- 每种文件类型的可视化图标
- 描述——添加关于此文件为何重要的注释
- 删除——移除不需要的附件
元指令
向任何节点添加自定义 LLM 指令:
"在这里要特别注意错误处理" "使用 src/auth.ts 中现有的身份验证模式" "确保为边缘情况添加测试"
指令会在该节点执行之前发送给智能体。
分支检测与选择
当智能体提出多种方法时:
| 功能 | 描述 |
|---|---|
| 自动检测 | 从图结构检测分支(无需特殊标记) |
| 分支点 | 具有多个输出边的节点成为决策点 |
| 选择模态框 | 并排比较优缺点 |
| 复杂性比较 | 查看每个选项的难度级别 |
| 可视化指示器 | 选定的分支在画布上高亮显示 |
| 跳过未选中的 | 仅执行你选择的路径 |
需求清单
在你批准之前,Overture 会显示需要什么:
- 空的必填字段——每个节点计数
- 分支选择——哪些决策待定
- 进度指示器——可视化完成跟踪
- 可展开项——点击查看详情
- 颜色编码——绿色(已完成)/ 橙色(待处理)
在所有需求都满足之前,"批准"按钮保持禁用状态。
执行控制
| 控制 | 如何操作 |
|---|---|
| 批准 | 点击按钮或按 Enter |
| 暂停 | 在执行过程中按 Spacebar |
| 恢复 | 再次按 Spacebar |
| 重新运行节点 | 点击失败的节点 → "重新运行" |
| 从此处重新运行 | 从任何节点重新执行到结束 |
批准按钮很智能:
- 🟢 "批准并执行"——计划就绪,需求已满足
- 🟠 "完成需求"——条件未满足
- 🔵 "执行中..."——正在运行,带有旋转器
- 🟢 "已完成"——全部完成
- 🔴 "失败"——发生错误
结构化输出
每个节点执行后,查看丰富的结构化输出:
| 类别 | 显示内容 |
|---|---|
| 概述 | 已完成内容的摘要 |
| 更改的文件 | 路径、添加/删除的行数、差异 |
| 创建的文件 | 带有行数的新文件 |
| 删除的文件 | 已移除的文件 |
| 安装的包 | 带有版本的 npm 包 |
| MCP 服务器设置 | 安装状态(已安装/已配置/失败) |
| 网络搜索 | 执行的查询、使用的结果 |
| 工具调用 | 使用了哪些工具以及使用频率 |
| 预览 URL | 指向已部署站点或预览的链接 |
| 注释 | 信息、警告、错误 |
每个类别都是可展开的——深入查看而不会造成视觉过载。
输出模态框
点击任何已完成的节点以查看完整输出:
- 可滚动,适用于长输出
- 语法高亮的代码片段
- 使用 Escape 键关闭或点击外部
🏪 MCP 市场
直接从 Overture UI 浏览和附加 MCP 服务器。
| 功能 | 描述 |
|---|---|
| 内置市场 | 搜索和发现 MCP 服务器 |
| 服务器详情 | 描述、作者、GitHub 链接、星标 |
| 按类别浏览 | 按用例筛选 |
| 每个节点附加 | 将特定工具附加到特定步骤 |
| 设置说明 | 查看如何配置每个服务器 |
| 推荐服务器 | 针对常见任务的精选列表 |
当你将 MCP 服务器附加到节点时,智能体仅在该步骤获得对这些工具的访问权限。
📂 多项目支持
同时处理多个项目:
| 功能 | 描述 |
|---|---|
| 标签页导航 | 在项目之间即时切换 |
| 自动注册 | 项目在首次智能体联系时注册 |
| 隔离状态 | 每个项目都有独立的计划、节点、配置 |
| 未读徽章 | 了解其他项目何时有更新 |
| 项目上下文 | 查看项目名称、路径和智能体类型 |
单个项目?标签栏会自动隐藏以获得更简洁的 UI。
📜 计划历史与持久化
永不丢失你的工作:
| 功能 | 描述 |
|---|---|
| 自动保存 | 每 3 秒保存一次计划 |
| 本地存储 | 存储在 ~/.overture/history.json 中 |
| 历史浏览器 | 滑入式面板,包含所有过去的计划 |
| 状态图标 | 已完成、失败、执行中、已暂停 |
| 进度条 | 可视化完成百分比 |
| 一键恢复 | 加载并继续任何过去的计划 |
| 完整上下文 | 保留所有字段值、分支选择、附件 |
恢复信息
恢复时,你将获得完整的上下文:
- 当前节点 — 执行停止的位置
- 已完成节点 — 及其输出
- 待处理节点 — 剩余要执行的内容
- 失败节点 — 及其错误信息
- 所有配置 — 字段值、分支、附件
- 时间戳 — 创建时间、暂停时间
✏️ 动态计划修改
即使在执行过程中也可以修改计划:
| 操作 | 描述 |
|---|---|
| 插入节点 | 在执行过程中添加新步骤 |
| 删除节点 | 删除步骤(边会自动重连) |
| 替换内容 | 就地更新节点标题/描述 |
| 批量操作 | 在单个请求中进行多项更改 |
计划差异视图
当计划发生变化时,可以准确看到不同之处:
- 新增节点 — 绿色高亮
- 删除节点 — 红色高亮
- 修改节点 — 黄色,并显示前后对比
- 边变更 — 新增/删除的连接
🔌 MCP 工具(面向代理开发者)
Overture 公开了 11 个 MCP 工具供代理交互:
| 工具 | 用途 |
|---|---|
submit_plan | 以 XML 格式提交完整计划 |
get_approval | 等待用户批准(阻塞直到批准) |
update_node_status | 在执行过程中更新节点状态和输出 |
plan_completed | 将计划标记为成功完成 |
plan_failed | 将计划标记为失败并附带错误信息 |
check_rerun | 检查用户是否请求重新运行节点 |
check_pause | 检查用户是否暂停了执行 |
get_resume_info | 获取用于恢复暂停计划的完整上下文 |
request_plan_update | 请求增量计划修改 |
create_new_plan | 发出创建新计划的信号 |
get_usage_instructions | 获取代理特定的指令 |
🔄 实时 WebSocket 通信
19 种服务器到客户端的消息类型:
connected • plan_started • node_added • edge_added • plan_ready • plan_approved • node_status_updated • plan_completed • plan_failed • plan_paused • plan_resumed • nodes_inserted • node_removed • project_registered • projects_list • history_entries • plan_loaded • resume_plan_info • plan_updated
16 种客户端到服务器的消息类型:
approve_plan • cancel_plan • rerun_request • pause_execution • resume_execution • insert_nodes • remove_node • register_project • subscribe_project • unsubscribe_project • get_history • load_plan • get_resume_info • save_plan • request_plan_update • create_new_plan
中继模式
当 WebSocket 端口已被占用时,Overture 会自动作为中继客户端运行,通过现有服务器转发消息。多个代理实例可以共享一个用户界面。
⚙️ 配置
| 变量 | 默认值 | 描述 |
|---|---|---|
OVERTURE_HTTP_PORT | 3031 | Web 用户界面的端口 |
OVERTURE_WS_PORT | 3030 | WebSocket 的端口 |
OVERTURE_AUTO_OPEN | true | 启动时自动打开浏览器 |
设置环境变量
Claude Code
claude mcp add overture-mcp -e OVERTURE_HTTP_PORT=4000 -e OVERTURE_AUTO_OPEN=false -- npx overture-mcp
Cursor / Cline / Sixth AI
{
"mcpServers": {
"overture": {
"command": "npx",
"args": ["overture-mcp"],
"env": {
"OVERTURE_HTTP_PORT": "4000",
"OVERTURE_WS_PORT": "4001",
"OVERTURE_AUTO_OPEN": "false"
}
}
}
}
GitHub Copilot
{
"servers": {
"overture": {
"command": "npx",
"args": ["overture-mcp"],
"env": {
"OVERTURE_HTTP_PORT": "4000",
"OVERTURE_WS_PORT": "4001",
"OVERTURE_AUTO_OPEN": "false"
}
}
}
}
⌨️ 键盘快捷键
| 按键 | 操作 |
|---|---|
Enter | 批准计划(准备就绪时) |
Space | 暂停 / 恢复执行 |
Escape | 取消选择当前节点 / 关闭模态框 |
🤝 支持的代理
| 代理 | 状态 | 备注 |
|---|---|---|
| Claude Code | ✅ 完全支持 | 原生 MCP 支持 |
| Cursor | ✅ 完全支持 | 通过 mcp.json 配置 |
| Cline | ✅ 完全支持 | 通过 VS Code 设置 |
| GitHub Copilot | ✅ 完全支持 | 需要 VS Code 1.99+ |
| Sixth AI | ✅ 完全支持 | 内置,零配置 |
每个代理都有量身定制的提示词,以实现最佳的计划生成。
💪 为什么选择 Overture?
对于用户
|
对于 AI 编程
|
🧑💻 开发
# Clone the repo
git clone https://github.com/SixHq/Overture.git
cd Overture
# Install dependencies
npm install
# Build all packages
npm run build
# Start MCP server (in one terminal)
cd packages/mcp-server && npm start
# Start UI dev server (in another terminal)
cd packages/ui && npm run dev
技术栈
| 层级 | 技术 |
|---|---|
| MCP 服务器 | Node.js、TypeScript、Express、WebSocket (ws)、SAX XML 解析器 |
| 用户界面 | React 18、React Flow、Zustand、Framer Motion、Tailwind CSS、Vite |
| 布局 | Dagre(自动图形定位) |
🤝 贡献
Overture 是开源的,我们欢迎贡献!
- 🐛 报告错误 在 GitHub Issues
- 💡 建议功能 在 GitHub Discussions
- 📖 改进文档 — 欢迎提交 PR
- 🔧 贡献代码 — 参见 CONTRIBUTING.md
所有贡献,无论大小,我们都深表感谢。
📄 许可证
MIT 许可证 - 详情请参阅 LICENSE。
由 Sixth 构建
为了获得最佳体验,请尝试 Sixth for VS Code
Overture 是内置的,无需任何配置。
停止盲目飞行。查看计划。批准它。自信地执行。