-
Notifications
You must be signed in to change notification settings - Fork 3
README
github-actions[bot] edited this page Sep 26, 2026
·
10 revisions
VoxCtrl is a high-performance, privacy-first voice-to-text dictation application and programmable voice input broker. All processing happens 100% on-device with zero telemetry or cloud dependencies.
Global shortcuts are registered with your desktop through the XDG GlobalShortcuts portal, so VoxCtrl does not read your keyboard and needs no permission setup at all. See Privacy & Security for exactly what it can see and how to verify it.
| Document | Description |
|---|---|
| Overview | What VoxCtrl does, key features, and design principles |
| Privacy & Security | What VoxCtrl can see, what the installer touches, and how to verify both |
| Release signing | How releases are signed, how the updater verifies them, and the one-time key setup |
| Architecture | System design, crate layout, data flow, concurrency model |
| Audio Pipeline | Audio capture, device management, VAD, resampling |
| Speech Recognition | Whisper engine, models, inference pipeline, post-processing |
| Routing | Output targets, hotkey bindings, delivery types |
| Hotkeys | Global shortcuts via the desktop portal, gestures, platform support |
| Text-to-Speech | TTS engines, voice packs, playback |
| Integrations | MCP server, DBus service, OpenAI-compatible LLM API, webhooks |
| UI & Windows | Svelte frontend, overlay, settings |
| API Reference | Tauri IPC commands and frontend events |
| Configuration | All config files, schemas, and options |
| Installation & Setup | Dependencies, building, running |
| Development Guide | Dev environment, build system, crate structure |
| Windows Build | Building VoxCtrl on Windows |
| Windows Port Plan | Audit and phased plan for full Windows 11 parity |
| Windows Testing | Hand to a Windows tester: install, what to try, how to send a log |
| Bug Reports | What Settings → Bug Report collects, what it never collects, and the four ways to send one |
Microphone → Audio Capture → Speech Inference (whisper.cpp / Moonshine / Parakeet / Remote)
│
▼
Post-Processing & S1-mini Normalization
│
▼
Output Router
│
┌───────────────────────┴───────────────────────┐
│ │
Inject text Clipboard / File / HTTP /
to window Webhook / Socket / DBus /
MCP / Exec / Pipe / Speak / Chat
Tech Stack:
- Frontend: Svelte 5 + Tailwind CSS 4 + Vite 5
-
Desktop Shell: Tauri 2 (Rust + WebView); the dictation overlay is a second
WebviewWindow, not a separate process - Backend: Rust (Tokio async), 15 specialized workspace crates
- Speech Recognition: whisper.cpp (GGUF, CPU/Vulkan/CUDA), Moonshine (ONNX/WebGPU), Parakeet TDT (ONNX), Remote Speech Engine (OpenAI-compatible)
-
Dictation Cleanup: S1-mini (Qwen3-0.6B) via Vulkan-accelerated
voxctrl-llm-sidecar(llama.cpp) - Text-to-Speech: Breeze-TTS-2, Piper, Pocket-TTS, Inflect-Micro-v2, VoxCPM2, eSpeak-NG (with on-demand idle unload)
- Config: TOML + JSON, hot-reloadable