Spokes.wiki Search About
Created
Updated
Also known as
agtx · fynnfluegge/agtx

agtx

"The blackboard for coding agents" — a Rust TUI kanban board that runs several coding agents at once, each task in its own git worktree and its own tmux window, advanced through a spec-driven workflow by an optional orchestrator agent. 1,251★ / 111 forks, Apache-2.0, 16 open issues, created 2026-02-08, last pushed 2026-08-11, latest release v0.2.6 (2026-06-28). Read 2026-08-21. By fynn-fluegge, whose rocketnotes this hub already pages in ../research-wiki.

It is the second product in this spoke built on the board metaphor. agent-kanban arrived at the same idea from the server side, with a browser board, Ed25519 agent identity and a daemon; agtx is a terminal binary you run inside one repository. Both landed on worktree-per-worker, which is now the standing answer to the isolation question this spoke frames against jcode's shared-tree swarm.

The shape

  • A phase per agent, and the agent changes with the phase. Configure Gemini for research, Claude for implementation, Codex for review, and agtx switches between them as a task advances. This is agent-orchestration with a heterogeneous fan-out — not one model spawning copies of itself, but different vendors' harnesses taking successive turns on one task.
  • Worktree plus tmux window per task. Isolation is filesystem-level and the agent's session is a real terminal you can attach to.
  • Ten workflow plugins, selected with one key: void (no prompting at all), agtx and agtx-terse (built-in, the second one token-minimizing), plus gsd, spec-kit, openspec, bmad, superpowers, oh-my-claudecode and agent-skills. A plugin is a single TOML file declaring commands, prompts, artifacts and phase gates; agtx supplies the phase gating, artifact polling, worktree sync and agent switching underneath.
  • One command syntax, translated per agent. /agtx:plan becomes $agtx-plan on Codex and /agtx-plan on OpenCode and Cursor. The compatibility matrix is honest about where this stops: superpowers and oh-my-claudecode are Claude-only, and Copilot gets prompt-only support for most plugins.
  • /agtx:brainstorm and /agtx:sweep — capture an idea mid-session and push the conversation onto the board as tasks in one confirmation step.

The orchestrator is the interesting part

Marked experimental, and it inverts who holds the board. You triage tasks into Planning or Running; the orchestrator advances them to Review and stops there, because "merging is your call."

Mechanically it is an agent driving a harness through MCP. agtx serve exposes the kanban board as JSON-RPC tools over stdio against a SQLite database; the TUI registers that server with the orchestrator via claude mcp add-json --scope local, then pushes phase-completion notifications into the orchestrator's tmux pane when it goes idle. The orchestrator calls get_task, checks the plugin's allowed_actions, and calls move_task.

Two details are worth more than the architecture diagram. First, the stuck-task detector: a task idle for one minute with no phase artifact triggers the orchestrator to call read_pane_content and diagnose from the terminal output, then either send_to_task to nudge the agent or escalate with a ⚠ badge and a stated reason. Watching a pane is a crude signal, and it is the same text-first-agent-design move the spoke keeps finding — the derived representation of the screen is what the supervising agent reads. Second, escalation is a first-class action: the orchestrator's tool surface includes giving up and asking the human, which is a shape agent-guardrails argues for and few products implement as an API call rather than a crash.

It published a benchmark, and the benchmark is small

The repository ships a SWE-bench Lite runner (300 real bug-fix tasks, Docker sandboxes, driven through agtx's own MCP server) and — unusually for this corpus — a benchmark/RESULTS.md with actual numbers. Every run uses Claude Sonnet in sandbox mode, and each row carries duration, total tokens, dollar cost and a graded outcome (✅ resolved · 🟡 fix correct but incomplete · ❌ wrong or no patch).

Eight configurations, two instances:

Config Instance Duration Tokens Cost Result
claude-superpowers astropy-12907 15m 46s 5,400K $2.64 ✅
claude-agtx astropy-12907 2m 38s 1,514K $1.00 🟡
claude-spec-kit astropy-12907 4m 48s 926K $0.40 🟡
claude-openspec astropy-12907 2m 15s 468K $0.48 🟡
claude-agent-skills astropy-12907 3m 30s 2,680K $1.04 🟡
claude-rtk-caveman-agtx astropy-12907 2m 14s 1,149K $0.92 🟡
claude-rtk-ponytail-agtx astropy-12907 2m 27s 1,314K $1.02 🟡
claude-rtk-caveman-ponytail-agtx astropy-12907 2m 09s 1,006K $0.55 🟡

Every arm failed the second instance (astropy-14182) outright. On the first, seven of eight produced the correct fix in separable.py and stopped short of writing a test; the one that wrote the test was superpowers, at 6× the cost and 6× the wall time of the cheapest partial pass.

What that is worth. As a benchmark result, close to nothing: n=1 per arm on one task from a 300-task suite, one model, no repeats, no confidence interval, and the author has an interest in the tool being tested. The numbers are T3 even though the artifact facts above are T1.

The missing repeats are the fatal part rather than the untidy part, and beyond-pass-at-1 is why. That study runs agents at k=3 across 23,392 episodes and finds run-to-run spread on long tasks wide enough to swallow differences far larger than the ones separating these eight rows — 95% intervals of ±7 to ±10 points on a single model in a single bucket. A one-shot ranking of eight configurations is not a weak version of that measurement; it is a draw the run happened to produce. As a method it is the thing this spoke has been asking for since it opened. The methodology packs it pages one at a time (superpowers, spec-kit, get-shit-done, ponytail) are here as swappable arms in one harness on one task, with cost and token counts attached. jetbrains-ponytail-tested is the only source in this corpus that did the comparison properly, and it needed 251 billed trials and $246.09 to do it. agtx's contribution is that the rig for doing it again is --config <file>.

One caveat undercuts the arms. Every benchmark config sets skip_worktree = true, so agtx's headline feature — parallel agents in isolated worktrees — is switched off for the entire run. What is being measured is the workflow plugin, with agtx as the driver. That makes the table a comparison of methodologies and not a measurement of agtx.

The corpus disagrees with itself about OpenSpec

spec-driven-ai-tools (T4, May 2026) ran OpenSpec, Spec-Kit and a third tool against one real feature by hand and scored OpenSpec highest overall, calling out its light footprint and frictionless iteration. Here OpenSpec is indeed the leanest arm by tokens (468K, the lowest in the table) and it lands 🟡 — correct fix, no test written, plus a broken /opsx:verify command the author notes as since fixed.

The two are not strictly in conflict; they grade different things, one on developer experience and one on a patch. But it is the first time this spoke has had two independent readings of the same spec-driven tool, and the pattern that survives both is OpenSpec is cheap and does not finish the job. Recorded rather than resolved.

Errata

The plugin table links gsd to github.com/fynnfluegge/get-shit-done-cc, which 404s and does not exist under that account (checked 2026-08-21). The GSD this spoke pages is gsd-build/get-shit-done by TÂCHES, 64.7k★, last pushed 2026-05-31. Whether agtx's gsd plugin wraps that project under a stale link or a repository that has since been deleted is not evidenced either way, so both facts are recorded and neither is inferred.

agent-kanban · agent-orchestration · agentic-coding-harness · spec-driven-development · get-shit-done · spec-kit · superpowers · ponytail · jetbrains-ponytail-tested · spec-driven-ai-tools · agent-evals · swe-bench · jcode · conductor · agent-guardrails · text-first-agent-design · beyond-pass-at-1 · fynn-fluegge