● v0.5.0Linux · macOSApache-2.0

Run a team of AI coding agents from one terminal.

wdx keeps Claude Code, Codex, Cursor and Antigravity agents running in their own git worktrees, long after your terminal closes. TIDE, its Terminal IDE, shows all of them in one window, with their diffs, plans and code.

$ curl -fsSL https://raw.githubusercontent.com/srjn45/wdx/main/scripts/install.sh | sh
wdx tide · shop-api
Loading TIDE…
↑ ↓ Enter rowsAlt+←→↑↓ panesCtrl+] zoomCtrl+\ terminalCtrl+Space menu (C-q in TIDE)click, scroll and type anywhere

TIDE is a wide-screen tool: swipe the window sideways to see all of it.

A replica of TIDE, scripted in your browser: no AI CLI, daemon or git runs here.

Runs the AI CLIs you already use, with the same features on eachClaude CodeCodexCursorAntigravity
Inside TIDE

Every agent, worktree and plan of a project, one key away.

These are TIDE's own screens, drawn live by the same engine as the window above. Open any of them to try that screen.

The TIDE pages, screen by screen →
TIDE
You're driving.
Features

Built for a day of running agents in parallel.

Agents

Know at a glance who needs you.

wdx reads each agent's screen, so TIDE can mark every row working, waiting or idle, whichever AI CLI it runs. A question from an agent turns its row amber until you answer.

  • Agents run in the daemon: close TIDE, or the laptop lid, and they keep going
  • Child agents, restarts that resume the same session, and the context size on every row
  • Answer, steer or send to an agent from TIDE, the CLI or a script
The agents guide →
Worktrees

A branch per agent, and a diff before anything lands.

Give an agent a worktree and it works on a branch of its own. TIDE shows what each one has committed and what it has not, file by file, then lands it on main after your landing check, or opens a PR.

  • Rebase onto main when asked; conflicts go to an agent you pick
  • git is read from events, never on a timer, and never writes your index
The worktrees guide →
Plans

Split a feature into tasks, and let wdx run them.

A plan is a DAG of tasks. wdx starts an agent for each task that is ready, each in a worktree of the plan's, and lands every finished task on the plan's branch. Plans of plans land as stacked PRs.

  • Drawn the way git log --graph draws commits
  • A task that fails waits for you to retry, land or skip it
The plans guide →
doc

Docs with revisions

Designs live in wdx with a status, wip to approved, so people and agents read the same thing.

The docs guide →
--json

For scripts and AIs

Every command returns one JSON object with stable error codes, and never prompts.

The scripting guide →
$_

Terminals that stay

Shells in PTYs that outlive the daemon, with their scrollback, attachable from anywhere.

The terminals guide →
◔

Observable

Every run logged with a debug id, metrics in Grafana with one command.

The observability guide →
The CLI

TIDE for people, the same features for scripts and agents.

Agents that wdx runs learn it from wdx help agents: they make child agents, worktrees, docs and plans through wdx, so you see all of it in tide.

$ wdx agent create --name fix-auth --worktree fix-auth --aca codex
created agent fix-auth in shop-api
worktree fix-auth (new)

$ wdx agent list --json
{"agents": [{
  "name": "fix-auth", "aca": "codex",
  "state": "running", "activity": "waiting",
  "prompt": {"kind": "yes_no", "question": "Do you want to proceed?"},
  "context": {"tokens": 154210}
}]}

$ wdx worktree land --name fix-auth
landed worktree fix-auth on main
How it works

One daemon holds everything. Every window is a client.

TIDE and the CLI talk to the daemon over a Unix socket. Each terminal and agent lives in a holder process of its own, which keeps it running when the daemon restarts or is updated.

How it works, in depth →
wdx tidethe Terminal IDEwdx <command>people · --jsonscripts, agentswdx help agentsdaemonAPI over a Unix socketwdx.db · one SQLite filegit and worktree eventsone inotify instancemetrics → OpenTelemetryholderholderholderPTYclaudePTYcodexPTYzshunix socketTIDE attaches to a holder directlyholders outlive the daemon: update wdx, keep your agents
NEW IN 0.5.0Hub

Your machines, one account.

Log your machines in to a hub you run, and reach each one's agents, terminals and TIDE from any other with --node. The hub passes the connection on but cannot read it: TLS runs between the two machines, and the machine checks its own authenticator code.

  • Remote access is off on a machine until you set up its code there.
  • A project's docs can be pushed to the hub, encrypted at rest.
  • Self-hosted, for you or your organisation: a Linux server with one command, or Fly.io.
$ wdx hub login --url https://hub.example.com
logged in to https://hub.example.com as alice; this machine is node desk

$ wdx hub node list
NAME         ONLINE  LAST SEEN            VERSION  OS            ID
desk (this)  yes     2026-11-08 15:33:10  0.5.0    linux/amd64   node-1a2b3c4d
laptop       yes     2026-11-08 15:32:58  0.5.0    darwin/arm64  node-5e6f7a8b

$ wdx tide --node laptop
on node laptop
code for laptop: 492133

The hub is optional: wdx works the same without one. There is no hosted hub to sign up to; you run wdx-hub yourself.

Get started

Four commands to your first agent.

The installer puts wdx in ~/.local/bin, adds shell completions and runs the daemon as a systemd or launchd user service. wdx needs git; each agent needs its AI CLI installed.

1 · INSTALLcurl -fsSL https://raw.githubusercontent.com/srjn45/wdx/main/scripts/install.sh | sh
2 · OPEN A PROJECTwdx project open --local ~/code/api
3 · START AN AGENTwdx agent create --name fix --worktree fix
4 · SEE IT ALLwdx tide