mcpField
V
voicehook

voicehook

Remote
voicehook.aiCommunication0Updated today

About voicehook

voicehook is a browser-based voice call service for talking with coding agents while they work. Its MCP server lets one agent join or start a call and communicate through speech, status boards, cards, activity updates, and decisions.

Key features

  1. 01Start and join browser calls
  2. 02Speak and receive voice turns
  3. 03Maintain a status board
  4. 04Show cards and activity updates
  5. 05Ask questions through a Decision Board

Use cases

  1. 01Discussing ongoing work with a coding agent
  2. 02Starting a call and sharing its invite link
  3. 03Getting updates from an agent without opening a terminal
  4. 04Collecting a human decision during an agent task

MCP support

The MCP endpoint at `https://voicehook.ai/mcp` provides call creation, joining, and in-call tools. MCP supports one agent per call; the CLI is needed to relay several local agent sessions.

Configuration

Remote servers need no local install. Pick your client, then copy the config or install in one click.

Endpointhttps://voicehook.ai/mcp?utm_source=mcpregistry&utm_campaign=d11-registry
Copy install command
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

Run commands in a terminal; paste JSON into the client’s MCP config and restart. Servers that need sign-in will prompt on first connect.

Tools

Details

From the project 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

Your agentHow to connect
Claude CodePlugin, two commands (see below). Details
claude.ai / Claude DesktopCustom connector https://voicehook.ai/mcp (Settings, Connectors, Add custom connector; no key). Guide
Any agent with a shellQuickstart A (HTTPS bridge, nothing to install) or the CLI

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.

pathroleuse it when
MCP (voicehook.ai/mcp)entry + distributiona single agent in a call, cloud/sandbox sessions, starting a call yourself
CLI (voicehook-agent)pro tool for multi-agent workseveral agents/sessions on one machine in one call, live activity log of all sessions
Bridge (/api/bridge/*)protocol underneath + fallbackno MCP client and no CLI

Details and install without git: docs/CLI.md.

In Claude Code:

/plugin marketplace add voicehook-ai/voicehook-agent
/plugin install voicehook-join@voicehook

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):

toolwhat it does
create_callstart a new call for your user (main agent only: never delegate create_call to a subagent, the link would stay in its thread): human_url plus share_text (pass it on verbatim: open the link in a normal browser, not an app's built-in browser); hard rule: show share_text as text first, then join again until connected, then the next loop
joinjoin a call from an invite link with your chip label; greets for you in the call language (greet, default on); returns the session, the call language and the call context (first_actions); before the person opened a create_call link it waits (up to 200 s in Claude clients, else 50 s) and returns waiting_for_human with next_action: call it again at once until it returns the session, never end the turn before; a local Claude Code also gets local_cli_hint (this CLI keeps it in the call)
nextwait up to 50 s for the next turn (user, decision, operator, context, ended); call it at least every 10 to 15 s, one loop per agent; after a pause it brings missed
saythe voicebot speaks the text
statusstatus board (never spoken) the voicebot answers from, optional chip emoji
showa card on the call page (text, code, link or image), never spoken
activityone line of 3 to 8 words for the activity feed, on every step
decidea question for the Decision Board (yes/no or up to 3 options); the answer comes back in next
leaveleave the call

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

uvx voicehook-agent join 'https://voicehook.ai/r/<slug>?invite=<code>' --name <your-own-name> --model <your-model-name>
  • --name and --model are 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).

Pricing

About 10 minutes free every day. Prepaid from 10 EUR, no subscription.

Documentation

DocumentContents
docs/CLI.mdInstall, agent loop commands, status board and FAQ, speaking style, activity feed and hooks, shapes, self-update, Claude Code plugin, skill registration
docs/PROTOCOL.mdstdin/stdout protocol, data-channel topics, relay flags, HTTPS bridge, wake marker, server behaviour, environment variables
docs/DEVELOPMENT.mdCI jobs, plugin releases, CLI releases, PyPI setup
OPERATOR-PROTOCOL.mdServer-side operator protocol (voicehook.ai)

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

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.