Vox is a local-first voice stack for Apple platforms. This repo brings together the Hudson-powered menu bar app, the Swift runtime, the companion daemon, the TypeScript clients, and the CLI.
VoxCore,VoxEngine,VoxService, andVoxBridge: embeddable Swift packages for macOS and iOS apps.voxd: Vox Companion, the Swift daemon for web-facing, shared-process, and operator integrations.@voxd/sdk: TypeScript SDK. Typed JSON-RPC client for Vox Companion integrations.@voxd/client: Browser SDK. HTTP bridge client for local web integrations.vox: Node CLI. Health checks, benchmarks, warm-up scheduling, dashboards.Vox.app: Hudson-based macOS menu bar app, packaged as a signed and notarized DMG by release automation.
Apple apps can embed Vox directly. Bun and Node tools can connect to voxd over local WebSocket JSON-RPC. Browser clients can connect through the companion HTTP bridge with @voxd/client.
- Build a native Apple app: start with
VoxCore,VoxEngine,VoxService, andVoxBridge. - Build a local tool or companion-connected service: start with
voxdplus@voxd/sdk. - Build a browser integration: start with
@voxd/clientplus the local bridge path. - Operate or benchmark Vox itself: start with the
voxCLI.
Requirements:
- macOS 26+
- Bun 1.2+
- Node 22+
- Swift 6.2+
uvfor the MLX-backed demo paths
To work on Vox:
git clone https://github.com/arach/vox.git
cd vox
bun install
bun run build
bun run testUseful loops:
bun run site:dev
bun run docs:build
swift build --package-path swiftTo use Vox Companion locally from the CLI or SDK:
git clone https://github.com/arach/vox.git
cd vox
bun install
bun run buildStart the daemon, verify health, then transcribe:
node packages/cli/dist/index.js daemon start
node packages/cli/dist/index.js doctor
node packages/cli/dist/index.js models preload parakeet:v3
node packages/cli/dist/index.js transcribe file /path/to/audio.wavIf you are writing a local client, start here:
packages/client/for the TypeScript SDKpackages/web-client/for the browser SDKswift/for direct Apple embed mode
To run the standalone macOS demo app:
git clone https://github.com/arach/vox.git
cd vox
bun install
swift run --package-path examples/macos-minimal VoxMinimalExampleWhat the demo does:
- records locally from the mic
- transcribes with Parakeet
- replies with Apple Intelligence when available
- falls back to local Qwen 0.6B when Apple Intelligence is not ready
- speaks back with Kokoro through the MLX audio provider
Notes:
- The first run may download Parakeet, Kokoro, or the Qwen fallback model.
- The app will ask for microphone access.
- Apple Intelligence is optional for the demo, not required.
The current standalone demo lives in examples/macos-minimal/ and is a good reference app for direct embed mode.
swift/containsVoxCore,VoxEngine,VoxService, and thevoxddaemon.packages/clientcontains the TypeScript SDK for talking tovoxdover local WebSocket JSON-RPC.packages/web-clientcontains the browser SDK for talking to the local HTTP bridge.packages/clicontains thevoxCLI.docs/contains Dewey source docs.site/contains the marketing site, docs route, and OG generation.
bun install
bun run dev
bun run build
bun run build:all
bun run test
bun run test:e2e
bun run site:build
bun run site:og
bun run docs:generateEach transcription or synthesis request appends a tagged sample to ~/.vox/performance.jsonl with clientId, route, modelId, and voiceId when applicable.
This lets you answer a few practical questions: is the hot model fast, which integration is regressing, and whether latency is in inference, audio prep, or cold runtime work.
vox daemon start
vox doctor
vox models list
vox models install
vox warmup start
vox warmup schedule 500
vox logs daemon --tail 80
vox transcribe status
vox transcribe cancel
vox transcribe file --timestamps /path/to/audio.wav
vox transcribe bench /path/to/audio.wav 5
vox perf dashboard
vox transcribe live --timestamps- Runtime discovery:
~/.vox/runtime.json - Latency samples:
~/.vox/performance.jsonl - Daemon logs:
~/.vox/logs/voxd.log(written even whenvoxdis auto-started by the CLI)
voxd is Vox Companion: the shared-process and web-facing transport for Vox. bun run test:e2e is an opt-in macOS integration suite that boots voxd, preloads the model, synthesizes speech with say, and checks transcribe file output against keyword expectations.
Speech synthesis supports Apple system voices locally and OpenAI TTS (gpt-4o-mini-tts, tts-1, and tts-1-hd) when OPENAI_API_KEY is configured. The packaged app bundles voxd and voxttsd so the menu bar app and CLI share the same companion runtime.
- Dewey source docs:
docs/ - Generated handoff files:
AGENTS.md,llms.txt,docs.json,install.md - Website and
/docsroute:site/ - OG image template:
site/og-template.html
- GitHub Pages deploys from
.github/workflows/deploy-pages.ymltohttps://voxd.cc - npm publishing runs from
.github/workflows/publish-packages.ymlonv*tags and publishes@voxd/sdk,@voxd/client, and@voxd/cli - DMG builds run from
.github/workflows/release-dmg.yml. Tag builds create or update the matching GitHub Release and uploadVox.dmg. - Manual DMG releases can be started from the workflow page with a version. The workflow validates the repo versions, builds the DMG, signs and notarizes it, creates
v<version>when needed, creates the GitHub Release, and uploads the installer.
Required release secrets:
APPLE_SIGNING_CERT_BASE64APPLE_SIGNING_CERT_PASSWORDAPPLE_SIGN_IDENTITYAPPLE_IDAPPLE_APP_PASSWORDAPPLE_TEAM_IDNPM_TOKENfor package publishing