Refactor high-complexity React components in Dify frontend. Use when `pnpm analyze-component...
npx skills add grahama1970/agent-skills --skill "agent-inbox"
Install specific skill from multi-skill repository
# Description
>
# SKILL.md
name: agent-inbox
description: >
File-based inter-agent messaging. Check inbox, send bugs/requests to other projects,
acknowledge resolved issues. Use for cross-project agent communication.
allowed-tools: Bash, Read
triggers:
- check your inbox
- check inbox
- check messages
- any messages
- any pending messages
- check for messages
- agent sent you
- sent you an issue
- sent you a bug
- address the bug
- fix the issue from
- message from agent
- inter-agent message
- send message to
- send bug to
- notify the agent
- tell the other agent
- cross-project message
- pending issues
- pending bugs
metadata:
short-description: Inter-agent messaging for cross-project communication
Agent Inbox Skill
Simple file-based inter-agent message system. Allows agents working on different projects to communicate bugs, requests, and information without manual copy/paste.
When to Use
- Agent A finds a bug in project B's code
- Agent needs to request help from another project's agent
- Passing information between project workspaces
- Any cross-project agent communication
Proactive Checking (Important!)
Agents should check inbox automatically when:
- Starting a new session
- User mentions another agent or project by name
- User says "check your inbox" or similar
- Switching projects or context
- Before starting major work (in case blockers exist)
If you're an AI agent reading this: Run .agents/skills/agent-inbox/agent-inbox check proactively when the user mentions inter-project communication. Don't wait to be explicitly told.
Running the Skill (No Global Install Needed)
The repo already includes a wrapper script (.agents/skills/agent-inbox/agent-inbox). Run it directly or invoke the Python entrypointβno global install or PATH hacks required.
# Preferred: run the bundled wrapper
.agents/skills/agent-inbox/agent-inbox check
# Alternate: call Python explicitly
python .agents/skills/agent-inbox/inbox.py check
If you want convenience aliases, you can add the skill folder to PATH, but itβs optional and not assumed anywhere in this doc.
Setup (One-Time)
Register your projects so agent-inbox knows where they are:
# Register projects (use direct path if agent-inbox not on PATH)
.agents/skills/agent-inbox/agent-inbox register memory /home/user/workspace/memory
.agents/skills/agent-inbox/agent-inbox register scillm /home/user/workspace/litellm
# List registered projects
.agents/skills/agent-inbox/agent-inbox projects
# Check which project current directory maps to
.agents/skills/agent-inbox/agent-inbox whoami
# Unregister if needed
.agents/skills/agent-inbox/agent-inbox unregister old-project
Quick Start
# Send a bug report to the scillm project
.agents/skills/agent-inbox/agent-inbox send --to scillm --type bug --priority high "
File: scillm/extras/providers.py:328
Error: UnboundLocalError on 'options'
Fix: Rename local variable to avoid shadowing
"
# Check for pending messages (anytime)
.agents/skills/agent-inbox/agent-inbox check
# List all pending messages
.agents/skills/agent-inbox/agent-inbox list
# Read a specific message
.agents/skills/agent-inbox/agent-inbox read scillm_abc123
# Acknowledge when fixed
.agents/skills/agent-inbox/agent-inbox ack scillm_abc123 --note "Fixed: renamed to merged_options"
CLI Commands (Wrapper β python inbox.py)
register - Register a project (one-time setup)
.agents/skills/agent-inbox/agent-inbox register <name> <path>
# Examples:
.agents/skills/agent-inbox/agent-inbox register memory /home/user/workspace/memory
.agents/skills/agent-inbox/agent-inbox register scillm /home/user/workspace/litellm
unregister - Remove a project
.agents/skills/agent-inbox/agent-inbox unregister <name>
projects - List registered projects
.agents/skills/agent-inbox/agent-inbox projects
.agents/skills/agent-inbox/agent-inbox projects --json
whoami - Show detected project for current directory
.agents/skills/agent-inbox/agent-inbox whoami
send - Send a message to another project
.agents/skills/agent-inbox/agent-inbox send --to PROJECT --type TYPE --priority PRIORITY "message"
# Types: bug, request, info, question
# Priority: low, normal, high, critical
# Examples:
.agents/skills/agent-inbox/agent-inbox send --to memory --type request "Please add 'proved_only' parameter to search()"
.agents/skills/agent-inbox/agent-inbox send --to scillm --type bug --priority critical "Server crashes on startup"
# Read message from stdin (useful for multi-line)
cat error.log | .agents/skills/agent-inbox/agent-inbox send --to scillm --type bug
list - List messages
.agents/skills/agent-inbox/agent-inbox list # All pending
.agents/skills/agent-inbox/agent-inbox list --project scillm # For specific project
.agents/skills/agent-inbox/agent-inbox list --status done # Completed messages
.agents/skills/agent-inbox/agent-inbox list --json # JSON output
read - Read a specific message
.agents/skills/agent-inbox/agent-inbox read MSG_ID
.agents/skills/agent-inbox/agent-inbox read MSG_ID --json
ack - Acknowledge/complete a message
.agents/skills/agent-inbox/agent-inbox ack MSG_ID
.agents/skills/agent-inbox/agent-inbox ack MSG_ID --note "Fixed in commit abc123"
check - Check inbox (for hooks)
.agents/skills/agent-inbox/agent-inbox check # Check all
.agents/skills/agent-inbox/agent-inbox check --project scillm # Check specific project
.agents/skills/agent-inbox/agent-inbox check --quiet # Just return count (exit code 1 if messages)
Integration with Claude Code Hooks
Add to your project's .claude/settings.json:
{
"hooks": {
"on_session_start": [
".agents/skills/agent-inbox/agent-inbox check --project $(basename $PWD) || true"
]
}
}
Or add to your shell profile to check on every new terminal:
# ~/.bashrc or ~/.zshrc
alias claude-start='.agents/skills/agent-inbox/agent-inbox check --project $(basename $PWD); claude'
Message Format
Messages are stored as JSON in ~/.agent-inbox/:
~/.agent-inbox/
βββ pending/
β βββ scillm_abc123.json
βββ done/
βββ memory_def456.json
Each message:
{
"id": "scillm_abc123",
"to": "scillm",
"from": "extractor",
"type": "bug",
"priority": "high",
"status": "pending",
"created_at": "2026-01-11T20:30:00Z",
"message": "File: providers.py:328\nError: UnboundLocalError..."
}
Environment Variables
| Variable | Description | Default |
|---|---|---|
AGENT_INBOX_DIR |
Inbox directory location | ~/.agent-inbox |
CLAUDE_PROJECT |
Current project name (for from field) |
unknown |
Workflow Example
Agent A (extractor project) finds bug:
.agents/skills/agent-inbox/agent-inbox send --to scillm --type bug --priority high "
Bug in scillm/extras/providers.py:328
Error: UnboundLocalError: cannot access local variable 'options'
The _worker function references 'options' on line 328 before it's
assigned on line 345. This is because the assignment makes Python
treat it as a local variable throughout the function.
Suggested fix: Rename line 345 'options = dict(options or {})' to
'merged_options = dict(options or {})' and update subsequent references.
"
User switches to scillm project:
cd /path/to/scillm
claude # Or .agents/skills/agent-inbox/agent-inbox check runs automatically via hook
Agent B (scillm project) sees message:
=== 1 pending message(s) ===
Project: scillm
[HIGH]
scillm_a1b2c3d4: bug from extractor
Bug in scillm/extras/providers.py:328...
Agent B fixes and acknowledges:
.agents/skills/agent-inbox/agent-inbox ack scillm_a1b2c3d4 --note "Fixed: renamed to merged_options in commit abc123"
Python API
from inbox import (
register_project, unregister_project, list_projects,
send, list_messages, read_message, ack_message, check_inbox
)
# Setup (one-time)
register_project("memory", "/home/user/workspace/memory")
register_project("scillm", "/home/user/workspace/litellm")
list_projects() # {"memory": "/home/...", "scillm": "/home/..."}
# Send
send("scillm", "Bug report...", msg_type="bug", priority="high")
# List
messages = list_messages(project="scillm")
# Read
msg = read_message("scillm_abc123")
# Ack
ack_message("scillm_abc123", note="Fixed")
# Check (returns count)
count = check_inbox(project="scillm", quiet=True)
# Supported AI Coding Agents
This skill is compatible with the SKILL.md standard and works with all major AI coding agents:
Learn more about the SKILL.md standard and how to use these skills with your preferred AI coding agent.