| name | agent-workspaces |
| description | Operate the agent fleet — create, start, stop, and message persistent agent workspaces; choose the right isolation tier; pause work safely; keep sessions resumable. Use when asked to spin up an agent, message another agent, pause or resume the fleet, set up a confined workspace, or when a workspace is stuck, missing, or has lost its context. |
Agent workspaces
A workspace is a persistent agent: a tmux session (agent-<name>) + a descriptor
(~/.agents/projects/<name>.env) + one conversation that resumes forever via a fixed
SESSION_ID. Restarts, reboots, and account switches all resume that same conversation.
Full docs ship with this kit: docs/OPERATING.md (day-to-day), docs/ISOLATION.md (the tiers),
docs/MESSAGING.md, docs/ACCOUNTS.md, docs/ARCHITECTURE.md.
Commands
agentctl status
agentctl new <n> --root PATH --up
agentctl new <n> --confined "Name"
agentctl login <n>
agentctl up|stop <n>
agentctl down <n>
agentctl attach <n>
agentctl send <to> "text"
agentctl read <n> [lines]
agentctl msglog [N] [--from|--to]
agentctl flush <n> | kick <n>
Choosing an isolation tier
| Work | Tier | How |
|---|
| Yours; cross-agent visibility is fine | project | agentctl new x --root ~/work/x --up |
| Someone else's, regulated, or must not leak | confined | agentctl new x --confined "Name" --up |
| Must run on other hardware | remote | AGENTS="claude-remote" + SSH="user@host" |
Confinement is a namespace, not a promise. An unconfined agent asked for a fact it was never told
will grep the filesystem — including other agents' transcripts — because that is the cheapest way to
answer. If work must not leak, a prompt instruction will not save you; a bwrap namespace will.
Rules that keep a fleet healthy
When something is wrong
| Symptom | Do |
|---|
| Agent idle, never picked up a message | agentctl kick <n> — input stranded, unsubmitted |
| Agent came back but isn't working | It idles at the prompt until spoken to — agentctl send it |
| Messages "sent" but no effect | agentctl msglog is the record; don't debug by eyeballing panes |
| Workspace missing after reboot | Needs AUTOSTART="yes"; agentctl up <n> |
| Lost context / "what was I doing?" | Its STATE.md — and enable session-guard.timer |