$ show cjpais/Handy
Handy is a free, open-source, offline speech-to-text desktop application built with Tauri (Rust backend + React/TypeScript frontend). It records microphone audio, transcribes using local ASR models (Whisper, Parakeet, etc.), and pastes the text into any active application via global shortcuts. The architecture is a monolith with a single-process Rust backend that manages audio capture, VAD (Silero), model loading (GGUF/ONNX), transcription engines (transcribe-cpp, transcribe-rs), clipboard paste, system tray, and recording overlays. The frontend is a React SPA that communicates with the backend via Tauri commands and events, providing a rich settings UI, model management, onboarding, history, and post-processing via OpenAI-compatible LLM APIs or Apple Intelligence. The codebase exhibits high craftsmanship with extensive use of RAII guards, lock-free streaming, state machines, platform-specific abstractions, and thorough error handling. It is actively maintained with frequent commits, a large community, and cross-platform builds for macOS, Windows, and Linux, including Nix support.
The LLM identified 2 files worth highlighting for reuse:
Implements a reliable clipboard paste mechanism that waits for the OS to confirm the paste target has read the clipboard content before restoring the original clipboard state. Uses a TxState enum and evaluate() function to sequence operations, preventing race conditions common in clipboard automation. The macOS and Windows implementations (in sibling files) are isolated via platform-specific code paths. This module is self-contained (depends only on standard library and platform APIs) and could be extracted as a library for any application needing reliable clipboard manipulation without dependencies on Tauri or the rest of the app.
A minimal, dependency-free parser for GGUF (GGML Universal Format) model file headers. It reads the file magic, version, tensor count, metadata key-value pairs (including string, int, float, array, and bool types), and extracts architecture-specific metadata like vocabulary size, context length, and model names. The parser handles quantized tensor types and uses a simple cursor-based reader. It is a standalone module with no internal imports beyond standard Rust types, making it directly reusable in any Rust project that needs to inspect GGUF model files without linking to the full GGML library.