Vox

io.github.boskaPublished by GitHub account boskav1.0.0Updated Oct 28, 2026

Native macOS MCP server for voice I/O — Swift binary, SFSpeechRecognizer + ElevenLabs TTS.

VerifiedSTDIODesktop onlyMedia & DesignAI & ML

Overview

AI-generated overview

Native macOS voice I/O server that lets an assistant capture your speech as text and speak replies aloud, using Apple speech recognition and ElevenLabs TTS.

What you can do
  • Capture speech: activate the microphone, wait for you to speak, and return a transcript with the detected language once silence is detected.
  • Speak text aloud: read text out through ElevenLabs TTS, falling back to the macOS system voice when no API key is set.
When to use it
Useful when you want to talk to a coding assistant by voice instead of typing, or have it read answers back to you, on a Mac with a working microphone.
Requirements
macOS 13 or later with a default input device set in System Settings, plus microphone and Speech Recognition permission for the terminal app. Runs as a local binary (download or build with Swift); no Node.js or Python. Optional ELEVENLABS_API_KEY for high-quality TTS.
Before you install
The microphone stays active while listening, so nearby speech is captured and transcribed. If ELEVENLABS_API_KEY is set, spoken text is sent to the ElevenLabs API for synthesis; leaving it unset keeps speech local via the system voice. The README's install prompt asks the assistant to download a binary and edit your Claude configuration.

Installation

In SourceWeft

  1. Open Vox in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

vox

A native macOS MCP server that gives Claude a voice.

Built in Swift. No Node.js. No Python. No Electron. Just a single binary.

json
{  "mcpServers": {    "vox": {      "command": "/path/to/vox"    }  }}

Then just say: listen — and Claude hears you.


Tools

ToolWhat it does
listenActivates the mic, waits for you to speak, returns transcript + detected language when silence is detected
speakSpeaks text aloud — ElevenLabs TTS with automatic fallback to macOS system voice

Why Swift + macOS only

  • AVFoundation — native mic capture, zero overhead
  • SFSpeechRecognizer — Apple on-device speech recognition, works offline, 50+ languages
  • NLLanguageRecognizer — automatic language detection per utterance
  • AVSpeechSynthesizer — built-in TTS fallback, no API key needed
  • Single ~200KB binary. Zero npm install. Zero Python venv.

Requirements

  • macOS 13+
  • Microphone set as default in System Settings → Sound → Input
  • Microphone + Speech Recognition permission for your terminal app
  • Optional: ELEVENLABS_API_KEY in ~/.claude/.env for high-quality multilingual TTS

Install

Option 1: Prompt for Claude Code

Copy and paste this into Claude Code:

Install vox (native macOS voice input/output MCP server):
1. Download the code-signed binary to ~/vox:   curl -L https://github.com/boska/vox/releases/download/v1.1.0/vox-1.1.0-darwin-arm64 -o ~/vox && chmod +x ~/vox
2. Add to ~/.claude.json in the mcpServers section:   {     "mcpServers": {       "vox": {         "command": "/Users/$(whoami)/vox"       }     }   }
3. Restart Claude Code
4. Test it by saying: listen

Claude will handle the download, configuration, and restart.

Option 2: Manual Install (Pre-built Binary)

bash
curl -L https://github.com/boska/vox/releases/download/v1.1.0/vox-1.1.0-darwin-arm64 -o ~/vox && chmod +x ~/vox

Then add to ~/.claude.json:

json
{  "mcpServers": {    "vox": {      "command": "/Users/$(whoami)/vox"    }  }}

Restart Claude Code.

Option 3: Build from Source

bash
git clone https://github.com/boska/voxcd voxswift build -c release --product vox

Add to ~/.claude.json:

json
{  "mcpServers": {    "vox": {      "command": "/path/to/vox/.build/release/vox"    }  }}

Restart Claude Code.

Voice

Default 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.

How it works

Claude Code    ↓ JSON-RPC 2.0 over stdio  vox binary    ↓                        ↑AVAudioEngine        AVSpeechSynthesizerSFSpeechRecognizer       ElevenLabs APINLLanguageRecognizer

No ports. No sockets. No daemon. Just stdin/stdout.

Troubleshooting

"No speech detected" — speak within ~1s of calling listen, VAD cuts off after 0.8s silence.

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.

ElevenLabs silent — add ELEVENLABS_API_KEY=sk-... to ~/.claude/.env, or leave it out to use system voice.

Source: README.md at commit f0fd5cc

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v1.0.0LatestSep 16, 2026

Score

40% 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 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 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

    Declare a license in the repository or the registry entry.