Claude-skill-registry agentmail
Inter-agent communication for tmux sessions. Send and receive messages between AI agents.
git clone https://github.com/majiayu000/claude-skill-registry
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/agentmail" ~/.claude/skills/majiayu000-claude-skill-registry-agentmail && rm -rf "$T"
skills/data/agentmail/SKILL.mdAgentMail Skill
AgentMail enables communication between AI agents running in different tmux windows through a simple file-based mail system.
Overview
AgentMail is a CLI tool for inter-agent communication within tmux sessions. Messages are stored in
.agentmail/mailboxes/ as JSONL files, providing persistent, file-locked message queues for each agent.
Prerequisites
- Must be running inside a tmux session
- AgentMail CLI must be installed and available in PATH
- Messages stored in
directory.agentmail/
Core Commands
Send a Message
agentmail send <recipient> "<message>"
Send a message to another agent. The recipient must be a valid tmux window name.
Examples:
agentmail send agent2 "Can you review the changes in src/api?" agentmail send -r worker -m "Task completed" echo "Build succeeded" | agentmail send agent2
Receive Messages
agentmail receive
Read the oldest unread message from your mailbox. Messages are delivered in FIFO order and marked as read after display.
List Recipients
agentmail recipients
List all tmux windows that can receive messages. Your current window is marked with
[you].
Set Status
agentmail status <ready|work|offline>
Set your availability status:
- Available to receive messages and notificationsready
- Busy working (suppresses notifications)work
- Not available (suppresses notifications)offline
Workflow
Checking for Messages
- Run
to check for new messagesagentmail receive - If a message is available, read and process it
- Optionally reply using
agentmail send
Sending Messages
- Run
to see available agentsagentmail recipients - Send your message:
agentmail send <recipient> "<message>" - Confirm delivery via the returned message ID
Status Management
The plugin automatically manages your status:
- Session start: Status set to
ready - Session end: Status set to
offline - End of turn (Stop): Status set to
, checks for new messagesready
Message Format
Messages include:
- ID: Unique 8-character base62 identifier (a-z, A-Z, 0-9)
- From: Sender's tmux window name
- To: Recipient's tmux window name
- Content: Message body
Best Practices
- Check messages regularly - Use
to stay informedagentmail receive - Keep messages concise - Focus on actionable information
- Include context - Reference files, line numbers, or specific details
- Respond promptly - Other agents may be waiting for your input
- Use status appropriately - Set
when focusing on complex taskswork
Integration with Claude Code
This plugin integrates with Claude Code hooks:
- SessionStart: Automatically sets status to
and runs onboardingready - SessionEnd: Automatically sets status to
offline - Stop: Sets status to
and checks for new messagesready
The hooks ensure agents are properly registered and can receive notifications from the mailman daemon.
Troubleshooting
"Not in a tmux session"
AgentMail requires tmux. Start a tmux session first.
"Recipient not found"
The recipient window doesn't exist. Check available windows with
agentmail recipients.
"No unread messages"
Your mailbox is empty. Other agents haven't sent you messages yet.
Messages not being delivered
Ensure the mailman daemon is running:
agentmail mailman --daemon