Canonical joelclaw mail coordination protocol for all agents. Use when announcing work, checking inboxes, reserving files, releasing locks, handling task handoffs, triaging stale reservations, or auditing coordination quality. Triggers on: 'clawmail', 'agent mail', 'joelclaw mail', 'reserve files', 'release locks', 'handoff', 'agent coordination', 'mail status', or any multi-agent collaboration workflow.
73
91%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Low
Low-risk findings worth noting
Canonical agent coordination contract for joelclaw.
joelclaw mail is the only supported mail access surface for pi agents.
Do not call mcp_agent_mail HTTP endpoints directly from agent prompts or role instructions.
Agent-mail is a Central service, not a mailbox per machine:
127.0.0.1:8765.com.joelclaw.agent-mail-tunnel, forwarding their local 127.0.0.1:8765 to Flagg over SSH.Tracked connector assets:
infra/agent-mail-tunnel.shinfra/launchd/com.joelclaw.agent-mail-tunnel.plistjoelclaw mail ... (CLI)These wrappers shell to joelclaw mail under the hood:
| Tool | CLI equivalent |
|---|---|
mail_send | joelclaw mail send |
mail_inbox | joelclaw mail inbox |
mail_read | joelclaw mail read |
mail_reserve | joelclaw mail reserve |
mail_release | joelclaw mail release |
mail_status | joelclaw mail status |
joelclaw mail inbox --agent <AgentName> --unreadjoelclaw mail send --from <AgentName> --to <AgentName|team> --subject "Starting: <work>" "intent + paths + expected output"joelclaw mail reserve --agent <AgentName> --paths "path/a.ts,path/b.ts" [--ttl-seconds 900]joelclaw mail renew --agent <AgentName> --paths "path/a.ts" [--extend-seconds 900]joelclaw mail send --subject "Status: ..." ...joelclaw mail release --agent <AgentName> --paths "..."--all when done with all reserved pathsUse these prefixes consistently:
Starting: — work start / intent announcementTask: — handoff or assignmentStatus: — progress updateBlocked: — dependency/incident requiring interventionDone: — completion with artifact/commit IDsDaily steering uses these signals to detect protocol drift.
# server + inbox health
joelclaw mail status
# register / refresh identity metadata
joelclaw mail register --agent MaroonReef --program pi --model gpt-5.4 --task "interactive"
# send a coordination message
joelclaw mail send --from MaroonReef --to BlueFox --subject "Task: update prompt docs" "Please edit SYSTEM.md and roles/*.md"
# inbox / read
joelclaw mail inbox --agent MaroonReef --unread
joelclaw mail read --agent MaroonReef --id 12
# reservations
joelclaw mail reserve --agent MaroonReef --paths "SYSTEM.md,roles/interactive.md" --ttl-seconds 900
joelclaw mail renew --agent MaroonReef --paths "SYSTEM.md" --extend-seconds 900
joelclaw mail release --agent MaroonReef --paths "SYSTEM.md,roles/interactive.md"
joelclaw mail release --agent MaroonReef --all
# audit/search
joelclaw mail locks
joelclaw mail search --query "Starting:"joelclaw mail status
joelclaw mail locks
joelclaw mail search --query "Starting:"
joelclaw mail search --query "Status:"joelclaw mail locks should reflect active advisory file reservations from the local git-mailbox file_reservations/ artifacts when that repo is available. This matters because the raw /mail/api/locks endpoint can under-report file reservations while still showing mailbox-internal archive/commit locks.
~/.bun/bin/joelclaw may be stale relative to source.packages/cli/src/cli.ts and retry.ok: true but the nested result contains an errorresult.result or result.raw contains backend errors such as Too many open files, Agent not found, or stale project metadata.ok flag.Too many open files. Freed 0 cached repos, inspect lsof -p $(pgrep -f 'mcp_agent_mail.*serve-http') | rg '\.(archive|commit)\.lock'. The durable fix is in joelhooks/mcp_agent_mail: close orphaned lock FDs, avoid treating metadata-missing locks as immediately stale, and run com.joelclaw.agent-mail with NumberOfFiles=8192 via infra/agent-mail-daemon.sh + infra/launchd/com.joelclaw.agent-mail.plist.Any prompt/role/system contract that mentions coordination should:
clawmail as canonical protocol skill.joelclaw mail (wrappers allowed, direct MCP not allowed).Starting:, Task:, Status:, Blocked:, Done:).pi/extensions/session-lifecycle runs a daily monitor+steer review and emits:
agent-mail/steering.reviewedSnapshot path:
~/.joelclaw/workspace/agent-mail-steering/YYYY-MM-DD.jsonUse steering hints to tighten protocol compliance when drift is detected.
skills/agent-mail/SKILL.md (compatibility alias)joelclaw mail --help7094ced
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.