Fleet Manager

SkillAI & models

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.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the Fleet Manager skill

What this skill tells your AI

The instructions your AI receives, as published by harperreed/dotfiles in .claude/skills-archive/fleet-manager/SKILL.md and read by ahel’s review.

Manage a fleet of AI coding agents running in tmux panes using the control MCP tools.

The Loop

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:

StatusSignalWhat it means
WorkingRecent tool calls, thinking, actively producing outputLeave it alone
Needs inputAsked a question, waiting for user response, permission promptHuman needs to respond
StuckRepeated errors, retrying same thing, no progress in last few messagesMay need redirection
IdleAt the prompt, no recent activity, conversation endedAvailable for new work
DoneCompleted its task, committed, reported backCan 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 saysWhat 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

Signals

GitHub stars
332
Forks
47
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
fleet-manager
Source
github.com/harperreed/dotfiles