{"id":47788002,"url":"https://github.com/falleng0d/handyplus","last_synced_at":"2026-04-03T15:05:25.374Z","repository":{"id":345059730,"uuid":"1102699053","full_name":"falleng0d/HandyPlus","owner":"falleng0d","description":"An Improved Handy: A free, open source, and extensible speech-to-text application that works completely offline.","archived":false,"fork":false,"pushed_at":"2026-03-17T12:55:01.000Z","size":5816,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"dev","last_synced_at":"2026-03-18T03:15:51.409Z","etag":null,"topics":["ai","llm","moonshot-ai","parakeetai-assistant","rust","tauri","transcription","typescript","whisper"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/falleng0d.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null},"funding":{"github":"cjpais","custom":"https://handy.computer/donate"}},"created_at":"2025-11-23T23:09:21.000Z","updated_at":"2026-03-17T13:35:35.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/falleng0d/HandyPlus","commit_stats":null,"previous_names":["falleng0d/handy"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/falleng0d/HandyPlus","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/falleng0d%2FHandyPlus","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/falleng0d%2FHandyPlus/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/falleng0d%2FHandyPlus/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/falleng0d%2FHandyPlus/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/falleng0d","download_url":"https://codeload.github.com/falleng0d/HandyPlus/tar.gz/refs/heads/dev","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/falleng0d%2FHandyPlus/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31359110,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-03T14:24:47.623Z","status":"ssl_error","status_checked_at":"2026-04-03T14:24:32.380Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","llm","moonshot-ai","parakeetai-assistant","rust","tauri","transcription","typescript","whisper"],"created_at":"2026-04-03T15:05:06.984Z","updated_at":"2026-04-03T15:05:25.321Z","avatar_url":"https://github.com/falleng0d.png","language":"TypeScript","funding_links":["https://github.com/sponsors/cjpais","https://handy.computer/donate"],"categories":[],"sub_categories":[],"readme":"# Handy+\n\n`Handy+` is an improved version of Handy https://github.com/cjpais/Handy focused on windows users made by `Mateus Junior`\n\n[![Discord](https://img.shields.io/badge/Discord-%235865F2.svg?style=for-the-badge\u0026logo=discord\u0026logoColor=white)](https://discord.com/invite/WVBeWsNXK4)\n\n**A free, open source, and extensible speech-to-text application that works completely offline.**\n\nHandy is a cross-platform desktop application built with Tauri (Rust + React/TypeScript) that provides simple, privacy-focused speech transcription. Press a shortcut, speak, and have your words appear in any text field—all without sending your voice to the cloud.\n\n## Why Handy+?\n\nHandy was created to fill the gap for a truly open source, extensible speech-to-text tool. As stated on [handy.computer](https://handy.computer):\n\n- **Free**: Accessibility tooling belongs in everyone's hands, not behind a paywall\n- **Open Source**: Together we can build further. Extend Handy for yourself and contribute to something bigger\n- **Private**: Your voice stays on your computer. Get transcriptions without sending audio to the cloud\n- **Simple**: One tool, one job. Transcribe what you say and put it into a text box\n\nHandy isn't trying to be the best speech-to-text app—it's trying to be the most forkable one.\n\n### Handy+ vs Handy\n\nHandy+ is a fork of the original Handy project with a focus on improving the experience for Windows users. It includes:\n\n- **Improved Windows Shortcuts Support**: Shortcuts now work reliably on Windows and prevent propagation to other apps. It now also supports single modifier keys (RightCtrl, RightAlt, Shift) for more flexible shortcut configurations.\n- **Languages Tab**: A new tab in settings to configure language preferences and assign shortcuts for language switching\n- **Languages Shortcuts**: Assign custom shortcuts to quickly switch between languages including associating a post-processing prompt and model for each language\n- **Dictionary Injection**: Send the words on your dictionary to the llm so that it can fix spelling errors (`${dictionary}` variable in the prompt instructions)\n- **Always On Top Fix**: The \"Always on Top\" setting now works correctly on Windows, keeping the app overlay visible\n\n![img.png](.README/general_tab.png)\n\n![img.png](.README/languages_tab.png)\n\n## How It Works\n\n1. **Press** a configurable keyboard shortcut to start/stop recording (or use push-to-talk mode)\n2. **Speak** your words while the shortcut is active\n3. **Release** and Handy processes your speech using Whisper\n4. **Get** your transcribed text pasted directly into whatever app you're using\n\nThe process is entirely local:\n\n- Silence is filtered using VAD (Voice Activity Detection) with Silero\n- Transcription uses your choice of models:\n  - **Whisper models** (Small/Medium/Turbo/Large) with GPU acceleration when available\n  - **Parakeet V3** - CPU-optimized model with excellent performance and automatic language detection\n- Works on Windows, macOS, and Linux\n\n## Quick Start\n\n### Installation\n\n1. Download the latest release from the [releases page](https://github.com/cjpais/Handy/releases) or the [website](https://handy.computer)\n2. Install the application following platform-specific instructions\n3. Launch Handy and grant necessary system permissions (microphone, accessibility)\n4. Configure your preferred keyboard shortcuts in Settings\n5. Start transcribing!\n\n### Development Setup\n\nFor detailed build instructions including platform-specific requirements, see [BUILD.md](BUILD.md).\n\n## Architecture\n\nHandy is built as a Tauri application combining:\n\n- **Frontend**: React + TypeScript with Tailwind CSS for the settings UI\n- **Backend**: Rust for system integration, audio processing, and ML inference\n- **Core Libraries**:\n  - `whisper-rs`: Local speech recognition with Whisper models\n  - `transcription-rs`: CPU-optimized speech recognition with Parakeet models\n  - `cpal`: Cross-platform audio I/O\n  - `vad-rs`: Voice Activity Detection\n  - `rdev`: Global keyboard shortcuts and system events\n  - `rubato`: Audio resampling\n\n### Debug Mode\n\nHandy includes an advanced debug mode for development and troubleshooting. Access it by pressing:\n\n- **macOS**: `Cmd+Shift+D`\n- **Windows/Linux**: `Ctrl+Shift+D`\n\n## Known Issues \u0026 Current Limitations\n\nThis project is actively being developed and has some [known issues](https://github.com/cjpais/Handy/issues). We believe in transparency about the current state:\n\n### Major Issues (Help Wanted)\n\n**Whisper Model Crashes:**\n\n- Whisper models crash on certain system configurations (Windows and Linux)\n- Does not affect all systems - issue is configuration-dependent\n  - If you experience crashes and are a developer, please help to fix and provide debug logs!\n\n**Wayland Support (Linux):**\n\n- Limited or no support for Wayland display server\n\n### Platform Support\n\n- **macOS (both Intel and Apple Silicon)**\n- **x64 Windows**\n- **x64 Linux**\n\n### System Requirements/Recommendations\n\nThe following are recommendations for running Handy on your own machine. If you don't meet the system requirements, the performance of the application may be degraded. We are working on improving the performance across all kinds of computers and hardware.\n\n**For Whisper Models:**\n\n- **macOS**: M series Mac, Intel Mac\n- **Windows**: Intel, AMD, or NVIDIA GPU\n- **Linux**: Intel, AMD, or NVIDIA GPU\n  - Ubuntu 22.04, 24.04\n\n**For Parakeet V3 Model:**\n\n- **CPU-only operation** - runs on a wide variety of hardware\n- **Minimum**: Intel Skylake (6th gen) or equivalent AMD processors\n- **Performance**: ~5x real-time speed on mid-range hardware (tested on i5)\n- **Automatic language detection** - no manual language selection required\n\n## Roadmap \u0026 Active Development\n\nWe're actively working on several features and improvements. Contributions and feedback are welcome!\n\n### In Progress\n\n**Debug Logging:**\n\n- Adding debug logging to a file to help diagnose issues\n\n**macOS Keyboard Improvements:**\n\n- Support for Globe key as transcription trigger\n- A rewrite of global shortcut handling for MacOS, and potentially other OS's too.\n\n**Opt-in Analytics:**\n\n- Collect anonymous usage data to help improve Handy\n- Privacy-first approach with clear opt-in\n\n**Settings Refactoring:**\n\n- Cleanup and refactor settings system which is becoming bloated and messy\n- Implement better abstractions for settings management\n\n**Tauri Commands Cleanup:**\n\n- Abstract and organize Tauri command patterns\n- Investigate tauri-specta for improved type safety and organization\n\n## Troubleshooting\n\n### Manual Model Installation (For Proxy Users or Network Restrictions)\n\nIf you're behind a proxy, firewall, or in a restricted network environment where Handy cannot download models automatically, you can manually download and install them. The URLs are publicly accessible from any browser.\n\n#### Step 1: Find Your App Data Directory\n\n1. Open Handy settings\n2. Navigate to the **About** section\n3. Copy the \"App Data Directory\" path shown there, or use the shortcuts:\n   - **macOS**: `Cmd+Shift+D` to open debug menu\n   - **Windows/Linux**: `Ctrl+Shift+D` to open debug menu\n\nThe typical paths are:\n\n- **macOS**: `~/Library/Application Support/HandyPlus/`\n- **Windows**: `C:\\Users\\{username}\\AppData\\Roaming\\HandyPlus\\`\n- **Linux**: `~/.config/HandyPlus/`\n\n#### Step 2: Create Models Directory\n\nInside your app data directory, create a `models` folder if it doesn't already exist:\n\n```bash\n# macOS/Linux\nmkdir -p ~/Library/Application\\ Support/HandyPlus/models\n\n# Windows (PowerShell)\nNew-Item -ItemType Directory -Force -Path \"$env:APPDATA\\HandyPlus\\models\"\n```\n\n#### Step 3: Download Model Files\n\nDownload the models you want from below\n\n**Whisper Models (single .bin files):**\n\n- Small (487 MB): `https://blob.handy.computer/ggml-small.bin`\n- Medium (492 MB): `https://blob.handy.computer/whisper-medium-q4_1.bin`\n- Turbo (1600 MB): `https://blob.handy.computer/ggml-large-v3-turbo.bin`\n- Large (1100 MB): `https://blob.handy.computer/ggml-large-v3-q5_0.bin`\n\n**Parakeet Models (compressed archives):**\n\n- V2 (473 MB): `https://blob.handy.computer/parakeet-v2-int8.tar.gz`\n- V3 (478 MB): `https://blob.handy.computer/parakeet-v3-int8.tar.gz`\n\n#### Step 4: Install Models\n\n**For Whisper Models (.bin files):**\n\nSimply place the `.bin` file directly into the `models` directory:\n\n```\n{app_data_dir}/models/\n├── ggml-small.bin\n├── whisper-medium-q4_1.bin\n├── ggml-large-v3-turbo.bin\n└── ggml-large-v3-q5_0.bin\n```\n\n**For Parakeet Models (.tar.gz archives):**\n\n1. Extract the `.tar.gz` file\n2. Place the **extracted directory** into the `models` folder\n3. The directory must be named exactly as follows:\n   - **Parakeet V2**: `parakeet-tdt-0.6b-v2-int8`\n   - **Parakeet V3**: `parakeet-tdt-0.6b-v3-int8`\n\nFinal structure should look like:\n\n```\n{app_data_dir}/models/\n├── parakeet-tdt-0.6b-v2-int8/     (directory with model files inside)\n│   ├── (model files)\n│   └── (config files)\n└── parakeet-tdt-0.6b-v3-int8/     (directory with model files inside)\n    ├── (model files)\n    └── (config files)\n```\n\n**Important Notes:**\n\n- For Parakeet models, the extracted directory name **must** match exactly as shown above\n- Do not rename the `.bin` files for Whisper models—use the exact filenames from the download URLs\n- After placing the files, restart Handy to detect the new models\n\n#### Step 5: Verify Installation\n\n1. Restart Handy\n2. Open Settings → Models\n3. Your manually installed models should now appear as \"Downloaded\"\n4. Select the model you want to use and test transcription\n\n### How to Contribute\n\n1. **Check existing issues** at [github.com/cjpais/Handy/issues](https://github.com/cjpais/Handy/issues)\n2. **Fork the repository** and create a feature branch\n3. **Test thoroughly** on your target platform\n4. **Submit a pull request** with clear description of changes\n5. **Join the discussion** - reach out at [contact@handy.computer](mailto:contact@handy.computer)\n\nThe goal is to create both a useful tool and a foundation for others to build upon—a well-patterned, simple codebase that serves the community.\n\n## Related Projects\n\n- **[Handy](https://github.com/cjpais/Handy)** - The original Tauri desktop application\n- **[Handy CLI](https://github.com/cjpais/handy-cli)** - The original Python command-line version\n- **[handy.computer](https://handy.computer)** - Project website with demos and documentation\n\n## License\n\nMIT License - see [LICENSE](LICENSE) file for details.\n\n## Acknowledgments\n\n- **Whisper** by OpenAI for the speech recognition model\n- **whisper.cpp and ggml** for amazing cross-platform whisper inference/acceleration\n- **Silero** for great lightweight VAD\n- **Tauri** team for the excellent Rust-based app framework\n- **Community contributors** helping make Handy better\n\n---\n\n_\"Your search for the right speech-to-text tool can end here—not because Handy is perfect, but because you can make it perfect for you.\"_\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffalleng0d%2Fhandyplus","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffalleng0d%2Fhandyplus","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffalleng0d%2Fhandyplus/lists"}