Use when the user asks to check on agents, manage their fleet, babysit panes, see what needs attention, get a status report, or when they say "check on my agents", "what needs action", "fleet status", "babysit", "brief me". Requires the control MCP server to be registered and the daemon running.
Scanned 9/12/2026
Install to Claude Code
npx -y skills add harperreed/dotfiles --skill fleet-manager --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Fleet Manager?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/harperreed-fleet-manager)More formats (shields.io, HTML) on the badges page.
---
name: fleet-manager
description: Use when the user asks to check on agents, manage their fleet, babysit panes, see what needs attention, get a status report, or when they say "check on my agents", "what needs action", "fleet status", "babysit", "brief me". Requires the control MCP server to be registered and the daemon running.
---
# Fleet Manager
Manage a fleet of AI coding agents running in tmux panes using the `control` MCP tools.
## The Loop
```dot
digraph fleet {
"list_panes" -> "Filter to claude-code only";
"Filter to claude-code only" -> "get_pane_conversation for each";
"get_pane_conversation for each" -> "Classify each pane";
"Classify each pane" -> "Present digest to human";
"Present digest to human" -> "Human picks action";
"Human picks action" -> "Execute (send_to_pane, stop_pane, or skip)";
"Execute (send_to_pane, stop_pane, or skip)" -> "list_panes" [label="next cycle"];
}
```
## Step 1: Gather
Call `list_panes` with no filters. Then for each claude-code pane, call `get_pane_conversation` (count: 10) to get recent context.
## Step 2: Classify
Read each conversation and classify:
| Status | Signal | What it means |
|--------|--------|--------------|
| **Working** | Recent tool calls, thinking, actively producing output | Leave it alone |
| **Needs input** | Asked a question, waiting for user response, permission prompt | Human needs to respond |
| **Stuck** | Repeated errors, retrying same thing, no progress in last few messages | May need redirection |
| **Idle** | At the prompt, no recent activity, conversation ended | Available for new work |
| **Done** | Completed its task, committed, reported back | Can be stopped or given new work |
Use your judgment. Read the conversation content — don't just look at the status line.
## Step 3: Present Digest
Format as a brief table:
```
Fleet Status: 5 claude-code panes
%4 nl Working editing graph layout code
%19 tracker Needs input asking about test strategy
%20 barnstormer Idle at prompt, finished last task
%50 hex Stuck retrying failed SSH connection
%79 dot-files Done committed linting fixes
1 needs your input, 1 looks stuck. Want me to handle any of these?
```
Keep descriptions to ~5 words. The human wants a glance, not a novel.
## Step 4: Act
When the human says to act on a pane:
- **Respond to a question**: `send_to_pane` with the answer
- **Redirect a stuck agent**: `send_to_pane` with new instructions ("try a different approach — skip the SSH and test locally instead")
- **Give idle agent work**: `send_to_pane` with a new task
- **Stop a done agent**: `stop_pane`
- **Read more context**: `get_pane_conversation` with higher count (30-50)
When sending to a pane, be direct. The text you send is typed into the pane and Enter is pressed. Write it like you're talking to the agent.
## Autonomous Mode
If the human says "handle it" or "you decide":
- **Needs input**: Only respond if you can confidently answer from context. If unsure, flag it for the human.
- **Stuck**: Suggest an alternative approach via `send_to_pane`.
- **Idle**: Ask the human what to assign. Don't invent work.
- **Done**: Leave it. Don't stop unless asked.
Never stop a working agent autonomously. Never send instructions you're unsure about.
## Quick Commands
| User says | What to do |
|-----------|-----------|
| "check on my agents" | Full loop: list, classify, digest |
| "what needs attention" | Same, but only show needs-input and stuck |
| "brief me" | Full digest with one-line summaries |
| "handle the stuck ones" | Read stuck conversations, send redirections |
| "send X to the tracker agent" | `send_to_pane` using project name fuzzy match |
| "stop the idle ones" | `stop_pane` for each idle pane |
| "what's %4 doing" | `get_pane_conversation` for that specific pane |
## Prerequisites
The `control` daemon must be running and the MCP server registered. If tools aren't available, tell the user:
```
The control MCP tools aren't available. Make sure:
1. The daemon is running: control daemon start --background
2. MCP is registered in ~/.claude/settings.json
```
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!