dogukan
v0.0.2
Published
A multi-agent swarm coding CLI on top of Claude Code — plan, swarm, and talk to each agent while they work.
Readme
dogukan
A multi-agent swarm coding CLI built on top of Claude Code. You give it a topic, it plans like a senior engineer, you trigger the loop, and a swarm of coding agents builds the plan in parallel — each in its own git worktree — while you talk to any one of them live.
It's the "type and talk" feel of Claude Code, but orchestrating many agents you can each converse with mid-task.
The flow
topic → plan → (review/refine) → /loop → swarm → talk to agents → /merge → done- Topic — you say what you want to build.
- Plan — a planner agent produces a full plan (problem, actors, acceptance
criteria, data model, API, sequence flow, architecture, slices, tests, risks)
following the senior-engineering rules in
src/prompts/senior-coding-agent.md. - Review — read it in the planner pane; chat with the planner to refine.
/loop— the plan is decomposed into independent slices; one worker agent per slice spawns in its own git worktree (parallel, no file clobbering).- Talk to any agent —
Tabswitches the focused agent (tmux-style sidebar + conversation pane). Type to steer the focused agent;Ctrl-Cinterrupts it;/broadcastmessages every worker. /merge— agent branches merge back into the base branch.
Architecture
- Engine: each agent is a Claude Code session via the Claude Agent SDK
(
@anthropic-ai/claude-agent-sdk), running locally withcwdset to its worktree. Streaming-input mode +interrupt()are what let you steer a running agent — that's the load-bearing capability the whole tool rests on. - TUI: Ink (React for the terminal) — focus-switch layout.
- Isolation: one
git worktree+ branch per worker; sequential merge back.
Key modules: src/core/agent.ts (steerable session wrapper), orchestrator.ts
(state machine + scheduler + bus), planner.ts / decompose.ts /
worktrees.ts / store.ts, and src/ui/*.
Requirements
- Node 20+ and
git. - Claude Code authentication: an existing
claudelogin orANTHROPIC_API_KEY.
Install & run
npm install
npm run build
node dist/cli.js # or: npm link → dogukan
# work in another repo:
node dist/cli.js --repo /path/to/your/projectDev (no build step):
npm run devKeys & commands
Tab/Shift-Tab— switch focused agentCtrl-C— interrupt the focused agent (press twice to quit)/loop— decompose plan and start the swarm/merge— merge agent branches back/focus N,/broadcast <msg>,/pause [N],/resume [N],/agents,/help,/quit
Configuration
Optional .dogukan/config.json in the target repo (all fields have defaults):
{
"model": "claude-opus-4-8",
"workerModel": "claude-opus-4-8",
"maxConcurrentAgents": 4,
"permissionMode": "acceptEdits",
"worktreeBase": ".dogukan/worktrees"
}To cut cost while iterating, set "workerModel": "claude-sonnet-4-6" and
"maxConcurrentAgents": 2.
Tests
npm test # vitest — uses a mocked SDK (no tokens) + a temp git repo
npm run typecheckStatus / known simplifications
- A worker reaching a turn boundary counts as its slice "complete" for scheduling (frees a concurrency slot and unblocks dependents). You can keep steering it afterward; acceptance criteria aren't auto-verified yet.
- Merge conflicts are surfaced for manual resolution (no auto-resolver agent yet).
- Off-focus agents update status live; their full transcript is read when focused.
