Skip to content
Agentmart
Submit a tool

fleet-mail

Use the fleet-mail CLI for async status between fleet seats (workers → project-lead only).

Skill by kellykampen

IndexedMIT★ 1
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/kellykampen-fleet-mail

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Use the fleet-mail CLI for async status between fleet seats (workers → project-lead only). Prefer replaceable status slots over cmux mid-turn steers. Works for Pi, Claude Code, and Codex CLI via the same binary.

Use cases: sales, agent-building

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/fleet-mail

What's inside

Skill name
fleet-mail
Description
Use the fleet-mail CLI for async status between fleet seats (workers → project-lead only). Prefer replaceable status slots over cmux mid-turn steers. Works for Pi, Claude Code, and Codex CLI via the same binary.
License
MIT
Instructions
76 lines in SKILL.md · view on GitHub

Files (1)

  • SKILL.md

SKILL.md (first lines)

# fleet-mail (multi-harness)

Single backend for agent mail. **Shell out to `fleet-mail`** — do not invent a second inbox,
and do not drip status via `cmux send` into a busy lead/conductor pane.

## When to use

- Worker progress / blocker / done / ask → **owning project lead**
- Lead compact rollup → **conductor**
- Lead (or conductor) reading unread mail on **idle / cadence**, then **ack**

## Commands

```bash
# Worker → *named* lead (STATUS slot replaces prior unacked status for same ticket)
# Lead mailbox MUST equal cmux pane/tab name: <workspace_name>-project-lead
fleet-mail send \
  --from worker:<ticket-or-seat> \
  --to pi-fleet-project-lead \
  --type status \
  --ticket <TICKET> \
  --body "compact progress" \
  [--pr URL] [--head SHA]

fleet-mail send --from worker --to pi-fleet-project-lead --type <TYPE> --ticket <TICKET> --body "…"
# <TYPE> is one of: blocker, done, ask

# Lead pull (idle / cadence — not mid-tool thrash)
fleet-mail inbox --mailbox "$FLEET_LEAD_MAILBOX" --unread   # e.g. pi-fleet-project-lead
fleet-mail show  --mailbox "$FLEET_LEAD_MAILBOX" [--id ID]
fleet-mail ack   --mailbox "$FLEET_LEAD_MAILBOX" --id <id>

# Lead → conductor rollup only (never raw worker spam)
fleet-mail send --from "$FLEET_LEAD_MAILBOX" --to conductor --type status --ticket <TICKET> \
  --body "T: implementer done; reviewer in flight"
```

Env defaults: `FLEET_MAIL_FROM`, `FLEET_MAIL_TO`, `FLEET_LEAD_MAILBOX`, `FLEET_PROJECT_KEY`,
`PI_FLEET_HOME` (default `~/.pi-fleet`).

## Topology (enforced — CLI fails closed)

| From | To |
| --- | --- |
| worker / reviewer / ac-verifier | **project-lead only** (named `<ws>-project-lead` or legacy) |
| project-lead | conductor (rollups), workers |
| conductor | project-lead only (use **named** mailbox when known) |

### Lead naming (FLT-68)

Preferred mailbox / seat name: **`<workspace_name>-project-lead`**
(e.g. `agent-skills-project-lead`, `ftd-project-lead`, `pi-fleet-project-lead`).
Must match the cmux pane/tab name exactly. Named form is first-class in topology
(no more `unknown mailbox role` on `pi-fleet-project-lead`). Legacy bare
`project-lead` / `project-lead:<scope>` still accepted.

Never `worker → conductor`. Never mid-task drip-feed. Prefer **one replaceable status** per ticket.

## Harness notes

| Harness | Integration |
| --- | --- |
| **Pi** | Skill loaded by implementer/lead/conductor; bash policy allows `fleet-mail *` |
| **Claude Code** | Prompt + Bash allow for `fleet-mail`; this skill can live under Claude skills path |
| **Codex CLI** | Merge [`docs/AGENTS.fleet-mail.md`](../../docs/AGENTS.fleet-mail.md) into project `AGENTS.md`; full guide [`docs/codex-fleet-mail.md`](../../docs/codex-fleet-mail.md) |

Contract: [`docs/agent-mail.md`](../../docs/agent-mail.md).  
Batch/append decision: [`docs/batch-append-messaging.md`](../../docs/batch-append-messaging.md).

## Lead rule (anti-thrash)

- **Do not** `cmux send` status into a lead that is mid-turn / mid-tool batch for routine updates.
- Workers write mail; lead **pulls** when idle or on a short cadence.
- At most **one** optional idle nudge (handoff file or single message) if the lead must wake — never a steer storm.

From kellykampen/pi-fleet, MIT.

More from kellykampen/pi-fleet

Signals

Stars
1
Forks
0
Open issues
0
Last commit (this folder)
Jul 30, 2026 (3 months ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from kellykampen

Cite this page

fleet-mail skill. Agent Mart. https://agentmart.dev/skills/kellykampen-fleet-mail (last updated 2026-10-24)