Overture

Visual plan approval for AI coding agents. See your agent's plan as an interactive graph, attach context, choose approaches, then approve before any code is written.

https://github.com/user-attachments/assets/eeb9c4cb-c80d-42da-bf63-c0c4ecb1e5d6


🔥 The Problem

Every AI coding agent today — Cursor, Claude Code, Cline, Copilot — works the same way:

What Happens Now

  1. You type a prompt
  2. Agent immediately starts writing code
  3. You have zero visibility into what it's doing
  4. You realize it misunderstood your request
  5. Hundreds of lines of code need to be discarded
  6. You've wasted tokens, time, and patience

Text Plans Don't Help

Some agents show plans as text in chat. But text fails to show:

  • Dependencies — which tasks depend on what?
  • Branch points — what alternative approaches exist?
  • Context requirements — which files, APIs, or secrets are needed?
  • Complexity — which steps are risky?
  • Progress — what's done, what's next?

✨ The Solution

Overture intercepts your AI agent's planning phase and renders it as an interactive visual flowchart — before any code is written.

The agent doesn't write a single line of code until you approve the plan.


🚀 Installation

Overture is an MCP server that works with any MCP-compatible AI coding agent. One command to install.

Claude Code

claude mcp add overture-mcp -- npx overture-mcp

Cursor

Add to ~/.cursor/mcp.json:

{
  "mcpServers": {
    "overture": {
      "command": "npx",
      "args": ["overture-mcp"]
    }
  }
}

Cline (VS Code Extension)

Open VS Code settings → search "Cline MCP" → add:

{
  "mcpServers": {
    "overture": {
      "command": "npx",
      "args": ["overture-mcp"]
    }
  }
}

GitHub Copilot

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 servers instead of mcpServers.

Sixth AI (VS Code Extension)

Add to your Sixth AI MCP settings file:

PlatformPath
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
    }
  }
}

Global Installation (Optional)

npm install -g overture-mcp

Verify It Works

Give your agent any task. Overture automatically opens at http://localhost:3031 with your plan ready for approval.


🎯 How It Works

The Flow:

StepWhat Happens
1. PromptYou give your agent a task: "Build a REST API with auth"
2. PlanAgent generates a detailed plan with steps, branches, and requirements
3. VisualizeOverture renders the plan as an interactive graph
4. EnrichYou click nodes, attach files, select branches, fill in API keys
5. ApproveYou click "Approve & Execute" (or press Enter)
6. ExecuteWatch real-time as nodes pulse, complete, or fail
7. ControlPause (Spacebar), resume, re-run nodes, or modify the plan mid-flight

🛠 Features

Interactive Plan Canvas

FeatureDescription
React Flow CanvasFull pan, zoom, drag with smooth animations
Streaming ParserPlan nodes appear in real-time as the agent generates them
Dagre Auto-LayoutIntelligent automatic positioning of nodes
Visual StatusPending (gray) → Active (pulsing yellow) → Completed (green) / Failed (red)
Next Node IndicatorBlue pulse shows which node executes next
Complexity BadgesLow (green), Medium (yellow), High (red) at a glance
Glow EffectsShadow glows highlight active and upcoming nodes
Insertable EdgesHover over edges to insert new nodes mid-plan

Node Details Panel

Click any node to reveal its full details:

InfoWhat You See
Title & DescriptionFull context for what this step does
Complexity LevelLow / Medium / High with visual indicator
Expected OutputWhat the step should produce
Risks & Edge CasesPotential issues to watch for
Pros & ConsFor branch options, compare trade-offs

Dynamic Fields (User Inputs)

Nodes can request input from you before execution:

Field TypeUse Case
StringProject names, URLs, custom values
NumberPort numbers, limits, counts
BooleanYes/No toggles for options
SelectDropdown with predefined choices
SecretAPI keys, tokens (masked input)
FileFile paths to attach context

Each field includes:

  • Required/optional indicator
  • Default values
  • Help text & descriptions
  • Setup instructions ("How to get an API key")

File Attachments

Attach context files to specific nodes:

  • Automatic type detection — Image, code, document, or other
  • Visual icons per file type
  • Descriptions — add notes about why this file matters
  • Delete — remove unwanted attachments

Meta Instructions

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.


Branch Detection & Selection

When the agent proposes multiple approaches:

FeatureDescription
Auto-DetectionBranches detected from graph structure (no special markup)
Branch PointsNodes with multiple outgoing edges become decision points
Selection ModalSide-by-side comparison with pros/cons
Complexity ComparisonSee difficulty level for each option
Visual IndicatorSelected branch highlighted on canvas
Skip UnselectedOnly your chosen path executes

Requirements Checklist

Before you can approve, Overture shows what's needed:

  • Empty required fields — counted per node
  • Branch selections — which decisions are pending
  • Progress indicator — visual completion tracking
  • Expandable items — click to see details
  • Color coding — Green (done) / Orange (pending)

The Approve button stays disabled until all requirements are met.


Execution Controls

ControlHow
ApproveClick button or press Enter
PausePress Spacebar mid-execution
ResumePress Spacebar again
Re-run NodeClick failed node → "Re-run"
Re-run From HereRe-execute from any node to the end

The approval button is smart:

  • 🟢 "Approve & Execute" — plan ready, requirements met
  • 🟠 "Complete Requirements" — conditions unmet
  • 🔵 "Executing..." — running with spinner
  • 🟢 "Completed" — all done
  • 🔴 "Failed" — error occurred

Structured Output

After each node executes, see rich structured output:

CategoryWhat It Shows
OverviewSummary of what was accomplished
Files ChangedPaths, lines added/removed, diffs
Files CreatedNew files with line counts
Files DeletedRemoved files
Packages Installednpm packages with versions
MCP Servers SetupInstallation status (installed/configured/failed)
Web SearchesQueries performed, results used
Tool CallsWhich tools were used and how often
Preview URLsLinks to deployed sites or previews
NotesInfo, warnings, errors

Each category is expandable — drill in without visual overload.


Output Modal

Click any completed node to see full output:

  • Scrollable for long outputs
  • Syntax highlighted code snippets
  • Close with Escape or click outside

🏪 MCP Marketplace

Browse and attach MCP servers directly from the Overture UI.

FeatureDescription
Built-in MarketplaceSearch and discover MCP servers
Server DetailsDescriptions, authors, GitHub links, stars
Category BrowsingFilter by use case
Per-Node AttachmentAttach specific tools to specific steps
Setup InstructionsSee how to configure each server
Recommended ServersCurated list for common tasks

When you attach an MCP server to a node, the agent gains access to those tools only for that step.


📂 Multi-Project Support

Work on multiple projects simultaneously:

FeatureDescription
Tab NavigationSwitch between projects instantly
Auto RegistrationProjects register on first agent contact
Isolated StateEach project has separate plans, nodes, configs
Unread BadgesKnow when other projects have updates
Project ContextSee project name, path, and agent type

Single project? Tab bar hides automatically for a cleaner UI.


📜 Plan History & Persistence

Never lose your work:

FeatureDescription
Auto-SavePlans saved every 3 seconds
Local StorageStored in ~/.overture/history.json
History BrowserSlide-in panel with all past plans
Status IconsCompleted, failed, executing, paused
Progress BarsVisual completion percentage
One-Click ResumeLoad and continue any past plan
Full ContextAll field values, branch selections, attachments preserved

Resume Information

When resuming, you get complete context:

  • Current node — where execution stopped
  • Completed nodes — with their outputs
  • Pending nodes — what's left to do
  • Failed nodes — with error messages
  • All configurations — field values, branches, attachments
  • Timestamps — when created, when paused

✏️ Dynamic Plan Modification

Modify plans even during execution:

OperationDescription
Insert NodesAdd new steps mid-execution
Remove NodesDelete steps (edges auto-reconnect)
Replace ContentUpdate node title/description in-place
Batch OperationsMultiple changes in one request

Plan Diff View

When a plan changes, see exactly what's different:

  • Added nodes — highlighted green
  • Removed nodes — highlighted red
  • Modified nodes — yellow with before/after comparison
  • Edge changes — added/removed connections

🔌 MCP Tools (For Agent Developers)

Overture exposes 11 MCP tools for agents to interact with:

ToolPurpose
submit_planSubmit complete plan as XML
get_approvalWait for user approval (blocks until approved)
update_node_statusUpdate node status + output during execution
plan_completedMark plan as successfully completed
plan_failedMark plan as failed with error message
check_rerunCheck if user requested a node re-run
check_pauseCheck if user paused execution
get_resume_infoGet full context for resuming a paused plan
request_plan_updateRequest incremental plan modifications
create_new_planSignal creation of a new plan
get_usage_instructionsGet agent-specific instructions

🔄 Real-time WebSocket Communication

19 server-to-client message types:

connectedplan_startednode_addededge_addedplan_readyplan_approvednode_status_updatedplan_completedplan_failedplan_pausedplan_resumednodes_insertednode_removedproject_registeredprojects_listhistory_entriesplan_loadedresume_plan_infoplan_updated

16 client-to-server message types:

approve_plancancel_planrerun_requestpause_executionresume_executioninsert_nodesremove_noderegister_projectsubscribe_projectunsubscribe_projectget_historyload_planget_resume_infosave_planrequest_plan_updatecreate_new_plan

Relay Mode

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.


⚙️ Configuration

VariableDefaultDescription
OVERTURE_HTTP_PORT3031Port for the web UI
OVERTURE_WS_PORT3030Port for WebSocket
OVERTURE_AUTO_OPENtrueAuto-open browser on start

Setting Environment Variables

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"
      }
    }
  }
}

⌨️ Keyboard Shortcuts

KeyAction
EnterApprove plan (when ready)
SpacePause / Resume execution
EscapeDeselect current node / Close modal

🤝 Supported Agents

AgentStatusNotes
Claude Code✅ FullNative MCP support
Cursor✅ FullVia mcp.json config
Cline✅ FullVia VS Code settings
GitHub Copilot✅ FullVS Code 1.99+ required
Sixth AI✅ FullBuilt-in, zero config

Each agent has custom-tailored prompts for optimal plan generation.


💪 Why Overture?

For Users

  • Transparency — See exactly what happens before code is written
  • Control — Approve, reject, or modify any plan
  • Context — Attach files and instructions to the right steps
  • Choice — Compare approaches and pick your path
  • Visibility — Real-time progress with rich output
  • Safety — Pause, resume, or re-run at any time
  • History — Resume any past plan instantly
  • Efficiency — No wasted tokens on rejected approaches

For AI Coding

  • Trust — Makes agents predictable and controllable
  • Interpretability — See AI reasoning before execution
  • Universal — Works with any MCP-compatible agent
  • Extensible — MCP Marketplace for tool discovery
  • Open Source — MIT licensed, community-driven
  • Self-Contained — No cloud dependencies
  • Works Offline — Fully local execution
  • Multi-Project — Manage multiple workspaces

🧑‍💻 Development

# 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

Tech Stack

LayerTechnologies
MCP ServerNode.js, TypeScript, Express, WebSocket (ws), SAX XML Parser
UIReact 18, React Flow, Zustand, Framer Motion, Tailwind CSS, Vite
LayoutDagre (automatic graph positioning)

🤝 Contributing

Overture is open source and we welcome contributions!

All contributions are appreciated, no matter how small.


📄 License

MIT License - see LICENSE for details.


Star History

Star History Chart

Related Servers