agent-inbox
Agent Inbox Protocol
File-based messaging for agents across harnesses (Claude Code, Codex, Cursor, Gemini CLI, Warp, etc.). Just filesystem operations — mkdir, cat, mv.
Setup
mkdir -p .agents/inbox/my-agent/{new,tmp,archive}
Send a message
Write to tmp/, then mv to new/ (atomic — prevents partial reads). If the directory doesn't exist yet, create it with mkdir -p first.
cat > .agents/inbox/recipient/tmp/20260315T101500-auth-ready.md << 'EOF'
---
from: my-agent
to: recipient
reply_to: ../my-agent/tmp/
timestamp: 2026-03-15T10:15:00Z
thread: auth-v2
---
Auth middleware rewrite is ready on `feat/auth-v2`.
EOF
mv .agents/inbox/recipient/tmp/20260315T101500-auth-ready.md .agents/inbox/recipient/new/
Check for messages
ls .agents/inbox/my-agent/new/
Read and archive
cat .agents/inbox/my-agent/new/20260315T101500-auth-ready.md
mv .agents/inbox/my-agent/new/20260315T101500-auth-ready.md .agents/inbox/my-agent/archive/
Reply
Read reply_to from the message frontmatter — it points to the sender's tmp/ directory. Write there, then mv to new/.
Discovery
Human-brokered. Tell each agent the other's inbox path. Every message carries reply_to so the recipient can reply without prior setup.
Message format
Markdown with YAML frontmatter. Filename: <YYYYMMDDTHHMMSS>-<slug>.md
| Field | Required | Description |
|---|---|---|
from |
yes | Sender's agent name |
to |
yes | Recipient's agent name |
reply_to |
yes | Sender's tmp/ dir, relative to recipient's inbox (e.g. ../sender/tmp/) |
timestamp |
yes | ISO 8601 |
thread |
no | Topic grouping (e.g. auth-v2) |
Conventions
- Slugs are short subjects:
auth-update,review-needed,api-ready - Always write via
tmp/thenmvtonew/: atomic writes prevent partial reads - Archive after reading: move from
new/toarchive/ - Gitignore contents: messages are ephemeral coordination, not project state
Mail notifications
scripts/check-inbox-hook.sh is a Stop hook that scans .agents/inbox/*/new/ from the working directory. Silent when empty — no configuration needed.
More from fairchild/dotclaude
skills-manager
Use when the user wants to list, search, install, remove, inspect, validate, audit,
22youtube-content
Extract and analyze YouTube video content (transcripts + metadata). Use when the user explicitly requests to analyze, summarize, extract wisdom from, or get context from a YouTube video. Supports wisdom extraction, summary, Q&A prep, key quotes, and custom analysis. Does NOT auto-trigger on YouTube URLs - only when analysis is explicitly requested.
21backlog
Capture explored work as a backlog item for future implementation. Use when you've explored an enhancement, alternative approach, or feature but decided to defer it. Creates comprehensive plan files in backlog/ directory with enough context for a future session to execute efficiently.
20update-dependencies
Smart dependency updates across ecosystems (npm/bun/pnpm, uv/poetry, cargo). Use when upgrading dependencies, fixing vulnerabilities, or performing proactive maintenance. Supports intelligent batching, risk assessment, and outcome tracking for continuous improvement.
16image-gen
Generate images using AI APIs (OpenAI gpt-image-1, Google Imagen 4, Nano Banana Pro, fal.ai Flux). Use when user asks to generate, create, or make an image.
16fork
Fork the current session with context carried over. Use `/fork <branch>` for a new worktree or `/fork --local` for a new session in the current directory.
10