Quickstart
The fastest path is prompt mode: give a plain-English task and a role (--role is required; general is the plain choice) and let warden handle the rest. No repo needed.
warden start --role general "review the auth module for security issues"# spawned agent-a1b2 (classifying…) — attach with `warden agent attach agent-a1b2`What just happened:
- A new agent got an ID like
agent-a1b2and is launched in the directory you ran the command from (your current shell’s cwd) — no per-agent directory is created. - It’s running
claudeon your prompt inside a tmux window. - The type shows as
classifying…for a moment, then the daemon labels it (e.g.analysis) automatically.
Now watch and interact:
warden ls # see it in the listwarden status agent-a1b2 # full detail + event historywarden agent tail agent-a1b2 # recent terminal outputwarden send agent-a1b2 "also check the session cookie handling"warden agent attach agent-a1b2 # drop into its terminal (Ctrl-b d to detach)warden agent stop agent-a1b2 --keep-worktree # tear it down when finishedThat’s the whole loop. Everything else is variations on it.
The lifecycle of an agent
Section titled “The lifecycle of an agent”start ──▶ spawning ──▶ working ⇄ idle ⇄ waiting_for_input ──▶ done └─▶ errored / orphanedStatus is driven by Claude Code lifecycle hooks plus the daemon’s poller. You don’t set it manually.
Typical workflows
Section titled “Typical workflows”Ad-hoc investigation (prompt mode):
warden start --role general "find and fix the flaky test in the payments suite"warden lswarden agent tail <id>warden send <id> "skip the integration tests for now"warden agent stop <id> --keep-worktreeTicketed development (managed worktree):
warden start --role worker --repo . PROJ-350 # worktree + branchwarden status PROJ-350warden agent attach PROJ-350 # jump in when neededwarden agent stop PROJ-350 --keep-worktree # guarded teardownReviewing a PR:
warden start --role worker --repo . --pr 1234warden agent tail prreview-...warden agent stop prreview-... --keep-worktree