Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Check and process messages from autonomous AILANG agents. Use when starting a session, after agent handoffs, or when checking for completion notifications.
.claude/skills/majiayu000-agent-inbox/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-03 | ✗→✓ | ▲ Improved | 36% | 0% |
| case-04 | ✗→✓ | ▲ Improved | 221% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 89% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 64% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 64% | 0% |
Check for messages from autonomous agents at session start and process completion notifications.
Most common usage:
bash# List all messages ailang messages list # Show only unread messages ailang messages list --unread # Read full message content ailang messages read MSG_ID # Acknowledge (mark as read) ailang messages ack MSG_ID ailang messages ack --all # Send a message ailang messages send user "Your message" --title "Title" --from "agent-name" # Send bug/feature to GitHub (for cross-instance visibility) ailang messages send user "Bug report" --type bug --github
Expected output (at session start):
📬 AGENT INBOX: 2 unread message(s) from autonomous agents
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ID: msg_20251210_143021_abc123
From: sprint-executor
Title: Sprint M-S1 complete
Time: 2025-12-10T14:30:21Z
ID: msg_20251210_143055_def456
From: stapledon
Title: Parser Bug
Time: 2025-12-10T14:30:55Z
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━Invoke this skill when:
All messages stored in SQLite database:
~/.ailang/state/collaboration.dbailang messages) and Collaboration Hub dashboardunread, read, archived, deletedbashailang messages list # All messages ailang messages list --unread # Only unread ailang messages list --inbox user # Filter by inbox ailang messages list --from agent-name # Filter by sender ailang messages list --json # JSON output ailang messages list --limit 50 # Limit results
bashailang messages read MSG_ID # Full content, marks as read ailang messages read MSG_ID --peek # View without marking read ailang messages read MSG_ID --json # JSON output
bashailang messages ack MSG_ID # Mark specific message as read ailang messages ack --all # Mark all as read ailang messages ack --all --inbox user # Mark all in inbox as read
bashailang messages unack MSG_ID # Move back to unread
bash# Basic send (local only - for coordination) ailang messages send INBOX "message" --title "Title" --from "agent" # With GitHub sync (for bugs/features - cross-instance visibility) ailang messages send INBOX "message" --type bug --github ailang messages send INBOX "message" --type feature --github ailang messages send INBOX "message" --github --repo owner/repo
bashailang messages import-github # Import from default repo ailang messages import-github --repo owner/repo # Specific repo ailang messages import-github --labels bug,help # Filter by labels ailang messages import-github --dry-run # Preview without importing
SessionStart hook runs automatically and shows unread messages.
If messages exist:
ailang messages ack --allWhen agent reports completion:
bash# 1. Read the full message ailang messages read MSG_ID # 2. Review results mentioned in payload ls -la eval_results/baselines/v0.4.2/ # 3. Report to user echo "Sprint complete! Results at: eval_results/baselines/v0.4.2/" # 4. Acknowledge after processing ailang messages ack MSG_ID
When agent reports errors:
bash# 1. Read the full error details ailang messages read MSG_ID # 2. Check logs if mentioned cat .ailang/state/logs/sprint-executor.log # 3. Diagnose and report to user echo "Agent encountered error: Tests failing at milestone 3/5" # 4. Either fix manually or send corrective instructions
bash# Send response to an agent ailang messages send sprint-executor "Approved, proceed" \ --title "Approval" --from "user" # Send notification to user inbox ailang messages send user "Issue resolved" \ --title "Status update" --from "claude-code"
| Type | Purpose | Goes to GitHub? | |------|---------|-----------------| | bug | Bug report | Yes (with --github) | | feature | Feature request | Yes (with --github) | | general | Coordination | No (local only) |
Routing guidance:
--github for visibility across all AILANG instancesbash# Bug reports and feature requests go to GitHub for visibility ailang messages send user "Parser crash" --type bug --github ailang messages send user "Need async support" --type feature --github
bash# Runs automatically on session start (if auto_import: true in config) ailang messages import-github # Or manually with filters ailang messages import-github --labels help-wanted
You can write instructions as GitHub issues and have agents pick them up:
ailang-message labelimport-github runs automaticallyCreate ~/.ailang/config.yaml:
yamlgithub: expected_user: YourGitHubUsername # REQUIRED: Must match gh auth status default_repo: sunholo-data/ailang # Default repo for issues create_labels: - ailang-message watch_labels: - ailang-message auto_import: true # Auto-import on session start
Prerequisites:
brew install ghgh auth logingh auth statusgh auth switch --user USERNAMEAuto-label creation: Labels are automatically created if they don't exist:
from:agent-name (purple) - who sent the messagebug (red), feature (cyan), general (light blue)ailang-message (blue) - identifies AILANG messagesMessages support correlation IDs for tracking handoff chains:
json{ "message_id": "msg_20251210_103045_abc123", "correlation_id": "sprint_M-S1", "from_agent": "sprint-executor", "to_inbox": "user", "title": "Sprint complete", "payload": "All milestones complete" }
Benefits:
For complete specification, see resources/message_format.md
json{ "type": "sprint_complete", "correlation_id": "sprint_M-S1", "payload": { "sprint_id": "M-S1", "milestones_complete": 5, "result": "All tests passing" } }
json{ "type": "error", "correlation_id": "sprint_M-S1", "payload": { "error": "Tests failing: 5 benchmarks broken", "details": ".ailang/state/logs/sprint-executor.log" } }
json{ "type": "plan_ready", "correlation_id": "sprint_M-S1", "payload": { "sprint_id": "M-S1", "plan_path": "design_docs/planned/M-S1-plan.md" } }
See resources/message_format.md for complete message format specification.
See resources/troubleshooting.md for common issues and solutions.
| Command | Purpose | |---------|---------| | ailang messages list | View all messages | | ailang messages list --unread | View only unread | | ailang messages read MSG_ID | View full message | | ailang messages ack MSG_ID | Mark as read | | ailang messages ack --all | Mark all as read | | ailang messages unack MSG_ID | Mark as unread | | ailang messages send INBOX "msg" | Send message | | ailang messages reply MSG_ID "text" | Reply to GitHub issue thread | | ailang messages import-github | Import from GitHub | | ailang messages watch | Watch for new messages | | ailang messages cleanup | Remove old messages |
Aliases: msg is an alias for messages
bashailang msg list # Same as: ailang messages list
~/.ailang/state/collaboration.dbailang messages readOther measured skills in the registry, with their headline benchmark lift.