Overture is an open-source, locally running web interface delivered as an MCP (Model Context Protocol) server that visually maps out the execution plan of any AI coding agent as an interactive flowchart/graph before the agent begins writing code.
Repo: SixHq/Overture
What's inside

https://github.com/user-attachments/assets/eeb9c4cb-c80d-42da-bf63-c0c4ecb1e5d6
Every AI coding agent today โ Cursor, Claude Code, Cline, Copilot โ works the same way:
Some agents show plans as text in chat. But text fails to show:
Overture intercepts your AI agent's planning phase and renders it as an interactive visual flowchart โ before any code is written.
Overture is an MCP server that works with any MCP-compatible AI coding agent. One command to install.
claude mcp add overture-mcp -- npx overture-mcp
Add to ~/.cursor/mcp.json:
{
"mcpServers": {
"overture": {
"command": "npx",
"args": ["overture-mcp"]
}
}
}
Open VS Code settings โ search "Cline MCP" โ add:
{
"mcpServers": {
"overture": {
"command": "npx",
"args": ["overture-mcp"]
}
}
}
Create .vscode/mcp.json in your project root:
{
"servers": {
"overture": {
"command": "npx",
"args": ["overture-mcp"]
}
}
}
Note: GitHub Copilot MCP requires VS Code 1.99+ and uses
serversinstead ofmcpServers.
Add to your Sixth AI MCP settings file:
| Platform | Path |
|---|---|
| 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
Give your agent any task. Overture automatically opens at http://localhost:3031 with your plan ready for approval.
The Flow:
| Step | What Happens |
|---|---|
| 1. Prompt | You give your agent a task: "Build a REST API with auth" |
| 2. Plan | Agent generates a detailed plan with steps, branches, and requirements |
| 3. Visualize | Overture renders the plan as an interactive graph |
| 4. Enrich | You click nodes, attach files, select branches, fill in API keys |
| 5. Approve | You click "Approve & Execute" (or press Enter) |
| 6. Execute | Watch real-time as nodes pulse, complete, or fail |
| 7. Control | Pause (Spacebar), resume, re-run nodes, or modify the plan mid-flight |
| Feature | Description |
|---|---|
| React Flow Canvas | Full pan, zoom, drag with smooth animations |
| Streaming Parser | Plan nodes appear in real-time as the agent generates them |
| Dagre Auto-Layout | Intelligent automatic positioning of nodes |
| Visual Status | Pending (gray) โ Active (pulsing yellow) โ Completed (green) / Failed (red) |
| Next Node Indicator | Blue pulse shows which node executes next |
| Complexity Badges | Low (green), Medium (yellow), High (red) at a glance |
| Glow Effects | Shadow glows highlight active and upcoming nodes |
| Insertable Edges | Hover over edges to insert new nodes mid-plan |
Click any node to reveal its full details:
| Info | What You See |
|---|---|
| Title & Description | Full context for what this step does |
| Complexity Level | Low / Medium / High with visual indicator |
| Expected Output | What the step should produce |
| Risks & Edge Cases | Potential issues to watch for |
| Pros & Cons | For branch options, compare trade-offs |
Nodes can request input from you before execution:
| Field Type | Use Case |
|---|---|
| String | Project names, URLs, custom values |
| Number | Port numbers, limits, counts |
| Boolean | Yes/No toggles for options |
| Select | Dropdown with predefined choices |
| Secret | API keys, tokens (masked input) |
| File | File paths to attach context |
Each field includes:
Attach context files to specific nodes:
Add custom LLM instructions to any node:
"Pay special attention to error handling here" "Use the existing auth pattern from src/auth.ts" "Make sure to add tests for edge cases"
Instructions are sent to the agent right before that node executes.
When the agent proposes multiple approaches:
| Feature | Description |
|---|---|
| Auto-Detection | Branches detected from graph structure (no special markup) |
| Branch Points | Nodes with multiple outgoing edges become decision points |
| Selection Modal | Side-by-side comparison with pros/cons |
| Complexity Comparison | See difficulty level for each option |
| Visual Indicator | Selected branch highlighted on canvas |
| Skip Unselected | Only your chosen path executes |
Before you can approve, Overture shows what's needed:
The Approve button stays disabled until all requirements are met.
| Control | How |
|---|---|
| Approve | Click button or press Enter |
| Pause | Press Spacebar mid-execution |
| Resume | Press Spacebar again |
| Re-run Node | Click failed node โ "Re-run" |
| Re-run From Here | Re-execute from any node to the end |
The approval button is smart:
After each node executes, see rich structured output:
| Category | What It Shows |
|---|---|
| Overview | Summary of what was accomplished |
| Files Changed | Paths, lines added/removed, diffs |
| Files Created | New files with line counts |
| Files Deleted | Removed files |
| Packages Installed | npm packages with versions |
| MCP Servers Setup | Installation status (installed/configured/failed) |
| Web Searches | Queries performed, results used |
| Tool Calls | Which tools were used and how often |
| Preview URLs | Links to deployed sites or previews |
| Notes | Info, warnings, errors |
Each category is expandable โ drill in without visual overload.
Click any completed node to see full output:
Browse and attach MCP servers directly from the Overture UI.
| Feature | Description |
|---|---|
| Built-in Marketplace | Search and discover MCP servers |
| Server Details | Descriptions, authors, GitHub links, stars |
| Category Browsing | Filter by use case |
| Per-Node Attachment | Attach specific tools to specific steps |
| Setup Instructions | See how to configure each server |
| Recommended Servers | Curated list for common tasks |
When you attach an MCP server to a node, the agent gains access to those tools only for that step.
Work on multiple projects simultaneously:
| Feature | Description |
|---|---|
| Tab Navigation | Switch between projects instantly |
| Auto Registration | Projects register on first agent contact |
| Isolated State | Each project has separate plans, nodes, configs |
| Unread Badges | Know when other projects have updates |
| Project Context | See project name, path, and agent type |
Single project? Tab bar hides automatically for a cleaner UI.
Never lose your work:
| Feature | Description |
|---|---|
| Auto-Save | Plans saved every 3 seconds |
| Local Storage | Stored in ~/.overture/history.json |
| History Browser | Slide-in panel with all past plans |
| Status Icons | Completed, failed, executing, paused |
| Progress Bars | Visual completion percentage |
| One-Click Resume | Load and continue any past plan |
| Full Context | All field values, branch selections, attachments preserved |
When resuming, you get complete context:
Modify plans even during execution:
| Operation | Description |
|---|---|
| Insert Nodes | Add new steps mid-execution |
| Remove Nodes | Delete steps (edges auto-reconnect) |
| Replace Content | Update node title/description in-place |
| Batch Operations | Multiple changes in one request |
When a plan changes, see exactly what's different:
Overture exposes 11 MCP tools for agents to interact with:
| Tool | Purpose |
|---|---|
submit_plan | Submit complete plan as XML |
get_approval | Wait for user approval (blocks until approved) |
update_node_status | Update node status + output during execution |
plan_completed | Mark plan as successfully completed |
plan_failed | Mark plan as failed with error message |
check_rerun | Check if user requested a node re-run |
check_pause | Check if user paused execution |
get_resume_info | Get full context for resuming a paused plan |
request_plan_update | Request incremental plan modifications |
create_new_plan | Signal creation of a new plan |
get_usage_instructions | Get agent-specific instructions |
19 server-to-client message types:
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 client-to-server message types:
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
When the WebSocket port is already in use, Overture automatically operates as a relay client, forwarding messages through the existing server. Multiple agent instances can share a single UI.
| Variable | Default | Description |
|---|---|---|
OVERTURE_HTTP_PORT | 3031 | Port for the web UI |
OVERTURE_WS_PORT | 3030 | Port for WebSocket |
OVERTURE_AUTO_OPEN | true | Auto-open browser on start |
claude mcp add overture-mcp -e OVERTURE_HTTP_PORT=4000 -e OVERTURE_AUTO_OPEN=false -- npx overture-mcp
{
"mcpServers": {
"overture": {
"command": "npx",
"args": ["overture-mcp"],
"env": {
"OVERTURE_HTTP_PORT": "4000",
"OVERTURE_WS_PORT": "4001",
"OVERTURE_AUTO_OPEN": "false"
}
}
}
}
{
"servers": {
"overture": {
"command": "npx",
"args": ["overture-mcp"],
"env": {
"OVERTURE_HTTP_PORT": "4000",
"OVERTURE_WS_PORT": "4001",
"OVERTURE_AUTO_OPEN": "false"
}
}
}
}
| Key | Action |
|---|---|
Enter | Approve plan (when ready) |
Space | Pause / Resume execution |
Escape | Deselect current node / Close modal |
| Agent | Status | Notes |
|---|---|---|
| Claude Code | โ Full | Native MCP support |
| Cursor | โ Full | Via mcp.json config |
| Cline | โ Full | Via VS Code settings |
| GitHub Copilot | โ Full | VS Code 1.99+ required |
| Sixth AI | โ Full | Built-in, zero config |
Each agent has custom-tailored prompts for optimal plan generation.
# 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
| Layer | Technologies |
|---|---|
| MCP Server | Node.js, TypeScript, Express, WebSocket (ws), SAX XML Parser |
| UI | React 18, React Flow, Zustand, Framer Motion, Tailwind CSS, Vite |
| Layout | Dagre (automatic graph positioning) |
Overture is open source and we welcome contributions!
All contributions are appreciated, no matter how small.
MIT License - see LICENSE for details.
.claude/
agent-memory/
principal-qa-engineer/
CODE_ANALYSIS_EDGE_PULSATION.md
color-field-quick-reference.md
help-modal-testing.md
MANUAL_TEST_PROTOCOL_HELP_MODAL.md
MEMORY.md
MIN_NODES_BUG_FIX_REQUIRED.md
MONACO_EDITOR_SESSION.md
MONACO_FILE_VIEWER_TEST_REPORT.md
MONACO_TEST_PROTOCOL.md
monaco-test-data.xml
monaco-test-outputs.md
PROJECT_STORAGE_SUMMARY.md
PROJECT_STORAGE_TEST_REPORT.md
question-field-testing.md
QUICK_START_CONTEXT_MENU_TEST.md
REQUIREMENTS_CHECKLIST_FIX_SUMMARY.md
run-monaco-tests.sh
submit-color-test.sh
submit-test-plan.sh
TEST_PROTOCOL_MODEL_PROVIDER.md
TEST_REPORT_COLOR_FIELD_TYPE.md
TEST_REPORT_EDGE_PULSATION_FIX.md
TEST_REPORT_EDITABLE_NODE_DESCRIPTIONS.md
TEST_REPORT_MIN_NODES_SETTING.md
TEST_REPORT_MONACO_EDITOR.md
TEST_REPORT_QUESTION_FIELD.md
TEST_REPORT_REQUIREMENTS_CHECKLIST_FIX.md
TEST_REPORT_RIGHT_CLICK_CONTEXT_MENU.md
TEST_SUMMARY_update_node_detail.md
test-context-menu.sh
test-min-nodes-fail.xml
test-min-nodes-pass.xml
test-min-nodes.sh
test-plan-branch.xml
test-plan-branches.xml
test-plan-color-basic.xml
test-plan-color-mixed-fields.xml
test-plan-color-multiple.xml
test-plan-color-required.xml
test-plan-convergence.xml
test-plan-linear.xml
test-project-storage.sh
update_node_detail_test_report.md
update_nodes_detail_test_report.md
VISUAL_TEST_CHECKLIST.md
senior-engineer/
MEMORY.md
agents/
principal-qa-engineer.md
senior-engineer.md
.github/
FUNDING.yml
ISSUE_TEMPLATE/
bug_report.yml
config.yml
feature_request.yml
PULL_REQUEST_TEMPLATE.md
workflows/
ci.yml
.gitignore
assets/
feature-branching.png
claude_logo.png
cline.png
cursor_logo.png
feature-attachments.png
feature-canvas.png
feature-checklist.png
feature-dynamic-fields.png
feature-execution.png
feature-history.png
feature-marketplace.png
feature-meta-instructions.png
feature-node-panel.png
feature-output-modal.png
feature-output.png
github_logo.png
hero-demo.mp4
how-it-works.png
overture-logo-dark.png
overture-logo-light.png
problem-illustration.png
sixth-logo.png
solution-screenshot.png
CHANGELOG.md
CLAUDE.md
CODE_OF_CONDUCT.md
CONTRIBUTING.md
docs/
FEATURES.md
examples/
ecommerce-plan.xml
LICENSE
package-lock.json
package.json
packages/
mcp-server/
.eslintrc.cjs
CLAUDE.md
package.json
prompts/
claude-code.md
cline.md
cursor.md
gh_copilot.md
overture-instructions.md
sixth.md
public/
assets/
index-Di-zv419.js
index-Di-zv419.js.map
index-impa9kSt.css
index-Mdxh9QeT.css
index-xpzorqn-.js
index-xpzorqn-.js.map
favicon.svg
index.html
README.md
src/
cli.ts
http/
server.ts
index.ts
parser/
output-parser.ts
xml-parser.ts
storage/
history-storage.ts
project-storage.ts
store/
plan-store.ts
settings-store.ts
tools/
handlers.ts
types.ts
utils/
plan-diff.ts
websocket/
ws-server.ts
tsconfig.json
ui-dist/
assets/
index-CnRRiWVT.js
index-CnRRiWVT.js.map
index-DTPAMidB.css
index.html
ui/
index.html
package.json
postcss.config.js
src/
App.tsx
components/
Canvas/
ContextMenu.tsx
DecisionNode.tsx
InsertableEdge.tsx
PlanCanvas.tsx
TaskNode.tsx
Controls/
ApproveButton.tsx
ExecutionControls.tsx
RequirementsChecklist.tsx
RequirementsChecklistV2.tsx
Layout/
Footer.tsx
Header.tsx
TabBar.tsx
Modals/
BranchSelectionModal.tsx
HelpModal.tsx
InsertNodeModal.tsx
McpMarketplaceModal.tsx
MonacoViewerModal.tsx
OutputModal.tsx
PlanSettingsModal.tsx
SettingsModal.tsx
Panel/
BranchSelector.tsx
DynamicFieldInput.tsx
HistoryPanel.tsx
NodeDetailPanel.tsx
PlanDiffPanel.tsx
StructuredOutputView.tsx
data/
help-content.ts
hooks/
useAutoLayout.ts
useWebSocket.ts
main.tsx
stores/
multi-project-store.ts
plan-store.ts
settings-store.ts
styles/
globals.css
utils/
history-cache.ts
tailwind.config.js
tsconfig.json
tsconfig.node.json
vite.config.ts
pnpm-lock.yaml
prompts/
claude-code.md
cline.md
cursor.md
gh_copilot.md
overture-instructions.md
sixth.md
README.md
SECURITY.md
tsconfig.jsonFAQ
overture is a Claude Code plugin with hand-picked skills for development work, indexed on Flowy. Install it with the command on its page. Its skills do not fire on their own yet. Request auto-invocation to have Flowy route them as you prompt. Free and open source.