$ wcode --agents

wcode

A coding agent for the terminal, built around teams and workflows — not a single agent that fires off opaque subagents.

Declare a team and a task DAG; the orchestrator delegates, and every member stays addressable and controllable live — peek at its work, ask it a question, or stop it, without waiting for it to finish.

Four Rust crates, ~52,000 lines: a ~10k-line kernel (wcode-harness), a socket protocol (wcode-protocol), a full-screen TUI (wcode-tui), and a thin CLI (wcode-cli). One binary over any OpenAI-compatible endpoint.

Install GitHub

4crates
~52klines of Rust
19tools
1,000+tests
4prebuilt targets
MITlicensed
orchestrator (root) plans · delegates · stays in control spawn · message · member status / ask / cancel explorer read-only · maps the seam builder edits · implements reviewer reads the diff · verifies report back — every run end
Each member is its own session, addressable by name. Watch it, question it, or stop it — mid-run.
#1 explore explorer #2 implement builder #3 verify reviewer · gate deps deps reject → re-opens #2
A real DAG, not a to-do list: deps edges, a gate, and a reject that re-opens the work it judges.

Teams and workflows, first-class

A team, not a subagent

A typical agent spawns a subagent for a task and blocks until it returns one string — you can't see it, steer it, or stop it, and the plan is whatever the model improvised. wcode makes every worker a first-class member of a declared team.

a normal subagent flow wcode
while it runs a black box — you wait for one return value member status peeks its work, ask questions it, cancel stops it
control none — no interrupt, no redirect message steers it at the next turn; member cancel kills a stuck run
the plan improvised by the model, unenforced a declared task DAG — deps edges, gates, rework caps, a scheduler
verification a hope in the prompt ("please review") a gate edge — a reject re-opens the work; a hook refuses an unverified completion
blocking the parent turn blocks until it returns async — the orchestrator keeps going and is woken by the worker's report (even on failure)
the worker inherits everything; context discarded own model / role / tools / read-only / effort / provider; a persistent session
where it runs in-process only in-process or across a socket — a member on another machine is reached the same way
in the UI one collapsed tool result its own surface + a live sidebar row (state + current action)

A single agent is still one flag away — teams are opt-in (--agents).

An orchestrator, delegating

$ wcode --agents --config .wcode/team.toml
# your team · explorer (read-only) · builder · reviewer

❯ implement the retry policy, then have it reviewed
⚙ message(explorer) → "map the retry seam"          ✓ done
⚙ task(create) #1 explore → #2 implement → #3 verify
⚙ message(builder)  → "#2 implement"                ● running
⚙ member(builder)   → "what are you on?"            ✓ 1 line
⚙ message(reviewer) → "#3 review the diff"          ○ queued

read · grep/find · bash · edit — content-addressed, token-lean

What's in the box

19 tools, one small kernel

toolwhat it does
readfile contents as ANCHOR│line — the 5-char anchor is a line's address and the edit target
edit · editsreplace an anchor range; or a whole batch of ranges, atomically, in one file
replaceexact-string substitution for quick unique edits
writecreate or overwrite a file, byte-for-byte
grep · findregex search and glob listing; hits carry anchors, straight into edit (both respect .gitignore)
ast_search · ast_editstructural search and rewrite via ast-grep
session_searchsearch this session, or across every session on disk
bash · bgsh -c with a timeout and Ctrl-C kill; big output spills to a file. Background a long command and list/wait/kill it
webfetchone GET; HTML reduced to readable text; bounded
todo · taskthe model's own checklist, streamed to the UI; and the shared task DAG (root-only)
spawn · message · peers · memberthe team: define a member, message it by name, list the roster, and inspect or stop a run mid-flight

Install

  1. Homebrew

    brew tap WeiNyn/wcode https://github.com/WeiNyn/wcode
    brew install wcode
  2. crates.io

    cargo install wcode-cli
  3. Prebuilt binaries

    Linux (x86_64, aarch64) and macOS (Intel, Apple Silicon) tarballs — with a sha256 — are attached to each release.

Quickstart

~/.config/wcode/config.toml:

model = "gpt-4.1"                          # required
base_url = "https://api.openai.com/v1"     # optional; any OpenAI-compatible endpoint
api_key = "sk-..."                         # optional
wcode -p "explain this repo"   # one-shot
wcode                          # start the TUI
wcode --agents                 # start with a team + workflow