What is VLab
VLab (Voice Lab) is a text-to-speech bridge for AI coding agents. Instead of silently finishing a long task and hoping you notice, your agent can speak — announcing completions, surfacing errors, asking for your attention — without interrupting your flow.
It exposes a single MCP tool (speak) that any MCP-compatible agent can call. The agent passes text; VLab speaks it aloud through xAI Grok or ElevenLabs voices on your Mac (with a free offline say fallback). You set the persona, mood, and snark level. You can mute it or stop mid-sentence when you're on a call.
Install
# 1. Install vlab
curl -fsSL https://vlab.daystra.com/install.sh | sh
# 2. Store a TTS API key in your macOS Keychain (set at least one).
# vlab reads these by service name from the Keychain — no env vars,
# no secrets in dotfiles.
# xAI Grok — default voices: rex, ara, leo, eve, sal
security add-generic-password -s GROK_API_KEY -a "$USER" -w "your-grok-key"
# ElevenLabs — voices: veda, alfred, + any you adopt
security add-generic-password -s ELEVENLABS_API_KEY -a "$USER" -w "your-elevenlabs-key"
# 3. Verify everything's wired (keys, audio, config)
vlab doctor
# 4. Wire vlab into Claude Code (registers the MCP server + installs the skill)
vlab install
# 5. Speak from your terminal
vlab speak "Build complete. All tests passed."
Tip: vlab doctor tells you which keys it found. Both services are optional individually — set whichever voice engine you want. (Env vars $GROK_API_KEY / $ELEVENLABS_API_KEY also work if you prefer.)
Features
- MCP tool:
speak— agents call it with text; VLab converts via xAI Grok or ElevenLabs and plays audio locally. Works from Claude Code, Cursor, Windsurf, or any MCP client. - Personas — pick a voice character: Grok's
rex,ara,leo,eve,salor ElevenLabs'veda,alfred. Set globally or per-call. - Mood & snark dials — tune the delivery. Set the mood (neutral, upbeat, urgent) and snark level (0–10) so the voice matches the moment.
- Mute / stop —
vlab mutesilences output;vlab stopcuts the current utterance mid-sentence. Both take effect immediately. - Self-update & one-command setup —
vlab updateupgrades to the latest release in place;vlab installwires the MCP server + skill into Claude Code for you. - Doctor check —
vlab doctorverifies your Grok / ElevenLabs keys, audio device, and config in one command.
Wiring into Claude Code
One command registers the global MCP server and installs the agent skill into ~/.claude:
vlab install
Then restart Claude Code. Prefer to wire it by hand (or use another MCP client)? Add this to your project's .mcp.json:
{
"mcpServers": {
"vlab": {
"command": "vlab",
"args": ["mcp-server"]
}
}
}
Once wired, your agent can call vlab__speak any time it wants to surface something audibly — task done, build failed, waiting for your input.
CLI Reference
vlab speak "<text>"— speak text immediatelyvlab say "<text>"— alias for speakvlab mute/vlab stop— silence output / cut the current utterancevlab install— wire the MCP server + skill into Claude Codevlab update— upgrade VLab to the latest releasevlab voices [--search <q>]— list voices or search the libraryvlab usage— this month's TTS character spendvlab doctor— check keys, audio device, and configvlab mcp-server— start the MCP server (used by.mcp.json)vlab --version— print installed version
macOS (Apple Silicon) · Apache-2.0 / MIT · Requires an xAI Grok or ElevenLabs API key · llms.txt
A Cybercussion Interactive, LLC project