Active Agents Panel
Workflow UI is enabled by default. Start Prowl with
PROWL_WORKFLOW_UI=0to hide its UI and skill row; CLI workflow and skill commands remain available. The switch is read at process startup.
A live list of every running agent across all worktrees, with status and one-click jump-to-agent. Your mission-control roster.
Keywords:active agentsagents panelrunning agentsstatus listworkingblockeddoneidlejump to agentroster
What it is#
A collapsible panel at the bottom of the left sidebar that lists every agent currently detected across all worktrees/tabs/panes, in real time. Each row shows the agent (Claude, Codex, …), its repository/branch context, and a status pill. Click a row to jump straight to that agent’s pane.
Toggle: ⌘⌥P (toggle_active_agents_panel), the sidebar footer button, or
Command Palette → “Toggle Active Agents Panel”.
What each row shows#
[icon] AgentName · RepositoryName [status pill]
pane title or branch (secondary)
- Icon — the detected command/agent icon. Aliases such as
oh-my-piuse their canonical runtime icon; unknown wrappers fall back to the agent icon, then a sparkle. - Title — detected command/agent name + repository (repo color-coded);
command aliases such as
ompare shown directly. Panes Prowl launched from an agent profile show the profile’s display name instead (frozen at launch). - Subtitle — the agent’s pane title (if
showActiveAgentTabTitles) or branch name. The pane title is the surface’s own terminal title, falling back to the tab title, so agents in different splits of one tab keep distinct subtitles. Rapid title animation is coalesced to at most one visible update per second; status, session, directory, and other row changes still appear immediately. - Status pill — one of:
| Status | Meaning | Look |
|---|---|---|
| Working | actively processing | orange, animated indicator |
| Blocked | waiting for you (a prompt) | red |
| Done | finished, not yet seen | blue |
| Idle | nothing running / seen | grey |
Rows appear in the order agents are first detected. (See
agent-detection for how these states are determined.)
A row whose pane is bound to an active workflow run replaces its subtitle with
in <workflow> · <role> for the life of the run.
Interactions#
- Click a row → focuses that worktree + tab + pane and brings Prowl forward. A Done row downgrades to Idle once viewed in the active, visible Prowl window. Internal focus changes while the window is inactive do not clear the completion.
- Right-click a row for the context menu:
- Run Workflow ▸ — one entry per runnable workflow visible to the
agent’s worktree; starts it with this pane fixed as the
currentrole’s source (opening the start sheet when something needs a decision). Shown only when at least one runnable workflow exists. See workflows. - Mark as Read — clears the pane’s unread notifications without switching to it.
- Copy Path / Reveal in Finder — the agent’s working directory (or its owning worktree’s directory when the agent hasn’t reported one).
- Copy Session Path / Reveal Session in Finder — the on-disk session
log of the agent’s native session (e.g. Claude Code’s
~/.claude/projects/<encoded-cwd>/<session-id>.jsonl). Shown only when Prowl has resolved the session to a file (see agent-detection); agents with server-side or store-only sessions (e.g. Amp threads) don’t offer it.
- Run Workflow ▸ — one entry per runnable workflow visible to the
agent’s worktree; starts it with this pane fixed as the
- Keyboard navigation:
⌥⌃↓next agent,⌥⌃↑previous agent (wraps). - Resize the panel by dragging its top edge (height is remembered).
- Auto-show: if
autoShowActiveAgentsPanelis on and the panel is hidden, a newly detected agent opens it automatically.
Empty state#
When nothing is running: “New agents will appear here”.
The top-right button toggles Show Agent Island, using the same persisted setting as Settings → Agents → Display. The top-inset icon uses the primary theme color when enabled and neutral gray when disabled. Its tooltip names the next action. Holding Command replaces the button with the existing agent navigation shortcut hint; customized bindings keep the existing hint-suppression behavior.
Settings#
Settings → Agents → Display:
autoShowActiveAgentsPanel— pop the panel open when an agent appears.showActiveAgentTabTitles— show each agent’s pane title (surface title, falling back to the tab title) instead of its branch.showActiveAgentStatusInShelf— show detected agent status markers on Shelf tab icons.- Panel height and hidden/shown state are persisted automatically.
- Agent Island projects this same roster at the top of a selected display; its state counts and Blocked/Done callouts do not introduce separate state or read logic.
Relationship to other features#
- Agent detection (agent-detection) feeds this panel.
- CLI (cli) exposes the same roster through
prowl agentsandprowl agents --json. The command is read-only; text output shows a currentpNpane handle, while JSON keeps the canonicalpane.id. Use either withprowl focus --pane,prowl read --pane, orprowl send --panefor follow-up actions. - Notifications (notifications) are driven by a separate signal — terminal bell / OSC desktop notifications and command-finished events — which usually coincides with, but is not the same as, a detected finish.
- Canvas (canvas) is the spatial counterpart — cards light up on that same notification/unread signal, not on the detected status itself.
- Shelf (shelf) mirrors detected agents as status markers on
each owning tab icon; clicking a marked tab uses the same jump-to-agent behavior
as clicking a panel row. This can be turned off with
showActiveAgentStatusInShelf.
Gotchas for agents#
- “Blocked” is the actionable state — it means an agent is waiting on a human (a permission/confirmation prompt). Surface these first.
- This panel reflects detected agents; detection is best-effort (see
agent-detection). For the same detected roster in
automation, use
prowl agents --json. For an all-pane inventory, including non-agent shells, useprowl list --json.