VLab

give your agents a voice, not just a tab

click to copy curl -fsSL https://vlab.daystra.com/install.sh | sh

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 an MCP speak tool that any MCP-compatible agent can call. The agent passes text; VLab speaks it aloud on your Mac — locally by default, with no API key and nothing leaving the machine (xAI Grok and ElevenLabs are opt-in cloud upgrades). You set the persona, mood, and snark level. You can mute it or stop mid-sentence when you're on a call — and if you miss an alert, vlab replay plays it back.

Requirements: macOS Apple Silicon. No API key, no signup — vlab speaks locally out of the box.

Install

# 1. Install vlab
curl -fsSL https://vlab.daystra.com/install.sh | sh

# 2. Download the local voice (one time, ~310MB, runs on your Mac)
vlab models pull kokoro

# 3. Speak from your terminal — no key, no account
vlab speak "Build complete. All tests passed."

# 4. Wire vlab into Claude Code (registers the MCP server + installs the skill)
vlab install

# 5. Verify everything's wired (voice model, audio, config)
vlab doctor

# 6. (Optional) Talk back — local voice input. Pull a speech model once (~466MB, on-device):
vlab models pull small.en
vlab listen   # chirp, speak, and it transcribes locally — audio never leaves your machine

# 7. (Optional) Prefer a cloud voice? Store a key, then point vlab at it.
security add-generic-password -s GROK_API_KEY -a "$USER" -w "your-grok-key"
#    ~/.vlab/config.toml:  [defaults]  provider = "xai"  persona = "rex"

Tip: vlab doctor checks the voice model, audio, and any cloud keys. Cloud engines are entirely optional — the local voice needs no account. (Env vars $GROK_API_KEY / $ELEVENLABS_API_KEY also work if you prefer the Keychain alternative.)

Features

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.

Dictate into any prompt (iTerm2)

The MCP listen tool is agent-initiated — it opens the mic when your agent asks you something. This is the other direction: you press a key, talk, and your words are typed into whatever prompt has focus — Claude Code, a REPL, a commit message. Nothing is submitted; you read it and press Enter yourself.

Save this as ~/.local/bin/vlab-dictate and chmod +x it:

#!/bin/sh
# Press ^Space, talk, your words get typed into the focused prompt.
PATH="$HOME/.local/bin:/usr/bin:/bin"; export PATH

# iTerm2 raises a modal dialog on ANY byte written to stderr — log it instead.
mkdir -p "$HOME/.vlab"; exec 2>>"$HOME/.vlab/dictate.log"

# iTerm2 pipes the session's screen output into our stdin; drain it so a
# burst of output can't back-pressure the terminal.
cat >/dev/null &

# stdout is TYPED into your session, so ONLY the transcript may go there:
# --json keeps status text off stdout, jq passes only a clean transcript, and
# newlines are stripped because a bare newline would submit the line for you.
vlab listen --json --max-seconds 30 --silence-ms 1500 \
  | jq -j 'select(.outcome == "ok") | .transcript' \
  | tr '\n\r' '  '

Then bind it: iTerm2 → Settings → Keys → Key Bindings → +, press ^Space, set Action to Run Coprocess, and paste the absolute path /Users/you/.local/bin/vlab-dictate as the Parameter. (Uses jq — recent macOS ships one at /usr/bin/jq; otherwise brew install jq.)

CLI Reference


macOS (Apple Silicon) · Apache-2.0 / MIT · No API key required · llms.txt

A Cybercussion Interactive, LLC project

Copied to clipboard