
voicehook
io.github.voicehook-aiPublished by GitHub account voicehook-aiv1.0.0Updated Oct 25, 2026
Talk with your agents. A voice call in the browser that your agent can start or join.
Overview
Voicehook lets an assistant start or join a browser voice call, speak updates aloud, and post status, cards and decisions while it keeps working.
- What you can do
- Start a call and get a human link plus share text to pass on, or join a call from an invite link with a chip label and greeting, waiting for the person to open the link if needed. Wait for the next turn (user speech, decision, operator, context, call ended) and speak text aloud as the voicebot. Maintain a status board the voicebot answers from, and show cards with text, code, link or image on the call page. Post short activity lines to the feed and raise yes/no or up-to-three-option questions on the Decision Board, with answers returned in the next turn. Leave the call when done.
- When to use it
- Useful when you want to talk to a coding agent by voice instead of reading terminal output, or hear progress on a long task while it continues. Suited to a single agent in a call through the MCP connector; multi-session local setups are steered to the separate CLI.
- Requirements
- Remote MCP endpoint at voicehook.ai/mcp, added as a custom connector in Claude clients or via the Claude Code plugin; no key declared. A browser to open the call link, and an invite link with its code to join an existing call. The CLI path needs uv/uvx and a shell.
Installation
In SourceWeft
- Open voicehook in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.
Use with an agent
Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.
Read https://sourceweft.com/mcp/io.github.voicehook-ai%2Fvoicehook/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.Other MCP clients
Add this to your client's mcpServers config.
{
"mcpServers": {
"voicehook": {
"type": "http",
"url": "https://voicehook.ai/mcp?utm_source=mcpregistry&utm_campaign=d11-registry"
}
}
}README
voicehook-agent
[CI] [CodeQL] [License: MIT] [Plugin version] [CLI version]
Talk to your coding agents instead of reading their output.
[Installing the voicehook-join plugin in Claude Code: two commands, then the plugin is enabled]
voicehook.ai is a voice call in the browser. Hit "invite agent", hand the link to Claude Code, Codex or opencode, and talk to it while it keeps working. Delta, the voice in the call, answers from the status board and FAQ your agent keeps up to date, so you hear what is going on without opening a terminal.
This repo holds the agent side: the voicehook-join Claude Code plugin and the
voicehook-agent CLI that lets any agent with a shell join a call.
Three ways to connect
Which one? MCP (connector or plugin) is the entry: nothing to install, one agent per call, the only path with
create_call, cards and decisions. The CLI is the pro tool for multi-agent work on one machine. The
HTTPS bridge is the protocol underneath and the fallback.
MCP/bridge = one agent in the call; activity lines are only what that agent writes by hand. For several agents/sessions on one machine working on one call, use the voicehook-agent CLI (pro): its multi-session relay + Claude Code hook feed the live activity log, status and decisions of ALL local sessions into the call automatically. MCP/bridge run on the server and cannot see the user's local sessions.
Details and install without git: docs/CLI.md.
In Claude Code:
Once connected, paste an invite link (https://voicehook.ai/r/<slug>?invite=<code>)
into your agent and it joins the call.
MCP tools (connector and plugin):
On 5xx, 503 or a network error the agent simply calls the tool again after 2 s; the session stays valid. Several agents in one call: rules.
CLI quickstart
--nameand--modelare mandatory: a display name the agent picks for itself and the exact model it runs on. Name your real model and vendor, never "Claude" unless you are Claude.- Use the full invite link, including
?invite=<code>. - stdout prints what the user and the voicebot say; every line on stdin is spoken.
In a call, keep voicehook-agent listen running in your harness's background mode
(Claude Code: run_in_background, never &/nohup): it exits on the first event that
needs you, which wakes you; start it again after handling it. Since 0.21.4 the Stop hook
(voicehook-agent hook install) blocks a turn end while your join is connected and nobody
listens (listen guard). Since 0.21.5
the join itself holds your presence and spools every event durably while you work
(event spool): listen picks them
up with a cursor, nothing is lost, and the Stop hook warns on unread events. When you wait for
the human, ALWAYS decide, never only a status (0.21.6: status --waiting ... --question ...
shows "wartet auf dich" together with the decision). In a call: answer every utterance first
(say), hand work longer than 2 tool calls to background agents, keep turns short; since 0.21.7
new utterances reach you mid-turn through the PostToolUse hook.
Every decision and every status entry MUST carry hidden background for the voicebot
(0.21.4): --context "..." plus the 3 most likely follow-up questions with prepared
answers, --faq "Frage::Antwort" (no answer yet: say who works on it and the ETA, "In
Arbeit bei , Ergebnis ca. 10 Min"). Activity lines may carry them too. On status
they attach to the item they follow; without them the CLI prints a hint (see
docs/CLI.md).
For a loop without polling (say, next, status, leave), the status board, the activity
hook and all flags see docs/CLI.md. Since 0.21.0: decide --context "..."
gives Delta the background of a question, ui large decisions / ui layout thirds /
ui focus voicehook control the call page of the humans, status|activity --project NAME
tags your project (docs/CLI.md).
Since 0.23.0 the agent in the call can give Delta standing rules and facts while the call
runs, so he answers more himself: voicehook-agent delta-rule add "Sprich den Kunden mit Sie an", voicehook-agent delta-note add "Der Release ist am Freitag", ... list, ... rm <id>.
Silent, from his next turn, max 20 rules and 30 facts of 300 characters.
Right after join (0.21.4) the CLI lists the other Claude Code / Codex sessions running on
this machine and suggests asking the human "Soll ich die anderen N Sessions hier einbinden,
damit sie ihren Status in den Call bringen?"; on yes the agent runs the printed setup
commands. Agents on MCP or the bridge cannot see local sessions: they say it works in
principle with the CLI installed: uv tool install voicehook-agent && voicehook-agent hook install.
Several Claude Code sessions on one machine (0.15.0): run voicehook-agent hook install
once; while one session is in a call, every other session reports turn goal, PR, deploy
and errors under its own name in the call's activity feed
(multi-session relay).
Since 0.16.0 such a helper session can also ask the human (decide, answer via
relay-next or decide --wait) and keep its own status board (status --doing ...)
(helper sessions).
OpenAI Codex CLI (0.20.0): voicehook-agent hook install --agent codex writes the same
automation into ~/.codex (hooks.json, notify, a local MCP server with status,
decide, next, activity; backup first), then trust the hooks once with /hooks in
Codex (other coding agents).
Watcher (0.32.0): while a call is active, join and helper-import start ONE detached
voicehook-agent watch per machine. It keeps every local session's board entry current with
one whole German sentence (cheapest model, claude -p --model haiku, hourly token cap, else a
fixed sentence), adds an activity line on state changes and removes decisions of sessions that
went on. Interval 1/5/10/15 min (call page > --interval > 15); it ends with the call;
VOICEHOOK_WATCH=0 turns it off
(watcher).
Session Watcher (0.34.0, named so since 0.35.0): voicehook-agent connect once (approve the code in the browser), then
voicehook-agent caretaker install: the watcher is active in every call of yours automatically, no
per-call start and no keys to create
(caretaker).
Pricing
About 10 minutes free every day. Prepaid from 10 EUR, no subscription.
Documentation
Development, CI and releases
CI runs tests, ruff, plugin validation, a secret scan and a skill drift check on every PR. Release tags, the plugin release checklist and the PyPI setup are in docs/DEVELOPMENT.md.
License
MIT, see LICENSE.
Made in Germany, hosted in Nuremberg (Hetzner). No cookies, no tracking, no call recordings. Nothing you or your agent say is stored. Privacy policy
Source: README.md at commit 867a888
Tools
0Version history
1- v1.0.0LatestOct 17, 2026
Score
85% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 daysRequired25 pts
- Auth declaredRequired10 pts
- Tools listedRequired15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts