Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
joelhooks avatar

Clawmail

  • 38 installs
  • 61 repo stars
  • Updated August 4, 2026
  • joelhooks/joelclaw

Coordinate multiple agents through the joelclaw mail CLI: check inboxes, announce scope, reserve and release file paths, and hand off tasks.

About

Defines the canonical mail-based coordination protocol for pi agents working on shared files. A developer uses it when multiple agents need inbox checks, file reservations, and handoff messaging to avoid conflicts.

  • Required protocol: inbox check, announce, reserve paths, release after commit
  • Subject taxonomy (Starting/Task/Status/Blocked/Done) plus reliability checks

Clawmail by the numbers

  • 38 all-time installs (skills.sh)
  • +1 installs in the week ending Aug 2, 2026 (Skillselion tracking)
  • Ranked #8,404 of 16,546 AI & Agent Building skills by installs in the Skillselion catalog
  • Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/joelhooks/joelclaw --skill clawmail

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs38
repo stars61
Last updatedAugust 4, 2026
Repositoryjoelhooks/joelclaw

What it does

Coordinate multiple agents through the joelclaw mail CLI: check inboxes, announce scope, reserve and release file paths, and hand off tasks.

Files

SKILL.mdMarkdownGitHub ↗

Clawmail

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.

Interfaces

Canonical interface

  • joelclaw mail ... (CLI)

Pi wrapper tools (allowed, but still CLI-backed)

These wrappers shell to joelclaw mail under the hood:

ToolCLI equivalent
mail_sendjoelclaw mail send
mail_inboxjoelclaw mail inbox
mail_readjoelclaw mail read
mail_reservejoelclaw mail reserve
mail_releasejoelclaw mail release
mail_statusjoelclaw mail status

Required Protocol (default for shared work)

1. Check inbox before touching files

  • joelclaw mail inbox --agent <AgentName> --unread

2. Announce active scope

  • joelclaw mail send --from <AgentName> --to <AgentName|team> --subject "Starting: <work>" "intent + paths + expected output"

3. Reserve file paths before edits

  • joelclaw mail reserve --agent <AgentName> --paths "path/a.ts,path/b.ts" [--ttl-seconds 900]

4. If work runs long, renew reservation lease

  • joelclaw mail renew --agent <AgentName> --paths "path/a.ts" [--extend-seconds 900]

5. Send status/handoff updates during work

  • joelclaw mail send --subject "Status: ..." ...

6. Release reservations after commit/handoff

  • joelclaw mail release --agent <AgentName> --paths "..."
  • or --all when done with all reserved paths

Subject Taxonomy (for searchability + steering)

Use these prefixes consistently:

  • Starting: — work start / intent announcement
  • Task: — handoff or assignment
  • Status: — progress update
  • Blocked: — dependency/incident requiring intervention
  • Done: — completion with artifact/commit IDs

Daily steering uses these signals to detect protocol drift.

Command Quick Reference

# 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:"

Reliability Checks

Verify protocol health quickly

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.

If search is degraded (DB/tool errors)

  • Treat signal counts as unreliable.
  • Continue using protocol anyway (announce/reserve/release).
  • Escalate to mail backend health repair and log findings.

If CLI flags are rejected unexpectedly

  • Your compiled ~/.bun/bin/joelclaw may be stale relative to source.
  • Rebuild CLI from packages/cli/src/cli.ts and retry.

If wrapper output says ok: true but the nested result contains an error

  • Treat the operation as failed. Some CLI paths can return a successful envelope while result.result or result.raw contains backend errors such as Too many open files, Agent not found, or stale project metadata.
  • Verify reservations/register/inbox calls by reading the nested result, not only the top-level ok flag.
  • Retry once if the backend says it freed cached repos; if it still fails, continue only for low-risk edits and report the coordination failure in the final summary.
  • For repeated 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.

Prompt Authoring Checklist (shore up prompts)

Any prompt/role/system contract that mentions coordination should:

1. Reference `clawmail` as canonical protocol skill. 2. State that mail access is via `joelclaw mail` (wrappers allowed, direct MCP not allowed). 3. Include at minimum: inbox check, announce, reserve, release. 4. Require path context in coordination messages. 5. Encourage subject prefixes (Starting:, Task:, Status:, Blocked:, Done:). 6. Avoid filler about mail when no shared edits/coordination are involved.

Steering Loop Integration

pi/extensions/session-lifecycle runs a daily monitor+steer review and emits:

  • agent-mail/steering.reviewed

Snapshot path:

  • ~/.joelclaw/workspace/agent-mail-steering/YYYY-MM-DD.json

Use steering hints to tighten protocol compliance when drift is detected.

Related

  • skills/agent-mail/SKILL.md (compatibility alias)
  • joelclaw mail --help
  • ADR-0172: Agent Mail via MCP Agent Mail

Related skills

AI & Agent Buildingagentsautomation

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.