This is the published mirror of FEATURES.md
in the repository — the authoritative inventory of every warden capability and
which surface can drive it.
warden exposes its features across five surfaces — the CLI (warden, aliased
wd), MCP (72 structured tools for an orchestrating agent), the /warden
skill, the web GUI, and the TUI cockpit.
Coverage legend: ✓ supported · — not applicable / not present on that surface ·
CLI-only features are marked and explained (host/process/interactive/secret
operations that are meaningless or unsafe over MCP/web).
Spawn, inspect, message, and tear down per-task coding agents (Claude Code by
default; each in its own tmux session, most in a git worktree).
| Feature | CLI | MCP | Skill | Web | TUI | Docs |
|---|
| Spawn an agent (ticket / prompt / typed) | start | spawn_agent | ✓ | ✓ | n | spawn-and-watch |
| Prompt-spawn (no repo, auto-typed) | start "<prompt>" | spawn_agent | ✓ | ✓ | n | spawn-and-watch |
| List agents | ls | list_agents | ✓ | ✓ | list | fleet-operations |
| Agent status / detail | status | get_agent | ✓ | ✓ | i | fleet-operations |
| Tail recent output | tail | get_agent_output | ✓ | ✓ | view | spawn-and-watch |
| Send text into an agent | send | send_to_agent | ✓ | ✓ | — | spawn-and-watch |
| Digest (catch-up summary) | digest | digest | ✓ | ✓ | i | rotation-digests |
| Attach to the live session | attach | CLI-only (interactive tmux) | ✓ | ✓ (terminal) | enter | spawn-and-watch |
| Adopt an existing Claude session | adopt | adopt_agent | ✓ | — | — | agents-lifecycle |
| Tear down (umbrella) | stop | stop_agent | ✓ | ✓ | x | fleet-operations |
| Finish cleanly (commit/push guard) | done (= stop --keep-worktree) | terminate_agent (force) | ✓ | ✓ | x | lifecycle-and-rails |
| Terminate | terminate (= stop --keep-record --keep-worktree) | terminate_agent | ✓ | ✓ | x | lifecycle-and-rails |
| Restore an orphaned agent | restore | restore_agent | ✓ | ✓ | — | agents-lifecycle |
| Recover an archived-but-alive agent (tombstone-reaper safety net) | recover | recover_agents | ✓ | — | — | agents-lifecycle |
| Delete / hard-purge | delete (= stop --keep-worktree, record only) | delete_agent | ✓ | ✓ | D | fleet-operations |
| Rename an agent | adopt --name / spawn name | spawn_agent (name) | ✓ | ✓ | — | fleet-operations |
| Tags (group / filter) | start --tag, ls --tag | spawn_agent (tags) | ✓ | ✓ | — | fleet-operations |
| Model selection | start --model / config | spawn_agent (model) | ✓ | ✓ | — | env-vars |
| Agent role (built-in persona + default flags) at spawn | start --role | spawn_agent (role) | ✓ | ✓ (Role select) | ctrl+r (new-agent) | agent-roles |
| Switch a running agent’s role (relaunch re-injects) | set-role | set_role | ✓ | — | — | agent-roles |
| List the built-in role catalog | role list | list_roles | ✓ | ✓ (Role select) | list | agent-roles |
| List the backend’s live model menu | models (--backend, --json) | CLI-only (agent-native; local worktree exec, no daemon round-trip) | ✓ | — | — | backend-superpowers |
| Backend selection (Claude / Aider / OpenCode / Codex / Crush / Goose / Cursor / Antigravity) | start --backend | spawn_agent (backend) | ✓ | — | — | agent-backends — only claude is stable; codex and antigravity are β beta; aider, opencode, crush, goose, and cursor are 🧪 experimental |
Handoff — delegate (new / --to existing) or retire self (--retire) | handoff | handoff_agent | ✓ | — | — | rotation-digests |
Self-rotation (retire → successor) — alias for handoff --retire | rotate | rotate_agent | ✓ | — | — | rotation-digests |
| Fork an agent’s session into a new managed agent (Codex-only; branches the conversation, source keeps running; dirty-tree carry) | fork | fork_agent | ✓ | — | — | backend-superpowers |
| Feature | CLI | MCP | Skill | Web | TUI | Docs |
|---|
Task --type (development, analysis, spike, pr-review, code, docs, website, debug-ci, tests, other) | start --type | spawn_agent (type) | ✓ | ✓ | — | worktrees-task-types |
| Managed worktree per agent | automatic | automatic | ✓ | ✓ | — | worktrees-task-types |
| Scratch worktree (analysis/spike) | start --worktree | spawn_agent (worktree) | ✓ | ✓ | — | worktrees-task-types |
| In-repo opt-out (write-agent) | start --in-repo | spawn_agent (in_repo) | ✓ | ✓ | — | worktrees-task-types |
| List worktrees | worktree list (alias worktree ls; bare worktree) | list_worktrees | ✓ | — | — | worktrees-task-types |
| Prune orphaned worktrees | worktree prune (alias prune) | prune_worktrees | ✓ | — | — | fleet-operations |
| Remove one agent’s worktree | remove-worktree (= stop --keep-record, worktree only) | remove_worktree | ✓ | ✓ | — | fleet-operations |
| Feature | CLI | MCP | Skill | Web | TUI | Docs |
|---|
| Create from YAML spec / template | pipeline create | create_pipeline | ✓ | ✓ | — | pipelines |
| List pipelines | pipeline list | list_pipelines | ✓ | ✓ | view | pipelines |
| Show one pipeline’s jobs/output | pipeline show | show_pipeline | ✓ | ✓ | i | pipelines |
| Start | pipeline start | start_pipeline | ✓ | ✓ | — | pipelines |
| Cancel | pipeline cancel | cancel_pipeline | ✓ | ✓ | — | pipelines |
| Pause | pipeline pause | pause_pipeline | ✓ | ✓ | — | pipelines |
| Resume | pipeline resume | resume_pipeline | ✓ | ✓ | — | pipelines |
| Retry a failed job | pipeline retry | retry_pipeline_job | ✓ | ✓ | — | pipelines |
| Edit a pending job | pipeline edit-job | edit_pipeline_job | ✓ | — | — | pipelines |
| Emit a job’s handoff output | pipeline emit | emit_pipeline_output | ✓ | — | — | pipelines |
| Delete a pipeline record | pipeline delete | delete_pipeline | ✓ | — | — | pipelines |
| Validate a spec (no daemon) | pipeline validate | validate_pipeline | ✓ | — | — | pipelines |
| List built-in templates | pipeline list-templates | list_pipeline_templates | ✓ | — | — | pipelines |
| Feature | CLI | MCP | Skill | Web | TUI | Docs |
|---|
| Shared-context set | ctx set | ctx_set | ✓ | ✓ | — | shared-context-messages |
| Compare-and-set (claim a task) | ctx cas | ctx_cas | ✓ | — | — | shared-context-messages |
| Append | ctx append | ctx_append | ✓ | — | — | shared-context-messages |
| Get / list / delete | ctx get/list/del | ctx_get / ctx_list | ✓ | ✓ | — | shared-context-messages |
| Directed message to an inbox | msg send | send_message | ✓ | ✓ | — | shared-context-messages |
| Read inbox | msg inbox | read_inbox | ✓ | ✓ | — | shared-context-messages |
| Wait for a message (park/wake) | msg wait | wait_for_message | ✓ | — | — | shared-context-messages |
| File-conflict detection | collab conflicts | get_collaboration_status | ✓ | ✓ | — | shared-context-messages |
| Who is editing a file | collab who-is-editing | who_is_editing_file | ✓ | ✓ | — | shared-context-messages |
Project memory — show/edit .warden/memory.md | memory (--raw, --path, --edit) | CLI-only (local, no daemon round-trip) | ✓ | — | — | project-memory |
Project memory — projected into every spawn (memory.inject) | config (memory.inject, default on) | automatic (all backends but aider) | ✓ | — | — | project-memory |
Project memory — auto-curation from digests (memory.curate) | config (memory.curate, default off) | automatic on completion (proposes unverified entries to the working tree; never commits) | ✓ | — | — | project-memory |
Project memory — local grounding in the REPL (memory.ground) | repl → /memory <q> (/mem, /ask) + project_memory tool | REPL-only (local model, $0, no cloud round-trip) | ✓ | — | — | project-memory |
| Feature | CLI | MCP | Skill | Web | TUI | Docs |
|---|
| List pending approvals | approvals | list_approvals | ✓ | ✓ | cockpit | approvals-supervised |
| Answer an approval | approve | approve | ✓ | ✓ | a | approvals-supervised |
| Auto-approve toggle | auto-approve <id> on|off | set_auto_approve | ✓ | ✓ | — | approvals-supervised |
| Auto-approve rule policy (tool/glob/regex/paths, per-agent, identical-prompt circuit breaker) | auto-approve rules|allow|deny|clear|enable|disable | set_auto_approve_policy | ✓ | ✓ | — | approvals-supervised |
| Set permission mode (running agent) | set-permission-mode | set_permission_mode | ✓ | ✓ | — | approvals-supervised |
| Supervised spawn (gate every prompt) | start --supervised | spawn_agent (supervised) | ✓ | ✓ | — | approvals-supervised |
| Feature | CLI | MCP | Skill | Web | TUI | Docs |
|---|
| Create schedule (cron / at; agent or pipeline) | schedule create | create_schedule | ✓ | — | — | scheduling |
| List schedules | schedule list | list_schedules | ✓ | — | — | scheduling |
| Delete schedule | schedule delete | delete_schedule | ✓ | — | — | scheduling |
| Feature | CLI | MCP | Skill | Web | TUI | Docs |
|---|
| Snapshot worktree + transcript | snapshot create | snapshot_create | ✓ | — | — | snapshots |
| List snapshots | snapshot list | snapshot_list | ✓ | — | — | snapshots |
| Restore a snapshot (rails) | snapshot restore | snapshot_restore | ✓ | — | — | snapshots |
| Feature | CLI | MCP | Skill | Web | TUI | Docs |
|---|
| Live resource metrics | stats | get_metrics | ✓ | ✓ | — | observability |
| Metrics history (time-series) | stats --history | get_metrics (history) | ✓ | ✓ | — | observability |
| Memory-pressure gate / headroom | doctor / spawn gate | get_pressure | ✓ | ✓ | — | observability |
| Fleet insights (parallelizable pairs, etc.) | insights | insights | ✓ | — | — | insights |
| Cost umbrella (spend + savings in one) | cost (cost spend / cost savings) | spend + savings | ✓ | — | — | savings |
| Token-savings ledger | savings (alias cost savings) | savings | ✓ | — | — | savings |
| Cost governance ($ spend rollup) | spend (alias cost spend) | spend | ✓ | ✓ | $ in ls | savings |
| Budget gate (soft $ cap on spawn) | config (tokens.budget_gate) / spawn gate | automatic | ✓ | — | — | observability |
| Full-text search | search | search | ✓ | ✓ | — | cli |
| Browse archived agents | history | history | ✓ | ✓ (archive) | — | cli |
| Action audit trail | audit log | audit_log | ✓ | — | — | observability |
| Event stream (SSE) | — | — | — | ✓ | — | observability |
| Desktop / webhook / Slack notifications | config (notify.enabled, notify.webhook_*) | automatic | ✓ | ✓ | — | observability |
Context/token guard (gauge, alert, auto-/compact) | config (tokens.guard) | automatic | ✓ | ✓ | gauge | observability |
Force-compact a busy critical agent (interrupt→/compact→resume) | force-compact (config tokens.force_compact) | set_force_compact | ✓ | — | — | observability |
| Crash / anomaly detection (OOM, loop, pre-crash) | config | automatic | ✓ | ✓ | — | observability |
| Feature | CLI | MCP | Skill | Web | TUI | Docs |
|---|
| Export session metadata | export | export_sessions | ✓ | — | — | cli |
| Import session metadata | import | import_sessions | ✓ | — | — | cli |
| Save a spawn preset | preset save / library save-preset | CLI-only (local config authoring) | ✓ | — | — | cli |
| List presets | preset list | CLI-only | ✓ | — | — | cli |
| Save a prompt template | prompt-template save / library save-prompt | CLI-only (local config authoring) | ✓ | — | — | cli |
| List prompt templates | prompt-template list | CLI-only | ✓ | — | — | cli |
| Fill a prompt template into a spawn | start --prompt-template <name> --set VAR=value | CLI-only | ✓ | — | — | cli |
| Browse presets + prompt templates + pipeline templates (one umbrella) | library list | library_list | ✓ | — | — | cli |
| Feature | CLI | MCP | Skill | Web | TUI | Docs |
|---|
| List registered plugins | plugin list | list_plugins | ✓ | — | — | plugins |
| Custom task types via plugins | config | enforced at spawn | ✓ | — | — | plugins |
| Lifecycle hook events (pre/post spawn, commit, check, teardown) | config | enforced | ✓ | — | — | plugins |
The browser GUI (served by the daemon) is a URL-routed shell (/cockpit
home · /tui · /pipelines · /metrics · /archive · /others · /agent/<id>
— deep-linkable, back/forward, shareable). It provides: the Cockpit home
(Fleet header + agent grid), a full-screen TUI launcher (top-bar ▢ TUI
button) that streams the literal warden tui into the browser, a Pipelines
tab with a live DAG, a Metrics
tab (per-agent and fleet-total CPU/memory, per-agent context, fleet size,
tokens saved — two-column on desktop, single-column on mobile), an Archive
tab, the Others catch-all (attention queue, conflicts, activity; sits last),
in-browser attach terminals, a header-button Context & Messages overlay,
spawn modal, bulk actions, keyboard shortcuts, and theming.
| Feature | Where | Docs |
|---|
| URL routing (deep links, back/forward) | all routes | web-mission-control |
| Agent grid + Fleet header / busy-idle badges | Cockpit (/cockpit, home) | web-mission-control |
| Attention queue / approvals | Others (/others) | web-mission-control |
| Pipelines tab + live DAG | Pipelines (/pipelines) | web-mission-control |
| Metrics: per-agent + fleet-total CPU/mem, per-agent context, fleet size, tokens saved (2-col responsive) | Metrics (/metrics) | observability |
| Archive (history) | Archive (/archive) | web-mission-control |
| In-browser attach terminal | Agent (/agent/<id>) | web-mission-control |
Full-screen TUI launcher — the three-pane cockpit streamed edge-to-edge into the browser (same panes, shortcuts, real shells & live agent sessions; Ctrl+Q exits); self-healing (survives daemon restarts; a wedged session is auto-rebuilt, or force one with warden tui --rebuild-web-cockpit) | top-bar ▢ TUI button (/tui) | web-mission-control |
| Per-agent backend logo on cards + group-by Agent (claude/aider/…; empty ⇒ claude) | Cockpit (/cockpit) | agent-backends |
| Context & messages | header 🗒 overlay | web-mission-control |
Spawn modal (+ New agent) — incl. a Role dropdown (built-in role picker, defaults general) | header button | agent-roles |
| Bulk actions | Bulk action bar | web-mission-control |
| Conflicts panel / activity feed | Others (/others) | web-mission-control |
| Keyboard shortcuts + help | global | web-mission-control |
REST API + OpenAPI (/api/docs) | daemon | api-openapi |
A terminal mission-control. Keys: n spawn · enter attach · i info/inspector ·
a approve · x terminate · D delete · d digest · r refresh · f filter ·
g/G top/bottom · o/p panes · s sort · c context · tab switch view ·
? help · q quit. Includes a pipeline view and per-job info.
| Feature | Where | Docs |
|---|
| Agent list + live status (incl. per-agent backend token; empty ⇒ claude) | main pane | tui-cockpit |
Inspector (i) — agent & pipeline detail | inspector | tui-cockpit |
Approvals cockpit (a) | cockpit | tui-cockpit |
Digest (d) | inspector | tui-cockpit |
| Pipeline view | pipeline pane | tui-cockpit |
Agent sub-trees (spawned agents nest under parent; h/l collapse; tombstone on parent delete) | main pane | tui-cockpit |
| Spawn / attach / terminate / delete | keybindings | tui-cockpit |
Role picker in the new-agent form (ctrl+r; built-in catalog, defaults general) | new-agent form | agent-roles |
| Shift-to-select (native copy under tmux mouse mode) | help hint | tui-cockpit |
Native tmux window when launched inside tmux (no nesting; auto via $TMUX) | tui --tmux-native | tui-cockpit |
| Feature | CLI | MCP | Skill | Web | TUI | Docs |
|---|
| MCP server (stdio) | mcp | n/a (is the server) | ✓ | — | — | mcp-and-skill |
/warden Claude skill | shipped in skills/ | drives MCP/CLI | ✓ | — | — | mcp-and-skill |
| Interactive REPL | repl (aliases interactive, i) | CLI-only (interactive REPL) | — | — | — | repl |
↳ deterministic / commands (no model) | /agents, /spawn, /tell, … /help | — | — | — | — | repl |
↳ line editor: history, reverse-search, live / menu, Tab completion, colour | readline-backed | — | — | — | — | repl |
| ↳ guided argument forms (pick-lists + free text, LLM pre-fill) | bare /spawn, /spawn+ <prompt> | — | — | — | — | repl |
These operate on the host, the daemon process, the local shell, or the bearer
secret — they are intentionally not exposed over MCP or web, because doing so
would either be meaningless (process/host control) or a security smell (handing
out / rotating the very token that guards the MCP and HTTP channels).
| Feature | CLI | Why CLI-only | Docs |
|---|
| Run / manage the daemon | daemon | process control on the host | install |
| Bearer token generate / show / rotate (+ read-only token) | token | the secret that protects every other surface; show --readonly for the view-only WARDEN_READONLY_TOKEN | remote-access |
| Local-LLM model picker (memory-ranked) | llm suggest | reads host hardware to size the orchestrator model | repl |
| Configuration view / init / path | config | local file authoring | env-vars |
| Health / environment doctor | doctor | host diagnostics | troubleshooting |
| Install missing dependencies | setup | installs host packages (brew/apt/dnf/pacman + official installers) | install |
| First-run tutorial | tutorial | interactive walkthrough | quickstart |
| Shell completion | completion | shell integration | install |
| Hook entry points (guards) | hook / *-guard | invoked by Claude Code hooks | lifecycle-and-rails |
| Version | version | — | — |
Every fleet/data feature is reachable over MCP (72 tools, including the
umbrella stop_agent). The only
CLI-exclusive features are the host/process/interactive/secret commands in
§15 (plus interactive attach/repl, the local-config preset /
prompt-template authoring commands, and the agent-native, worktree-local
review / models verbs — they exec in the agent’s worktree with no daemon
round-trip, so they have no MCP twin by design), which are
CLI-only by design. New parity tools added for full coverage: digest,
get_metrics, savings, spend, search, history, audit_log, list_worktrees,
list_plugins, get_pressure, set_auto_approve, set_auto_approve_policy,
set_permission_mode,
prune_worktrees, export_sessions, import_sessions, rotate_agent,
handoff_agent, pause_pipeline, resume_pipeline, retry_pipeline_job,
edit_pipeline_job, emit_pipeline_output, delete_pipeline,
validate_pipeline, list_pipeline_templates, library_list,
create_schedule, delete_schedule, fork_agent, set_role, list_roles.