wait
Wait - Block Until Messages Arrive
Wait for messages on specific topics, enabling synchronization between agents and coordinated handoff workflows.
When to Use
- Waiting for another agent to complete work
- Coordinating handoff between agents
- Blocking until a response or acknowledgment arrives
- Synchronizing at specific points in distributed workflows
How It Works
The hive msg sub --wait command polls the specified topic every 500ms until:
- A message arrives (success, exit 0)
- The timeout is reached (prints JSON status, exit 1)
Default timeout is 24h for --wait mode. Messages are NOT acknowledged unless --ack is used.
Commands
Wait for Single Message
hive msg sub --wait --topic <topic>
Examples:
# Wait for handoff message (24h default timeout)
hive msg sub --wait --topic agent.abc.inbox
# Wait for build completion
hive msg sub --wait --topic build.main.status
Wait with Custom Timeout
hive msg sub --wait --topic <topic> --timeout <duration>
Timeout format: s (seconds), m (minutes), h (hours)
# Short timeout for quick checks
hive msg sub --wait --topic notifications --timeout 5s
# Moderate timeout for typical handoffs
hive msg sub --wait --topic agent.abc.inbox --timeout 2m
# Long timeout for slow operations
hive msg sub --wait --topic build.production --timeout 10m
Wait and Acknowledge
hive msg sub --wait --topic <topic> --ack
Mark the received message as read so it won't appear in unread queries.
Wait with Wildcard Topics
# Wait for any agent to respond
hive msg sub --wait --topic "agent.*.response"
# Wait for any build event
hive msg sub --wait --topic "build.*.status"
Monitor Continuously
Use --listen mode for continuous message monitoring (outputs ALL messages until timeout):
hive msg sub --listen --topic notifications --timeout 1h
Key difference: --wait returns after ONE message. --listen continues polling and outputs ALL messages.
Inbox Wait Shorthand
hive msg inbox --wait
hive msg inbox --wait --timeout 2m --ack
Equivalent to hive msg sub --wait --topic agent.<id>.inbox but auto-detects the inbox topic.
Output Format
All output is JSON Lines on stdout. On timeout, a JSON status line is printed:
{"status":"timeout","topic":"agent.abc.inbox","duration":"30s"}
Exit code is 1 on timeout.
Timeout Guidelines
| Duration | Use Case |
|---|---|
| 5-30s | Quick handoffs between active agents |
| 1-5m | Normal agent handoffs, human review |
| 10m-1h | Build/test operations, background processing |
| 1-24h | Overnight jobs, asynchronous collaboration |
Common Workflows
Coordinate Agent Handoff
# Complete work, notify, and wait for acknowledgment
hive msg pub --topic agent.bob.inbox -m "Feature X ready. Branch: feat/x"
hive msg sub --wait --topic agent.bob.inbox.ack --timeout 2m
Handle Request-Response
# Send request
hive msg pub --topic coordinator.requests -m "Need assignment: task-type-X"
# Wait for response
hive msg sub --wait --topic agent.myself.inbox --timeout 1m
Handle Timeouts
if hive msg sub --wait --topic agent.bob.inbox --timeout 30s; then
echo "Message received"
else
echo "Timeout: no message received"
fi
Additional Resources
For advanced patterns and troubleshooting, see:
references/troubleshooting.md- Common issues and solutions
Related Skills
/hive:inbox- Check inbox for messages/hive:publish- Send messages to other agents/hive:session-info- Get session details and inbox topic
More from colonyops/hive
tui-component-design
Best practices for building maintainable, testable TUI components using Bubbletea v2 and the Charm ecosystem. Covers component organization, state management, async operations, visual modes, and common pitfalls.
54tui-testing
Comprehensive testing strategies for Bubbletea v2 applications. Covers unit tests, component tests, golden file testing, async operations, external tool integration, and common testing pitfalls.
45inbox
This skill should be used when the user asks to "check my inbox", "read my messages", "any unread messages?", "check for new messages", "see my inbox", or needs to read inter-agent messages from other hive sessions. Provides guidance on reading, filtering, and managing inbox messages.
18config
This skill should be used when the user asks to "configure hive", "setup hive for my workflow", "customize session spawn", "add tmux integration", "create custom keybindings", "add user commands", or needs guidance on hive configuration, rules, spawn commands, terminal integration, or keybindings.
18docs-update
Update documentation after code changes. Use when adding features, changing keybindings, modifying config options, or updating TUI behavior. Automatically finds and updates relevant documentation files (README, recipes, help text).
16session-info
This skill should be used when the user asks "what's my session ID?", "show my inbox topic", "get session info", "what session am I in?", "my agent ID", or needs to retrieve current hive session details for messaging coordination or debugging.
16