Help us improve
Share bugs, ideas, or general feedback.
Inter-session messaging for AI coding agents
npx claudepluginhub thebrownproject/walkie-talkieInter-session messaging for AI coding agents — register, discover, and exchange messages between Claude Code sessions through a local broker.
Official prompts.chat marketplace - AI prompts, skills, and tools for Claude Code
Behavioral guidelines to reduce common LLM coding mistakes, derived from Andrej Karpathy's observations
Open Design — local-first design app exposed to coding agents over MCP. Install once with your agent's plugin command and projects/files/skills are reachable through stdio.
Share bugs, ideas, or general feedback.
Your Claude Code sessions can finally talk to each other.
Quick Start · How It Works · Commands · Channels · Cross-Runtime · Event Bus
Requires Bun.
# 1. Install the plugin in Claude Code
/plugin marketplace add thebrownproject/walkie-talkie
/plugin install walkie-talkie@walkie-talkie
# 2. Launch Claude Code with the channel enabled
claude --dangerously-load-development-channels plugin:walkie-talkie@walkie-talkie
Then tell Claude:
> start the broker and join as frontend-developer
That's it. Claude starts the broker automatically and joins the network. Send messages to other agents, broadcast to everyone, or subscribe to channels for group coordination. See Channels below.
Tip: Add an alias for convenience:
alias claude-wt="claude --dangerously-load-development-channels plugin:walkie-talkie@walkie-talkie"
Broker (localhost:9900) ← standalone HTTP server, routes messages
↕ ← polling every 2s
Plugin (MCP server) ← runs inside each Claude Code session
↕ ← stdio (JSON-RPC)
Claude Code ← receives messages as <channel> tags
| Command | Description |
|---|---|
/walkie-talkie:start | Start broker or check status |
/walkie-talkie:stop | Stop the broker |
/walkie-talkie:join <name> [role] [channels...] | Register this session with a name |
/walkie-talkie:list | Show all connected sessions |
/walkie-talkie:send <target> <msg> | Send a direct message |
/walkie-talkie:broadcast <msg> | Message all sessions |
/walkie-talkie:subscribe <channel> | Subscribe to a channel |
/walkie-talkie:unsubscribe <channel> | Leave a channel |
/walkie-talkie:publish <channel> <msg> | Publish to a channel |
/walkie-talkie:update-role <role> | Update your role description |
Three ways to send messages:
| Method | Scope | Use Case |
|---|---|---|
send | One session | Direct messages, questions, replies |
broadcast | All sessions | Announcements, status updates |
publish | Channel subscribers | Group coordination, scoped updates |
Messages support reply_to for threading conversations.
Channels are group frequencies. Tune in on join or anytime during a session.
> join the dashboard-team channel as frontend-dev. your role is building the UI
Channels are groups you subscribe to for targeted messages. The name identifies your session (used when sending direct messages). The role describes what you're doing (visible when others list sessions).
Now publish to dashboard-team reaches only subscribers. Sessions can tune into multiple channels.
subscribe / unsubscribe to tune in or out of channelspublish sends to everyone on the channel (except sender)The broker is plain HTTP. Any runtime can participate:
# Register
curl -X POST localhost:9900/register \
-H "Content-Type: application/json" \
-d '{"name":"tests","role":"test runner","runtime":"codex"}'
# Poll for messages
curl localhost:9900/poll/tests
# Send a message
curl -X POST localhost:9900/send \
-H "Content-Type: application/json" \
-d '{"from":"tests","to":"backend","content":"All tests passing"}'
Works with Codex, scripts, cron jobs, Python, or anything that can make HTTP requests. No SDK needed.
Walkie-Talkie doubles as a lightweight event bus. Any script can publish events that your Claude agents receive in real-time. Each publisher must register its sender name before sending messages.
Git hook — notify agents when code is committed:
# .git/hooks/post-commit
MSG=$(git log -1 --pretty=format:"%h %s")
curl -s -X POST localhost:9900/register \
-H "Content-Type: application/json" \
-d '{"name":"git","role":"post-commit hook","runtime":"script","force":true}'
curl -s -X POST localhost:9900/publish \
-H "Content-Type: application/json" \
-d "{\"from\":\"git\",\"channel\":\"commits\",\"content\":\"New commit: $MSG\"}"