Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Point-to-point messaging between agents. Send, broadcast, receive, and peek at messages. File-based implementation using JSON in inbox directories with atomic writes. Includes event log for full message history. The communication backbone. Triggers on: "inbox", "message", "send to", "broadcast", "check messages"
.claude/skills/miosa-osa-inbox/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 196% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 91% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 250% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 42% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 83% | 0% |
> Point-to-point messaging between agents.
The communication backbone for multi-agent coordination. Every agent has an inbox directory. Messages are JSON files written atomically (write to temp, then rename — no partial reads). Supports direct messages, broadcasts, and reply chains. Full event log for debugging coordination issues.
bash# Send a message to an agent /inbox send researcher "Found the pricing data — check money-revenue/context.md" # Broadcast to all agents /inbox broadcast "Standup in 5 minutes — report your status" # Check your inbox /inbox receive # Peek at an agent's inbox (read without consuming) /inbox peek researcher # Check inbox with filter /inbox receive --type task --unread # View message history /inbox log --last 20 # Reply to a message /inbox reply msg-a1b2c3 "Acknowledged, starting now" # Clear processed messages /inbox clear --before 2026-03-19
| Subcommand | Description | |------------|-------------| | send <target> <message> | Send a direct message to a specific agent | | broadcast <message> | Send to all registered agents | | receive | Read and consume messages from your inbox | | peek <target> | Read an agent's inbox without consuming | | reply <msg-id> <message> | Reply to a specific message (maintains thread) | | log | View message event log | | clear | Remove processed messages |
| Flag | Type | Default | Description | |------|------|---------|-------------| | --type | enum | all | Filter: task, status, result, error, info | | --unread | flag | false | Only show unread messages | | --last | int | 10 | Number of log entries to show | | --before | date | — | Clear messages before this date | | --format | enum | pretty | pretty, json, raw | | --priority | enum | normal | Message priority: urgent, normal, low | | --thread | string | — | Thread ID to filter by |
{id, from, to, type, priority, thread, timestamp, body}.rename() to final path. This guarantees no partial reads..json files in own inbox directory, sorted by timestamp..read suffix or move to processed/).Message sent: msg-2026-03-20-143500-a1b2
To: researcher
Type: info
Priority: normal
Thread: newmarkdown## Inbox (3 unread) ### 1. From: orchestrator | 14:30 | urgent | task > Analyze Q1 revenue data and produce summary by EOD. > Context: money-revenue/context.md, money-revenue/signals/q1-*.md > Reply to: msg-2026-03-20-143000-d4e5 ### 2. From: writer | 14:32 | normal | info > Draft pitch deck is ready for review at processed/pitch-v1.md ### 3. From: analyst | 14:35 | normal | result > Revenue analysis complete. Key finding: 23% MoM growth. > Full report: processed/q1-revenue-report.md
json{ "id": "msg-2026-03-20-143500-a1b2", "from": "orchestrator", "to": "researcher", "type": "task", "priority": "urgent", "thread": "thread-revenue-analysis", "timestamp": "2026-03-20T14:35:00Z", "body": "Analyze Q1 revenue data and produce summary by EOD.", "context": ["money-revenue/context.md"], "reply_to": null }
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→pass | 4,880 | 5,296 | +9% | 1 | 1 | 0% | 656 | 1,944 | +196% | 0 | 0 | — |
case-02 | fail→pass | 5,381 | 3,031 | -44% | 1 | 1 | 0% | 801 | 1,533 | +91% | 0 | 0 | — |
case-03 | fail→pass | 3,898 | 5,139 | +32% | 1 | 1 | 0% | 589 | 2,059 | +250% | 0 | 0 | — |
case-04 | pass→fail | 12,331 | 11,679 | -5% | 1 | 1 | 0% | 2,041 | 2,798 | +37% | 0 | 0 | — |
case-05 | pass→pass | 4,578 | 2,752 | -40% | 1 | 1 | 0% | 758 | 1,637 | +116% | 0 | 0 | — |
case-06 | pass→pass | 7,378 | 4,844 | -34% | 1 | 1 | 0% | 1,277 | 1,838 | +44% | 0 | 0 | — |
case-07 | fail→pass | 9,410 | 4,758 | -49% | 1 | 1 | 0% | 1,316 | 1,869 | +42% | 0 | 0 | — |
case-08 | fail→pass | 6,603 | 3,664 | -45% | 1 | 1 | 0% | 869 | 1,590 | +83% | 0 | 0 | — |
case-09 | fail→pass | 13,507 | 1,936 | -86% | 1 | 1 | 0% | 2,056 | 1,443 | -30% | 0 | 0 | — |
case-10 | pass→pass | 14,180 | 10,711 | -24% | 1 | 1 | 0% | 2,092 | 2,902 | +39% | 0 | 0 | — |
case-11 | fail→pass | 12,270 | 3,016 | -75% | 1 | 1 | 0% | 1,249 | 1,551 | +24% | 0 | 0 | — |
case-12 | fail→pass | 8,832 | 2,652 | -70% | 1 | 1 | 0% | 1,455 | 1,480 | +2% | 0 | 0 | — |
case-13 | pass→pass | 14,554 | 4,890 | -66% | 1 | 1 | 0% | 2,590 | 2,229 | -14% | 0 | 0 | — |
case-14 | pass→pass | 7,966 | 4,990 | -37% | 1 | 1 | 0% | 1,286 | 1,853 | +44% | 0 | 0 | — |
case-15 | pass→pass | 10,877 | 2,310 | -79% | 1 | 1 | 0% | 1,299 | 1,454 | +12% | 0 | 0 | — |
case-16 | pass→pass | 14,846 | 6,791 | -54% | 1 | 1 | 0% | 2,149 | 2,344 | +9% | 0 | 0 | — |
case-17 | pass→pass | 11,311 | 3,930 | -65% | 1 | 1 | 0% | 2,096 | 1,927 | -8% | 0 | 0 | — |
case-18 | fail→pass | 11,177 | 6,384 | -43% | 1 | 1 | 0% | 2,031 | 2,176 | +7% | 0 | 0 | — |
case-19 | pass→pass | 8,273 | 3,032 | -63% | 1 | 1 | 0% | 1,277 | 1,561 | +22% | 0 | 0 | — |
case-20 | pass→pass | 23,814 | 14,552 | -39% | 1 | 1 | 0% | 3,237 | 3,380 | +4% | 0 | 0 | — |
case-21 | fail→pass | 9,184 | 2,206 | -76% | 1 | 1 | 0% | 1,390 | 1,553 | +12% | 0 | 0 | — |
case-22 | pass→pass | 7,612 | 2,411 | -68% | 1 | 1 | 0% | 1,251 | 1,678 | +34% | 0 | 0 | — |
case-23 | pass→pass | 12,670 | 2,988 | -76% | 1 | 1 | 0% | 1,842 | 1,746 | -5% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 23 cases were attempted. The headline lift of +39 percentage points is the difference between those two pass rates over the 23 comparable cases. 1 case got worse with the skill loaded, and it is included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.