agent-manager

Docs · Sessions and groups

Sessions and groups

Every agent is a real tmux session with its own directory, command and environment. Quit the manager and they keep working; close the laptop lid and they are still there.

Killing without losing the row

x ends a session that is holding RAM you want back, and on a group row it ends every live session under it. X ends every live session in view. Each asks to confirm first, and what it ends is the tmux session, not the record: the row stays in the tree, marked dead, with its name, group and conversation id intact.

Reviving the same conversation

v relaunches a dead session under its old id, keeping its name, group and history. When the manager holds that session's own conversation id, revive resumes that exact conversation through the tool's resume_by_id_command:

resume_by_id_command
claude --resume {id}
codex resume {id}
opencode --session {id}
grok --resume {id}
gemini --resume {id}

The id arrives one of two ways:

FieldHow the id is obtained
session_id_flagThe tool launches under an id the manager mints.
session_storeThe tool mints its own, and a capturer reads it back (codex, opencode).
Without an id Revive falls back to revive_command (claude --continue), which resumes the directory's most recent conversation, and the manager says so in the status line, since sessions sharing a directory would otherwise land on the wrong one.

On a group row v revives everything dead under it, and V revives everything dead in view. Both revive what they can and name the first failure rather than stopping.

Groups are a tree

Groups are paths like backend/api/auth, forming a tree of unlimited depth, and sessions live at any node including the root.

KeyAction
gCreate a subgroup inline.
enterFold a subtree. F folds or unfolds everything.
eHide or restore empty groups.
rEdit a group's name and default path.
K / JReorder sessions among their siblings, or whole groups among theirs. The order persists.
mMove a session to another group.
a / uArchive a session or a whole subtree, and restore it. Restoring un-archives whichever ancestors it needs.
tToggle the archived view.

Sessions name themselves

A session spawned without a name gets a placeholder like claude-a1b2, and its first prompt opens by asking the agent to run agent-manager rename once, with a short name for the broad feature it is working on rather than a single subtask. The directive also tells the agent not to rename again unless you ask.

When the first prompt cannot carry the directive, because it is a /slash command or there is no prompt at all, the manager sends it as its own message once the tool's input box appears. The subcommand drops the name into a per-session file, and the manager picks it up on the next poll.

Names you set are kept A session you named yourself is never renamed by its agent. The first prompt only notes that agent-manager rename is available later if you ask for it.