grahama1970

agent-inbox

0
0
# Install this skill:
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.