Skip to content
github-actions[bot] edited this page Jun 26, 2026 · 2 revisions

VoxCtrl Documentation

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.


Wiki Index

Document Description
Overview What VoxCtrl does, key features, and design principles
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 hotkey listener, 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, history viewer, 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

Quick Summary

Microphone → Audio Capture → Whisper Inference → Post-Processing → Output Router
                                                                         │
                                               ┌────────────────────────┤
                                               │                        │
                                          Inject text            Clipboard/File/
                                          to window              HTTP/Webhook/Socket/
                                                                 DBus/MCP/Exec/Pipe

Tech Stack:

  • Frontend: Svelte 5 + Tailwind CSS 4 + Vite 5
  • Desktop Shell: Tauri 2 (Rust + WebView)
  • Backend: Rust (Tokio async), ~10 specialized crates
  • Speech: whisper.cpp (GGUF models, CPU/CUDA/Vulkan)
  • TTS: Piper (ONNX neural voices) + Espeak-ng fallback
  • Config: TOML + JSON, hot-reloadable

Clone this wiki locally