AgentTakt
io.github.ryoohshimaPublished by GitHub account ryoohshimav0.2.2Updated Oct 24, 2026
Review, edit, and approve AI agent task plans in a ComfyUI-style visual node editor in your terminal
Overview
AgentTakt lets an AI agent submit a task plan that you review, edit and approve as a node graph in a terminal UI before it executes.
- What you can do
- Receive a plan from the agent and render it as a node graph in a separate terminal window, with nodes, dependency edges and per-type coloring. Edit the graph with mouse and keyboard: move, add and delete nodes, draw dependency edges, and change parameters. Approve or reject the plan, returning the edited plan JSON to the agent for execution. Show a plan for viewing only, without blocking the agent for approval. Validate the graph, including cycle detection, and return errors the agent can correct.
- When to use it
- Use it when you want a human checkpoint before an AI coding agent carries out a multi-step plan, or when you want to see and adjust the agent's plan as a visual graph rather than reading text.
- Requirements
- Runs locally over stdio as a Python package (Python 3.10+, typically launched with uvx). Two processes are needed: the MCP server started by the agent client, and the TUI started by you in a separate terminal. A terminal emulator with mouse reporting is required. The client's tool timeout for request_approval must be set long enough, for example 30 minutes.
Installation
In SourceWeft
- Open AgentTakt in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
[PyPI - Version] [PyPI - Python Version] [License: MIT]
[AgentTakt demo: drag nodes, draw a dependency edge, approve]
AgentTakt is an MCP (Model Context Protocol) server and TUI tool. When an AI agent (an "Executor" such as Claude Code) sends a task execution plan over MCP, AgentTakt renders it as a node graph in your terminal. You review it with mouse and keyboard — move, add, and delete nodes, draw dependency edges, edit parameters — then approve, and the edited plan JSON is returned to the Executor for execution.
Features
- Terminal-native — no web UI; everything runs inside your terminal
- Visual node editor — rounded nodes, dependency edges, and per-type coloring, powered by Textual
- Mouse-first editing — drag nodes to move them, draw edges between ports (rubber band), click to select and delete
- Safe approval loop — cycle detection (DAG guarantee) and other validations at the entry point, returning errors the agent can self-correct
Requirements
- Python 3.10+ (recommended: uv)
- A terminal emulator with mouse reporting (iTerm2, WezTerm, kitty, Ghostty, ...)
Installation
If you have uv, no installation is needed. uvx agenttakt fetches and runs AgentTakt on demand, and the .mcp.json example below starts the MCP server the same way.
If you don't have uv, install AgentTakt once:
Installing is also handy for everyday use even with uv — you start the TUI by hand, so plain agenttakt beats typing uvx agenttakt each time:
Agent Plugins
This repository is an Agent Plugins 1.0.0 package. In a compatible client, load the repository root as the plugin directory:
The plugin requires uvx on PATH and runs the published agenttakt package
from PyPI. Its uv cache is stored under the client-managed PLUGIN_DATA
directory. Start the TUI separately with uvx agenttakt before using the tools.
For request_approval, configure a sufficiently long tool timeout in your
client (for example, 30 minutes); the portable MCP format has no timeout field.
The development .mcp.json is a separate client-native configuration that runs
the local checkout. server.json supplies metadata for the MCP Registry.
Quick Start
AgentTakt runs as two processes: the MCP server, which Claude Code starts for you, and the TUI, which you start yourself in a separate terminal. The TUI is what displays the plan, so start it before asking the Executor for approval.
Running the TUI in the same session as Claude Code does not work. A stdio MCP server has its standard input and output reserved for protocol traffic, so the same process cannot also drive a full-screen terminal UI. That is why the two halves are separate processes talking over a Unix domain socket.
1. Start the TUI (in its own terminal)
An idle screen appears, waiting for plans from the Executor. Leave this terminal open. If no TUI is running when the Executor calls request_approval, the call fails with:
AgentTakt editor is not running. Ask the user to run "agenttakt" in a separate terminal, then call request_approval again.
On startup the TUI checks PyPI in the background and shows a notification when a newer version is available. Set AGENTTAKT_NO_UPDATE_CHECK=1 to disable the check.
2. Register the MCP server with the Executor (Claude Code)
Add the following to your project's .mcp.json:
[!IMPORTANT] Setting
timeout(milliseconds) explicitly is required. Therequest_approvaltool blocks until the human finishes reviewing. MCP progress notifications do not extend client-side timeouts, so the default would cut the request off before approval. The example above sets 30 minutes (1800000). This does not apply toshow_plan, which returns as soon as the TUI receives the plan.
3. Request approval from the Executor
When the Executor calls the MCP tool request_approval(plan, summary), the plan appears in the TUI as a node graph. Once the human edits and approves (or rejects) it, the result is returned as:
See docs/schema.md for the plan JSON format and what to write in each node.
Display-only plans (show_plan)
show_plan(plan, summary) shows a plan in the TUI without waiting for approval — it returns {"status": "displayed"} as soon as the editor receives it. Use it when you just want visibility into what the agent is planning, in any mode (not only plan mode). The plan opens with a [view-only] header; closing it sends nothing back to the Executor.
Agents call request_approval naturally when the host is in plan mode, but they will not volunteer plans outside it. To encourage that, add an instruction like this to your project's CLAUDE.md (or equivalent agent instructions):
Note: a [view-only] plan occupies the editor until dismissed; a later request_approval waits in the queue behind it.
Debug mode (try it without MCP)
Loads a plan from a file, opens the editor, and writes the approval result to --out.
Key Bindings
Mouse: drag a node to move it; drag from a node's output port (●, right edge) and release on another node to create an edge.
Edges are drawn as braille Bezier-like curves by default. If they render poorly in your environment, switch to rounded orthogonal lines with --edges orthogonal.
Documentation
- Plan JSON schema — data model, node fields, what to write in
type/data, and validation rules - Changelog — release notes for each version
License
Source: README.md at commit a36a2bd
Tools
0Version history
2- v0.2.2LatestSep 23, 2026
- v0.2.1Sep 16, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts