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 自動佈局 | 智慧型自動節點定位 |
| 視覺化狀態 | 待處理 (灰色) → 執行中 (跳動黃色) → 已完成 (綠色) / 失敗 (紅色) |
| 下一個節點指示器 | 藍色跳動顯示下一個要執行的節點 |
| 複雜度標記 | 低 (綠色)、中 (黃色)、高 (紅色) 一目瞭然 |
| 發光效果 | 陰影發光凸顯執行中和即將執行的節點 |
| 可插入的邊 | 將滑鼠懸停在邊上即可在計畫中插入新節點 |
節點詳細資訊面板
點擊任何節點以顯示其完整詳細資訊:
| 資訊 | 你看到的內容 |
|---|---|
| 標題與說明 | 此步驟執行內容的完整脈絡 |
| 複雜度等級 | 低 / 中 / 高,附帶視覺指示器 |
| 預期輸出 | 此步驟應產生的內容 |
| 風險與邊緣案例 | 需要注意的潛在問題 |
| 優缺點 | 針對分支選項,比較取捨 |
動態欄位 (使用者輸入)
節點可以在執行前向你請求輸入:
| 欄位類型 | 使用案例 |
|---|---|
| 字串 | 專案名稱、網址、自訂值 |
| 數字 | 連接埠號碼、限制、計數 |
| 布林值 | 選項的是/否切換 |
| 選擇 | 帶有預定義選項的下拉選單 |
| 密鑰 | API 金鑰、權杖 (遮罩輸入) |
| 檔案 | 附加脈絡的檔案路徑 |
每個欄位包含:
- 必要/選用指示器
- 預設值
- 說明文字與描述
- 設定指示 (「如何取得 API 金鑰」)
檔案附件
將脈絡檔案附加到特定節點:
- 自動類型偵測 — 圖片、程式碼、文件或其他
- 每種檔案類型的視覺圖示
- 描述 — 新增關於此檔案為何重要的註記
- 刪除 — 移除不需要的附件
中繼指令
將自訂的 LLM 指令新增到任何節點:
「在這裡特別注意錯誤處理」 「使用 src/auth.ts 中現有的驗證模式」 「務必為邊緣案例新增測試」
指令會在該節點執行前傳送給代理。
分支偵測與選擇
當代理提出多種方法時:
| 功能 | 說明 |
|---|---|
| 自動偵測 | 從圖表結構偵測分支 (無需特殊標記) |
| 分支點 | 具有多個輸出邊的節點成為決策點 |
| 選擇模式 | 並排比較優缺點 |
| 複雜度比較 | 查看每個選項的難度等級 |
| 視覺指示器 | 選定的分支在畫布上反白顯示 |
| 跳過未選取的 | 只執行你選擇的路徑 |
需求檢查清單
在你核准之前,Overture 會顯示需要什麼:
- 空的必要欄位 — 每個節點的計數
- 分支選擇 — 哪些決策待處理
- 進度指示器 — 視覺化完成追蹤
- 可展開的項目 — 點擊查看詳細資訊
- 顏色編碼 — 綠色 (已完成) / 橙色 (待處理)
在所有需求都滿足之前,核准按鈕會保持停用狀態。
執行控制項
| 控制項 | 如何操作 |
|---|---|
| 核准 | 點擊按鈕或按下 Enter |
| 暫停 | 在執行中按下 Spacebar |
| 繼續 | 再次按下 Spacebar |
| 重新執行節點 | 點擊失敗的節點 →「重新執行」 |
| 從此處重新執行 | 從任何節點重新執行到最後 |
核准按鈕很聰明:
- 🟢 「核准並執行」 — 計畫就緒,需求已滿足
- 🟠 「完成需求」 — 條件未滿足
- 🔵 「執行中...」 — 帶有旋轉圖示的執行中
- 🟢 「已完成」 — 全部完成
- 🔴 「失敗」 — 發生錯誤
結構化輸出
每個節點執行後,查看豐富的結構化輸出:
| 類別 | 顯示的內容 |
|---|---|
| 概覽 | 已完成事項的摘要 |
| 已變更的檔案 | 路徑、新增/移除的行數、差異 |
| 已建立的檔案 | 帶有行數的新檔案 |
| 已刪除的檔案 | 已移除的檔案 |
| 已安裝的套件 | 帶有版本的 npm 套件 |
| MCP 伺服器設定 | 安裝狀態 (已安裝/已設定/失敗) |
| 網路搜尋 | 執行的查詢、使用的結果 |
| 工具呼叫 | 使用了哪些工具以及使用頻率 |
| 預覽網址 | 部署網站或預覽的連結 |
| 備註 | 資訊、警告、錯誤 |
每個類別都是可展開的 — 深入查看而不會有視覺超載。
輸出模式
點擊任何已完成的節點以查看完整輸出:
- 可捲動 以查看長輸出
- 語法突顯 的程式碼片段
- 使用 Escape 關閉 或點擊外部
🏪 MCP 市集
直接從 Overture 使用者介面瀏覽和附加 MCP 伺服器。
| 功能 | 說明 |
|---|---|
| 內建市集 | 搜尋和探索 MCP 伺服器 |
| 伺服器詳細資訊 | 描述、作者、GitHub 連結、星號 |
| 類別瀏覽 | 按使用案例篩選 |
| 每個節點的附件 | 將特定工具附加到特定步驟 |
| 設定指示 | 查看如何設定每個伺服器 |
| 推薦的伺服器 | 針對常見任務的精選清單 |
當你將 MCP 伺服器附加到節點時,代理僅在該步驟獲得這些工具的存取權。
📂 多專案支援
同時處理多個專案:
| 功能 | 說明 |
|---|---|
| 分頁導覽 | 立即在專案之間切換 |
| 自動註冊 | 專案在首次代理接觸時註冊 |
| 隔離狀態 | 每個專案有獨立的計畫、節點、設定 |
| 未讀標記 | 知道其他專案何時有更新 |
| 專案脈絡 | 查看專案名稱、路徑和代理類型 |
單一專案?分頁列會自動隱藏,獲得更簡潔的使用者介面。
📜 計畫歷史記錄與持續性
絕不遺失你的工作:
| 功能 | 說明 |
|---|---|
| 自動儲存 | 每 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 | 網頁使用者介面的連接埠 |
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 內建其中,無需任何設定。
停止盲目飛行。查看計畫。核准它。自信地執行。