en un clic
swarm-inbox
Read and send inter-agent messages within a swarm team
Installer avec Codex ou Claude Copiez ce prompt, collez-le dans Codex, Claude ou un autre assistant, puis laissez-le vérifier la page du skill et l'installer pour vous.
Menu
Read and send inter-agent messages within a swarm team
Installer avec Codex ou Claude Copiez ce prompt, collez-le dans Codex, Claude ou un autre assistant, puis laissez-le vérifier la page du skill et l'installer pour vous.
Basé sur la classification professionnelle SOC
Argus — all-in-one information gathering & reconnaissance toolkit. 135 modules covering network infrastructure, web app analysis, and security/threat intelligence. Use for domain recon, subdomain enum, SSL analysis, tech stack detection, vulnerability scanning, and OSINT.
Manage secrets via Bitwarden CLI (bw). Use when pulling secrets into a shell session, creating/updating Secure Notes from .env files, listing vault items, or setting up Bitwarden on a new machine. Secrets live in Bitwarden, get loaded into memory on demand, and die with the shell session — no files on disk.
Develop a thorough, step-by-step specification for a given idea
Set up a recurring build tracker cron job for any GitHub repo. Runs a zero-LLM shell script to detect stale PRs, stale assigned issues, and phase progress, then posts to a Discord channel only when there's something actionable. Use when asked to "track this build every N hours", "prod agents on a project", "set up a build monitor", "watch this repo for stale work", or similar. The tracker is cheap to run — script does all the work, the agent only speaks when findings exist.
Run long-running coding tasks in cloud environments (Claude Code or Codex), with session teleporting and automatic PR creation.
Delegate coding tasks to subagents or run Claude Code/Codex in tmux sessions. Use the Task tool for focused multi-step coding work. Use tmux for long-running interactive sessions, parallel worktree-based fixes, and PR reviews. NOT for simple single-file edits — do those directly.
| name | swarm-inbox |
| description | Read and send inter-agent messages within a swarm team |
| user-invocable | true |
Read your inbox or send messages to other team members.
# Read your messages
/swarm-inbox
# Read with options
/swarm-inbox --last 10
# Send a message
/swarm-inbox --to <agent> --msg "message"
# Broadcast to all
/swarm-inbox --broadcast --msg "message"
| Argument | Description |
|---|---|
| (none) | Read all messages in your inbox |
--last N | Read only the last N messages |
--to <agent> | Send message to specific agent (leader, agent-1, etc.) |
--msg "text" | Message content |
--type <type> | Message type (default: status) |
--broadcast | Send to all team members |
| Type | Usage |
|---|---|
task | Assign work to an agent |
status | Progress update |
handoff | Pass work to another agent |
help | Request assistance |
complete | Task completion notification |
broadcast | Message to all members |
shutdown | Graceful termination request |
When you receive /swarm-inbox (no send args):
Detect Current Context
# Find which team and agent you are
# This should be set in your session context
TEAM_ID="$CURRENT_SWARM_TEAM"
AGENT_NAME="$CURRENT_SWARM_AGENT"
# Or detect from environment/session name
SESSION_NAME=$(tmux display-message -p '#S' 2>/dev/null || echo "")
if [[ "$SESSION_NAME" =~ ^swarm-([0-9]+)-(.+)$ ]]; then
TEAM_ID="swarm-${BASH_REMATCH[1]}"
AGENT_NAME="${BASH_REMATCH[2]}"
fi
Read Messages
source ~/.claude/utils/swarm-lib.sh
MESSAGES=$(swarm_read_inbox "$TEAM_ID" "$AGENT_NAME" --last 20)
if [ "$(echo "$MESSAGES" | jq 'length')" -eq 0 ]; then
echo "No messages in inbox"
else
echo "=== Inbox: $AGENT_NAME ==="
echo "$MESSAGES" | jq -r '.[] | "[\(.ts | split("T")[1] | split("+")[0])] \(.from) -> \(.type): \(.payload | tostring)"'
fi
When you receive /swarm-inbox --to <agent> --msg "text":
Parse Arguments
TO_AGENT="agent-1" # from --to
MESSAGE="Task complete, ready for review" # from --msg
MSG_TYPE="${TYPE:-status}" # from --type or default
Construct Payload
# For simple text messages
PAYLOAD=$(jq -n --arg msg "$MESSAGE" '{message: $msg}')
# For task assignments (if type is task)
# PAYLOAD='{"task_id": "bd-123", "action": "start", "context": "..."}'
Send Message
swarm_send_message "$TEAM_ID" "$AGENT_NAME" "$TO_AGENT" "$MSG_TYPE" "$PAYLOAD"
echo "Message sent to $TO_AGENT"
When you receive /swarm-inbox --broadcast --msg "text":
PAYLOAD=$(jq -n --arg msg "$MESSAGE" '{message: $msg}')
swarm_broadcast "$TEAM_ID" "$AGENT_NAME" "broadcast" "$PAYLOAD"
echo "Broadcast sent to all team members"
=== Inbox: agent-1 ===
[11:30:15] leader -> task: {"task_id":"bd-007","action":"start"}
[11:45:22] agent-2 -> handoff: {"task_id":"bd-007","context":"Backend complete"}
[11:50:00] leader -> status: {"message":"Keep up the good work!"}
# Simple progress update
/swarm-inbox --to leader --msg "Task bd-007 at 50% progress"
# Request help
/swarm-inbox --to leader --type help --msg "Blocked on API auth issue"
# Task handoff
/swarm-inbox --to agent-2 --type handoff --msg '{"task_id":"bd-007","context":"Frontend ready for integration"}'
# Broadcast announcement
/swarm-inbox --broadcast --msg "Taking 5 min break, will resume shortly"
Messages are stored as JSONL (one JSON object per line):
{
"ts": "2026-02-03T11:30:15+00:00",
"from": "leader",
"to": "agent-1",
"type": "task",
"payload": {
"task_id": "bd-007",
"action": "start",
"context": "Implement user authentication endpoint"
}
}
Agents should poll their inbox regularly:
# Poll loop (conceptual - implement in agent behavior)
while true; do
NEW_MESSAGES=$(swarm_read_inbox "$TEAM_ID" "$AGENT_NAME" --last 5)
for msg in $(echo "$NEW_MESSAGES" | jq -c '.[]'); do
TYPE=$(echo "$msg" | jq -r '.type')
case $TYPE in
task)
# Handle task assignment
;;
shutdown)
# Graceful shutdown
;;
*)
# Log other messages
;;
esac
done
sleep 5
done
| File | Description |
|---|---|
~/.claude/swarm/{team-id}/inbox/leader.jsonl | Leader's inbox |
~/.claude/swarm/{team-id}/inbox/agent-1.jsonl | Agent 1's inbox |
~/.claude/swarm/{team-id}/inbox/agent-N.jsonl | Agent N's inbox |