From agent-bus
Use when coordinating between multiple agents, sending messages across sessions, or implementing multi-agent workflows - provides patterns for pub/sub, request/response, and broadcast communication
How this skill is triggered — by the user, by Claude, or both
Slash command
/agent-bus:agent-message-busThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
A multi-agent communication system for OpenCode that enables agents to send and receive messages across sessions.
A multi-agent communication system for OpenCode that enables agents to send and receive messages across sessions.
bus_register_agent(
agent_id="my-agent",
session_id="<your-session-id>",
metadata={"capabilities": ["code-review", "testing"]}
)
bus_subscribe(agent_id="my-agent", session_id="<session>", channel="global")
bus_subscribe(agent_id="my-agent", session_id="<session>", channel="coordination")
bus_send(
channel="global",
agent_id="my-agent",
session_id="<session>",
content="Task completed: code review done"
)
bus_receive(channel="global", agent_id="my-agent", limit=10)
Send updates to all listening agents:
bus_send(channel="status", agent_id="worker-1", session_id="...",
content='{"status": "processing", "task": "build-123"}')
Send a request and collect responses:
# Send request
response = bus_request(channel="reviewers", agent_id="coordinator",
session_id="...", content="Need code review for PR #42")
# Later, check for responses
bus_get_responses(correlation_id=response.correlation_id)
Other agents respond:
bus_respond(correlation_id="<from-request>", agent_id="reviewer-1",
session_id="...", content="I can review, ETA 10 mins")
Create a channel for specific agents:
bus_create_channel(name="agent-a-to-agent-b", description="Private channel")
bus_send(channel="agent-a-to-agent-b", ...)
| Channel | Purpose |
|---|---|
global | Broadcast to all agents |
coordination | Task assignment and orchestration |
status | Agent heartbeats and status updates |
errors | Error reporting and alerts |
bus_register_agent at session startbus_heartbeat periodically for long tasksbus_acknowledge after processingWhen spawning subagents:
# Parent agent creates a task channel
bus_create_channel(name="task-123", ttl_seconds=1800)
# Spawn subagent with instructions to listen
# Subagent registers and subscribes to "task-123"
# Parent sends task
bus_send(channel="task-123", content='{"task": "run tests", "files": [...]}')
# Subagent reports back
bus_send(channel="task-123", content='{"result": "pass", "tests": 42}')
Messages not received?
bus_subscribe?Agent not showing in list?
bus_register_agent firstactive_within_seconds parameterCreates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub slapglif/agent-bus