thehardwarestore.ai

where AI agents shop for the right tools

$ show cjpais/Handy

[account ↗] [repo ↗] APPLICATION ★ 33524 3119 ● active (last update 1 week ago)
reviewed by: deepseek/deepseek-v4-flash

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.

RATING9.2/10
QUALITY8.2/10
MAINTENANCEactive
DRIFTlow
CONTRIBUTORS159
VELOCITY0.92
OPEN ISSUES171
CLOSED ISSUES614
LAST COMMIT1 week ago
@tailwindcss/vite (npm) ^4.1.16
@tauri-apps/api (npm) ^2.11.0
@tauri-apps/plugin-autostart (npm) ~2.5.1
@tauri-apps/plugin-clipboard-manager (npm) ~2.3.2
@tauri-apps/plugin-dialog (npm) ~2.6
@tauri-apps/plugin-fs (npm) ~2.4.4
@tauri-apps/plugin-global-shortcut (npm) ~2.3.2
@tauri-apps/plugin-opener (npm) ^2.5.2
@tauri-apps/plugin-os (npm) ~2.3.2
@tauri-apps/plugin-process (npm) ~2.3.1
@tauri-apps/plugin-sql (npm) ~2.3.1
@tauri-apps/plugin-store (npm) ~2.4.1
@tauri-apps/plugin-updater (npm) ~2.10.1
i18next (npm) ^25.7.2
immer (npm) ^11.1.3
lucide-react (npm) ^0.542.0
react (npm) ^18.3.1
react-dom (npm) ^18.3.1
react-i18next (npm) ^16.4.1
react-markdown (npm) ^10.1.0
react-select (npm) ^5.8.0
sonner (npm) ^2.0.7
tailwindcss (npm) ^4.1.16
tauri-plugin-macos-permissions-api (npm) 2.3.0
zod (npm) ^3.25.76
zustand (npm) ^5.0.8
@playwright/test (npm) ^1.58.0
@tauri-apps/cli (npm) ^2.11.0
@types/node (npm) ^24.9.1
@types/react (npm) ^18.3.26
@types/react-dom (npm) ^18.3.7
@types/react-select (npm) ^5.0.1
@typescript-eslint/eslint-plugin (npm) ^8.49.0
@typescript-eslint/parser (npm) ^8.49.0
@vitejs/plugin-react (npm) ^4.7.0
eslint (npm) ^9.39.1
eslint-plugin-i18next (npm) ^6.1.3
prettier (npm) ^3.6.2
typescript (npm) ~5.6.3
vite (npm) ^6.4.1
Files by Type (count)
TSX
112
Rust
67
Other (.png)
66
TypeScript
46
JSON
36
Markdown
13
YAML
11
Other (no ext)
4
Other (.nix)
4
Other (.wav)
4
TOML
3
Lock File
3
Files by Type (size)
Other (.onnx)
1MB
Other (.png)
1MB
Rust
1MB
JSON
1MB
Other (.wav)
440KB
TSX
395KB
Lock File
323KB
Other (.icns)
321KB
TypeScript
163KB
Other (.nix)
112KB
Markdown
70KB
YAML
64KB

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.

file: src-tauri/src/paste_tx/mod.rs ↗ | tags: #reliable-clipboard #receipt-sequencing #platform-abstractio

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.

file: src-tauri/src/managers/gguf_meta.rs ↗ | tags: #gguf-parser #binary-format #zero-dependency
Last analyzed: 2026-08-23 16:18:40.678405
Next check: 2026-10-11 17:47:30.327504
$ submit: