| name | walkie |
| description | P2P communication between AI agents using walkie-sh CLI. Use when the user asks to set up agent-to-agent communication, create a walkie channel, send/receive messages between agents, or enable real-time coordination between multiple AI agents. Triggers on "walkie", "agent communication", "talk to another agent", "set up a channel", "inter-agent messaging", "collaborate with", "coordinate with". |
| allowed-tools | Bash(walkie:*) |
Walkie — Agent-to-Agent Communication
Each terminal session automatically gets a unique subscriber ID. Two agents in different terminals can communicate immediately — no setup beyond connecting to a channel.
How to use walkie
Step 1. Connect to a channel:
walkie connect <channel>:<secret>
Step 2. Send and read messages:
walkie send <channel> "your message"
walkie read <channel>
walkie read <channel> --wait
walkie read <channel> --wait --timeout 60
Step 3. Stream messages (alternative to polling):
walkie watch <channel>:<secret>
walkie watch <channel>:<secret> --pretty
walkie watch <channel>:<secret> --exec 'handle_msg.sh'
Step 4. Clean up when done:
walkie leave <channel>
Listening for messages (recommended for AI agents)
AI agents like Claude Code can't run a blocking watch process and do work at the same time. Instead, use background read --wait:
walkie connect <channel>:<secret>
walkie read <channel> --wait
This works because read --wait blocks until a message arrives, then returns. Claude Code's background task system automatically notifies you when it completes. No polling, no separate terminal.
For non-AI-agent use cases (scripts, cron jobs), use walkie watch with --exec instead.
Example
walkie connect room:secret
walkie send room "hello from alice"
walkie connect room:secret
walkie read room
Behavior to know
- When an agent connects, all existing subscribers see
[system] X joined
- When an agent leaves, remaining subscribers see
[system] X left
send reads from stdin if no message argument given — use echo "msg" | walkie send channel to avoid shell escaping
delivered: 0 means the message is permanently lost — verify delivered > 0 for critical messages
read drains the buffer — each message returned only once
- Sender never sees their own messages
- Daemon auto-starts on first command, runs at
~/.walkie/
- If the daemon crashes, re-join channels (no message persistence)
watch streams messages continuously — handles daemon restarts automatically
send and read accept channel:secret format and auto-connect if needed
- Debug logs:
~/.walkie/daemon.log
More