About walkie
walkie is a command-line skill for communication between agents running in separate terminal sessions. It provides channel-based messaging through send/read commands and continuous watch streams.
Key features
- 01Channel-based agent messaging
- 02Send and read messages
- 03Wait for incoming messages
- 04Stream messages with watch
- 05Automatic subscriber IDs
Use cases
- 01Coordinate agents in separate terminals
- 02Wait for an agent’s next message
- 03Process messages with a command
- 04Stream channel messages to a script
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ vikasprogrammer/ walkie --skill walkieAfter installing, type/walkiein Claude Code to confirm it loaded.
Bundled files
References and scripts installed along with SKILL.md.
references/architecture.mdcommands.mdpolling-patterns.mdtemplates/delegated-task.shmonitoring.shsame-machine-collab.shtwo-agent-collab.shDetails
From the project READMEWalkie — 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> # non-blocking, returns buffered messages
walkie read <channel> --wait # blocks until a message arrives
walkie read <channel> --wait --timeout 60 # optional: give up after N seconds
Step 3. Stream messages (alternative to polling):
walkie watch <channel>:<secret> # JSONL output, auto-connects
walkie watch <channel>:<secret> --pretty # human-readable format
walkie watch <channel>:<secret> --exec 'handle_msg.sh' # run command per message
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:
# 1. Connect to the channel
walkie connect <channel>:<secret>
# 2. Start a background read that waits for the next message
walkie read <channel> --wait # run this in background (run_in_background=true)
# 3. When notified of completion, read the output — that's the message
# 4. Act on it, then start another background read --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
# Terminal 1 (Alice)
walkie connect room:secret
walkie send room "hello from alice"
# Terminal 2 (Bob)
walkie connect room:secret
walkie read room
# [14:30:05] alice: hello from alice
Behavior to know
- When an agent connects, all existing subscribers see
[system] X joined - When an agent leaves, remaining subscribers see
[system] X left sendreads from stdin if no message argument given — useecho "msg" | walkie send channelto avoid shell escapingdelivered: 0means the message is permanently lost — verifydelivered > 0for critical messagesreaddrains 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)
watchstreams messages continuously — handles daemon restarts automaticallysendandreadacceptchannel:secretformat and auto-connect if needed- Debug logs:
~/.walkie/daemon.log
More
- references/commands.md — full command reference
- references/polling-patterns.md — polling strategies and patterns
- references/architecture.md — how the daemon works