Skip to content

Quickstart

The fastest path is prompt mode: give a plain-English task and let warden handle the rest. No repo, no flags.

Terminal window
warden start "review the auth module for security issues"
# spawned agent-a1b2 (classifying…) — attach with `warden attach agent-a1b2`

What just happened:

  • A new agent got an ID like agent-a1b2 and is launched in the directory you ran the command from (your “master shell” cwd) — no per-agent directory is created.
  • It’s running claude on 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:

Terminal window
warden ls # see it in the list
warden status agent-a1b2 # full detail + event history
warden tail agent-a1b2 # recent terminal output
warden send agent-a1b2 "also check the session cookie handling"
warden attach agent-a1b2 # drop into its terminal (Ctrl-b d to detach)
warden done agent-a1b2 # tear it down when finished

That’s the whole loop. Everything else is variations on it.

start ──▶ spawning ──▶ working ⇄ idle ⇄ waiting_for_input ──▶ done
└─▶ errored / orphaned

Status is driven by Claude Code lifecycle hooks plus the daemon’s poller. You don’t set it manually.

Ad-hoc investigation (prompt mode):

Terminal window
warden start "find and fix the flaky test in the payments suite"
warden ls
warden tail <id>
warden send <id> "skip the integration tests for now"
warden done <id>

Ticketed development (managed worktree):

Terminal window
warden start PROJ-350 --type development # worktree + branch
warden status PROJ-350
warden attach PROJ-350 # jump in when needed
warden done PROJ-350 # guarded teardown

Reviewing a PR:

Terminal window
warden start --type pr-review --pr 1234
warden tail prreview-...
warden done prreview-...