Introduction to mausVoice
Relevant source files
The following files were used as context for generating this wiki page:
mausVoice is a cross-platform desktop application designed for high-performance voice-to-text dictation. It allows users to dictate into any application using a global hotkey, featuring live transcription and AI-driven cleanup to remove filler words, apply punctuation, and format text according to specific writing styles. The project is built with a focus on privacy and performance, utilizing a hybrid local-plus-cloud architecture that supports fully offline use via local Whisper models.
Sources: README.md:16-25, apps/desktop/PRODUCT.md:7-14, llms.txt:3-6
The application follows the architectural pattern where "Rust is the API, TypeScript is the Brain." Business logic and state management are handled within a TypeScript/React frontend (using Zustand and Immer), while Rust manages native capabilities such as audio capture, keyboard injection, encryption, and filesystem operations via the Tauri v2 framework.
Sources: llms.txt:18-24, apps/desktop/README.md:43-47, CLAUDE.md:21-23
Core Architecture
mausVoice operates as a Tauri v2 desktop application. The system is divided into a TypeScript-based frontend for logic and a Rust-based backend for native system access.
System Components
| Component | Responsibility | Technologies |
|---|---|---|
| Frontend | Business logic, State Management, UI | React, TypeScript, Zustand, Immer |
| Backend (Tauri) | System APIs, Native Bridge, Encryption | Rust |
| Storage | Persistence of dictation history and settings | SQLite |
| Transcription | Voice-to-text conversion | Deepgram (Cloud) or Whisper (Local) |
| Cleanup | AI post-processing and styling | Groq (LLM) |
Sources: llms.txt:18-35, apps/desktop/README.md:43-47, apps/desktop/src-tauri/tauri.conf.json:84-86
Data and Execution Flow
The following diagram illustrates how a user interaction triggers a sequence from audio capture to text injection in a focused application.
The "Rust is the API, TypeScript is the Brain" philosophy ensures that all decision-making occurs in the TypeScript layer, while Rust provides the necessary native capabilities.
Sources: llms.txt:26-32, CLAUDE.md:21-28
Native Capabilities
The Rust backend handles tasks that require direct system access, ensuring high performance and security.
Audio and Keyboard Management
- Audio Capture: Native capture of microphone input for both streaming and batch transcription.
- Keyboard Injection: The mechanism used to paste the final cleaned text into the application currently in focus.
- Global Shortcuts: Global hotkey listeners that trigger dictation regardless of which app is active.
Sources: README.md:39-44, llms.txt:18-24, apps/desktop/PRODUCT.md:7-10
Security and Encryption
API keys for services like Deepgram and Groq are never hardcoded or baked into the build. They are entered by the user in-app and stored locally, encrypted using the XChaCha20-Poly1305 algorithm.
Sources: README.md:47-49, llms.txt:54-57, apps/desktop/PRODUCT.md:12-14
Development and Structure
The project is managed as a Turborepo monorepo, separating the desktop application, shared packages, and documentation.
Repository Layout
| Path | Description |
|---|---|
apps/desktop | Main Tauri application (React + Zustand). |
apps/desktop/src-tauri | Rust API layer, SQLite migrations, and platform-specific code. |
packages/ | Shared TypeScript packages and Rust crates (e.g., voice-ai, rust_transcription). |
apps/docs | Authoritative documentation site built with Astro. |
Sources: llms.txt:37-47, CLAUDE.md:14-19, apps/desktop/README.md:31-41
Project Structure (apps/desktop)
The TypeScript source code is organized into specific directories to maintain the "Brain" logic:
src/
├── actions/ # Business logic orchestration
├── components/ # React components
├── state/ # Zustand state slices
├── repos/ # Data access interfaces (SQLite/AI Providers)
└── utils/ # Pure utility functions
Sources: apps/desktop/README.md:31-38
External Service Integration
While mausVoice supports fully local operation, it integrates with specific cloud providers for enhanced performance and accuracy.
| Provider | Purpose | Default Model |
|---|---|---|
| Deepgram | Streaming transcription | nova-3 |
| Groq | AI text cleanup and styling | Configurable LLM |
| Local | Offline transcription | Whisper (CPU/GPU) |
Sources: README.md:31-36, llms.txt:49-57
Conclusion
mausVoice is architected to disappear into the user's workflow, providing a "dictation overlay" that feels immediate. By leveraging Rust for native performance and TypeScript for complex logic, it provides a robust, private, and extensible tool for knowledge workers who prioritize local-first compute and high-efficiency input.
Sources: apps/desktop/PRODUCT.md:7-10, README.md:52-54