Talking-stick
talking-stick is the fleet's voice-input router — the agent-tools utility that decides which agent receives transcribed speech when several are running at once. In a multi-agent session the microphone is a shared resource; talking-stick is the mutex over it.
What it does
A voice daemon (talking-stick listen) transcribes speech and hands it to whichever agent currently holds the stick. Agents pass the stick between themselves so only one is fed voice input at a time:
| Command | Effect |
|---|---|
grab |
Take the stick immediately (non-blocking — the preferred agent path) |
join [msg] |
Queue for the stick, block until it's your turn |
leave |
Release the stick, pass to the next in the queue |
transfer PANE |
Hand the stick to a specific pane |
status / list |
Show the current holder / the queue |
route add/remove/list |
Manage semantic routing rules (embed / rerank) |
With listen --route the daemon can route by meaning rather than by explicit hand-off — semantic rules match an utterance to the agent whose registered role fits it best.
In the canon
talking-stick is the voice-side sibling of director (which routes text between agents) and part of the same coordination layer that keeps the fleet from talking over itself. It surfaces through fay, the phone/desk voice surface.
Sources
~/ht/agent-tools/bin/talking-stick— the tool.~/.claude/CLAUDE.md— the fleet's talking-stick usage contract.
See also
- Agent-tools — the repo it ships in.
- Director — the text-side inter-agent bus.
- Fay — the voice surface.