CLI tool
nrslib/takt avatar
nrslib/takt

TAKT: Enforcing AI Agent Workflows with YAML, Worktrees, and Explicit Review Loops

TAKT Agent Koordination Topology - Define how AI agents coordinate, where humans intervene, and what gets recorded, in YAML.

1,341 stars99 forksTypeScriptMIT

At a glance

What is it?
TAKT is a TypeScript CLI that defines AI coding agent coordination as YAML workflows, running tasks in isolated worktrees with per-step personas, permissions, and review gates. It suits teams that need process control over agent discretion, but its Node 22 requirement and SDK provider constraints narrow the field.
Who is it for?
Adopt TAKT if you manage AI coding agents and need the process itself, not the agent's memory, to enforce review and fix loops. Skip it if you run Windows or macOS x64 with DeepSeek, or if your team cannot standardize on Node.js 22.22.0+.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 2 days ago.
What is it written in?
Mainly TypeScript, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 14, 2026, and from our analysis. They are not legal advice.

DEEP OPEN-SOURCE ANALYSIS

The Problem: Agents Forget, TAKT Remembers

AI coding agents drift. In long tasks they lose instructions, accumulate irrelevant context, and blur who implements versus who reviews. Adding rules to CLAUDE.md or skills helps, but nothing enforces them. TAKT addresses this by moving process ownership out of the prompt and into a YAML workflow file. The workflow defines phases, and each step gets its own persona, policy, knowledge, instruction, and output contract. The agent executes, but the workflow decides what happens next. This is for teams that want repeatable development processes, not for those who trust a single agent to follow a long instruction list.

Workflow as Topology: Roles, Phases, and Transitions

TAKT's name spells out its model: Agent Koordination Topology. You define planning, implementation, review, fix, and re-review loops as explicit transitions. A review step cannot be silently skipped; findings route work back to a fix step. Human judgment can be requested at defined points. Each step receives only the context it needs, which keeps context focused and prevents the bloat that comes from one long conversation. The README contrasts this with plain agents: the YAML owns the process, responsibilities are separated by personas and permissions, and the path from task to PR is preserved through logs and reports. This is a declarative state machine for agent behavior, not a prompt template.

Running Tasks: Worktrees, Queues, and the takt CLI

You start from a Git repository with at least one commit. Install globally with npm install -g takt. Then run takt to talk to AI, describe a task, use /go, and choose 'Queue as task'. Execution happens with takt run, which runs queued tasks in isolated worktrees. Afterward, takt list lets you review diffs, merge, retry, requeue, or delete task branches. The workflow files are YAML, and they are versionable and reviewable like code. The isolation is a key feature: work does not land directly in the current tree. Instead, each task gets its own branch, and you control when to merge. This makes the process auditable, because every step leaves logs and reports.

Provider Matrix: SDK vs CLI and the Node 22 Gate

TAKT requires Node.js >=22.22.0, which is a strict baseline. Providers split into two categories. SDK-based providers run on Node.js alone: claude-sdk, codex, opencode, and pi. CLI-based providers need external tools: claude, claude-terminal (which also needs tmux), copilot, and others. The deepseek-harness provider is different: it uses the official Python SDK through a private JSON-RPC bridge, requiring Python 3.10+ and pip install deepseek-harness-sdk deepseek-harness-runtime-bin. The runtime supports Linux x64/arm64 and macOS arm64 only. Windows and macOS x64 fail fast, not silently. This is a real constraint if your team is on Windows. Also, the deepseek-harness provider is a developer-preview compatibility surface; upstream API vocabulary can change between matching releases.

Configuration and First-Run Setup

On first run, you must configure a provider in ~/.takt/config.yaml or use API key environment variables. The README lists environment variables like DEEPSEEK_API_KEY and DEEPSEEK_BASE_URL for the DeepSeek provider. For SDK providers, no CLI is needed, which reduces setup friction. For CLI providers, you need the external CLI installed. The configuration guide is where you find the opt-in live smoke procedure for deepseek-harness; the README advises using it before relying on a new SDK/runtime pair. This is a practical detail: you cannot just set a key and go for every provider. The config file is your control point for provider selection and permissions.

Where TAKT Is the Wrong Tool

TAKT is overkill if your workflow is a single agent doing one-off tasks with no review requirement. The overhead of defining YAML workflows, managing worktrees, and running a queue is not worth it for a quick script. Also, if you rely on DeepSeek and run Windows or macOS x64, TAKT will fail fast, and there is no fallback. The Node 22 requirement may exclude older CI environments. The deepseek-harness provider's developer-preview status means you must verify matching SDK and runtime releases before each use. If your team prefers to let agents self-organize without external process control, TAKT's entire premise contradicts that. It is a control layer, not a suggestion layer.

Alternatives and the Difference in Approach

The closest alternative is using a plain AI coding agent with a long prompt or a CLAUDE.md file that describes the process. The difference is enforcement. A prompt asks the agent to follow a process; TAKT's YAML owns the process. Another alternative is a CI pipeline with manual review steps, but that does not coordinate multiple agents with different roles and context. TAKT gives each step its own persona and permissions, which a CI pipeline cannot do. If you want a lighter approach, you could write a shell script that runs agents sequentially, but you would lose the isolated worktrees, the review loop routing, and the output contracts. TAKT's value is the topology: explicit transitions that cannot be skipped.

Maintenance, Licensing, and What to Verify First

TAKT is MIT licensed, which means you can use it in commercial projects without copyleft obligations. The project is built with itself (dogfooding), which suggests the maintainers use it in their own workflow. Maintenance cost depends on provider updates. SDK providers may change their APIs, and the deepseek-harness provider explicitly warns about upstream API drift. You will need to track matching releases for that provider. The Node 22 requirement means you must keep your runtime current. Before adopting, verify that your provider runs on your OS, that your Node version meets the requirement, and that you understand the worktree workflow. The README does not mention a migration path from other tools, so you will start fresh.

Editorial conclusion

Adopt TAKT if you manage AI coding agents and need the process itself, not the agent's memory, to enforce review and fix loops. Skip it if you run Windows or macOS x64 with DeepSeek, or if your team cannot standardize on Node.js 22.22.0+. Before adopting, verify that your chosen provider (SDK or CLI) matches your OS and that the deepseek-harness SDK/runtime pair is a matching release, since upstream API changes can break compatibility.

Official sources

  1. Official README
  2. Project repository
Community notes

Community notes