Say it. Type less. — Zero-dependency, fully offline voice-to-text for every app.
Voice-typeless (VTL) is a lightweight desktop app that captures your voice with a global hotkey and instantly types the transcribed text into any focused application — no internet connection, no account, no cloud.
📸 Screenshot placeholder — UI screenshot coming in v0.2.0 release
Dictation tools either require a cloud connection (breaking privacy) or are locked to specific apps. VTL runs 100% offline using on-device speech models (SenseVoice / Whisper via sherpa-onnx), works in any text field on Windows, and restores your clipboard after pasting so you never notice it was used.
| Requirement | Version | Notes |
|---|---|---|
| Rust + Cargo | 1.77+ | MSVC toolchain on Windows |
| Node.js | 18+ | |
| Go | 1.23+ | |
| VS 2019 Build Tools | MSVC 14.29 | See note below |
Windows toolchain note: Use VS 2019 Build Tools (MSVC 14.29). MSVC 14.50 (VS 2025) is missing
lib\x64\andinclude\directories required by the Rust linker. Run. .\scripts\env-msvc.ps1to auto-detect and apply the correct toolchain environment.
# 1. Activate the correct MSVC environment (Windows only)
. .\scripts\env-msvc.ps1
# 2. Install frontend dependencies
cd frontend && npm install && cd ..
# 3. Start development mode (hot-reload Tauri + Svelte)
cargo tauri dev
# 4. Build the production installer
cargo tauri build
# Installer output: src-tauri\target\release\bundle\nsis\
| # | Feature | Description |
|---|---|---|
| 1 | Persistent Config | Settings saved to AppData\Roaming\VoiceTypeless\config.json and restored on relaunch |
| 2 | Persistent History | All recognition results saved to AppData\Roaming\VoiceTypeless\history.json |
| 3 | Clear All History | One-click clear with a confirmation dialog |
| 4 | Export History | Copy all transcription results to clipboard as formatted plain text |
| 5 | Search / Filter History | Real-time text search across all history items (frontend, no round-trip) |
| 6 | Statistics Panel | Total recordings, total characters, and per-language breakdown |
| 7 | Demo Mode | Simulate a full recording + transcription cycle — no microphone or speech model required |
| 8 | Theme Toggle | Dark, Light, and System theme options — persisted in config.json |
| 9 | Windows Autostart | Optional launch-at-startup via HKCU\...\Run registry key |
| 10 | System Tray | Minimize to tray with Show/Hide and Quit items in the tray context menu |
| Feature | Status |
|---|---|
| Global hotkey push-to-talk & free-speech | 🔜 In design |
| Offline speech recognition via SenseVoice | 🔜 Requires Go Core integration |
| Whisper-tiny model support | 🔜 Planned |
| GPU acceleration (DirectML / CUDA) | 🔜 Planned |
| Auto-paste transcription to active app | 🔜 Planned |
| Voice Activity Detection (VAD) auto-stop | 🔜 Planned |
| Plugin system (JS / Lua transform scripts) | 🔜 Planned |
| Windows 7 compatibility build | 🔜 Planned |
| Layer | Technology | Role |
|---|---|---|
| Desktop Shell | Tauri v2 (Rust) | Window management, IPC routing, OS integration, tray |
| Frontend | Svelte 5 + TailwindCSS + TypeScript | All user-visible UI; no business logic |
| Core Library | Go 1.23+ | Audio capture, speech recognition, text post-processing |
| Speech Engine | sherpa-onnx + ONNX Runtime | Offline inference (SenseVoice / Whisper) |
| Audio I/O | malgo (miniaudio Go bindings) | Microphone capture at 16 kHz mono |
The Go Core runs as a sidecar process spawned by Tauri and communicates via JSON-RPC 2.0
over a named pipe. For full design details see docs/architecture.md.
VTL stores all user data in the Windows app-data folder:
%APPDATA%\Roaming\VoiceTypeless\
├── config.json # Application settings (hotkeys, theme, device, language, …)
└── history.json # Transcription history (capped at maxHistoryItems, default 50)
Default config is written automatically on first launch. To reset all settings, delete
config.json — it will be recreated with defaults on the next start.
See docs/api.md for the complete Tauri command reference, including all
parameters, return types, and error codes.
git checkout -b feat/your-featurecargo tauri devPlease open an issue before beginning large or breaking changes so we can coordinate.
See CHANGELOG.md for the full version history.
MIT © Voice-typeless Contributors