{
  "markdown": "# vox\n\n**A native macOS MCP server that gives Claude a voice.**\n\nBuilt in Swift. No Node.js. No Python. No Electron. Just a single binary.\n\n```json\n{\n  \"mcpServers\": {\n    \"vox\": {\n      \"command\": \"/path/to/vox\"\n    }\n  }\n}\n```\n\nThen just say: `listen` — and Claude hears you.\n\n---\n\n## Tools\n\n| Tool | What it does |\n|------|-------------|\n| `listen` | Activates the mic, waits for you to speak, returns transcript + detected language when silence is detected |\n| `speak` | Speaks text aloud — ElevenLabs TTS with automatic fallback to macOS system voice |\n\n## Why Swift + macOS only\n\n- **AVFoundation** — native mic capture, zero overhead\n- **SFSpeechRecognizer** — Apple on-device speech recognition, works offline, 50+ languages\n- **NLLanguageRecognizer** — automatic language detection per utterance\n- **AVSpeechSynthesizer** — built-in TTS fallback, no API key needed\n- Single ~200KB binary. Zero npm install. Zero Python venv.\n\n## Requirements\n\n- macOS 13+\n- Microphone set as default in System Settings → Sound → Input\n- Microphone + Speech Recognition permission for your terminal app\n- Optional: `ELEVENLABS_API_KEY` in `~/.claude/.env` for high-quality multilingual TTS\n\n## Install\n\n### Option 1: Prompt for Claude Code\n\nCopy and paste this into [Claude Code](https://claude.ai/code):\n\n```\nInstall vox (native macOS voice input/output MCP server):\n\n1. Download the code-signed binary to ~/vox:\n   curl -L https://github.com/boska/vox/releases/download/v1.1.0/vox-1.1.0-darwin-arm64 -o ~/vox && chmod +x ~/vox\n\n2. Add to ~/.claude.json in the mcpServers section:\n   {\n     \"mcpServers\": {\n       \"vox\": {\n         \"command\": \"/Users/$(whoami)/vox\"\n       }\n     }\n   }\n\n3. Restart Claude Code\n\n4. Test it by saying: listen\n```\n\nClaude will handle the download, configuration, and restart.\n\n### Option 2: Manual Install (Pre-built Binary)\n\n```bash\ncurl -L https://github.com/boska/vox/releases/download/v1.1.0/vox-1.1.0-darwin-arm64 -o ~/vox && chmod +x ~/vox\n```\n\nThen add to `~/.claude.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"vox\": {\n      \"command\": \"/Users/$(whoami)/vox\"\n    }\n  }\n}\n```\n\nRestart Claude Code.\n\n### Option 3: Build from Source\n\n```bash\ngit clone https://github.com/boska/vox\ncd vox\nswift build -c release --product vox\n```\n\nAdd to `~/.claude.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"vox\": {\n      \"command\": \"/path/to/vox/.build/release/vox\"\n    }\n  }\n}\n```\n\nRestart Claude Code.\n\n## Voice\n\nDefault TTS voice is **Hana** via ElevenLabs (`eleven_multilingual_v2`). Supports Chinese, English, Czech, Vietnamese, and 20+ languages in the same voice. Without an ElevenLabs key, falls back to macOS system voice automatically.\n\n## How it works\n\n```\nClaude Code\n    ↓ JSON-RPC 2.0 over stdio\n  vox binary\n    ↓                        ↑\nAVAudioEngine        AVSpeechSynthesizer\nSFSpeechRecognizer       ElevenLabs API\nNLLanguageRecognizer\n```\n\nNo ports. No sockets. No daemon. Just stdin/stdout.\n\n## Troubleshooting\n\n**\"No speech detected\"** — speak within ~1s of calling listen, VAD cuts off after 0.8s silence.\n\n**No default input device** — Mac mini has no built-in mic. Connect USB/Bluetooth mic or iPhone via Continuity Camera, set default in System Settings → Sound → Input.\n\n**ElevenLabs silent** — add `ELEVENLABS_API_KEY=sk-...` to `~/.claude/.env`, or leave it out to use system voice.\n",
  "bytes": 3319,
  "sha": "38d6e19a89bf4162aa52e80819c125441d91395eedf9f6696196cd3fbea40e63",
  "repo_slug": "boska/vox",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_boska_vox_1c96f56c/readme"
}