[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-5398":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":22,"archived":23,"fork":23,"defaultBranch":24,"hasWiki":25,"hasPages":23,"topics":26,"createdAt":10,"pushedAt":10,"updatedAt":31,"readmeContent":32,"aiSummary":33,"trendingCount":16,"starSnapshotCount":16,"syncStatus":34,"lastSyncTime":35,"discoverSource":36},5398,"Handy","cjpais\u002FHandy","cjpais","A free, open source, and extensible speech-to-text application that works completely offline.","https:\u002F\u002Fhandy.computer",null,"Rust",23536,1965,75,89,0,50,412,2051,277,44.88,"MIT License",false,"main",true,[27,28,29,30],"accessibility","cross-platform","speech-to-text","tauri-v2","2026-06-12 02:01:09","# Handy\n\n[![Discord](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FDiscord-%235865F2.svg?style=for-the-badge&logo=discord&logoColor=white)](https:\u002F\u002Fdiscord.com\u002Finvite\u002FWVBeWsNXK4)\n\n**A free, open source, and extensible speech-to-text application that works completely offline.**\n\nHandy is a cross-platform desktop application that provides simple, privacy-focused speech transcription. Press a shortcut, speak, and have your words appear in any text field. This happens on your own computer without sending any information 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:\u002F\u002Fhandy.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## How It Works\n\n1. **Press** a configurable keyboard shortcut to start\u002Fstop 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\u002FMedium\u002FTurbo\u002FLarge) 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:\u002F\u002Fgithub.com\u002Fcjpais\u002FHandy\u002Freleases) or the [website](https:\u002F\u002Fhandy.computer)\n   - **macOS**: Also available via [Homebrew cask](https:\u002F\u002Fformulae.brew.sh\u002Fcask\u002Fhandy): `brew install --cask handy`\n   - **Windows**: Also available via [winget](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fwinget-pkgs): `winget install cjpais.Handy` \\\n     **Note:** The Homebrew cask and winget package are not maintained by the Handy developers.\n2. Install the application\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## Integrations\n\n\u003Ca href=\"https:\u002F\u002Fwww.raycast.com\u002Fmattiacolombomc\u002Fhandy\" title=\"Install Handy Raycast Extension\">\u003Cimg src=\"https:\u002F\u002Fwww.raycast.com\u002Fmattiacolombomc\u002Fhandy\u002Finstall_button@2x.png?v=1.1\" height=\"64\" style=\"height: 64px;\" alt=\"Install handy Raycast Extension\" \u002F>\u003C\u002Fa>\n\nControl Handy from [Raycast](https:\u002F\u002Fwww.raycast.com) — start\u002Fstop recording, browse transcript history, manage dictionary, switch models and languages.\n\n[Source](https:\u002F\u002Fgithub.com\u002Fmattiacolombomc\u002Fraycast-handy) · by [@mattiacolombomc](https:\u002F\u002Fgithub.com\u002Fmattiacolombomc)\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  - `transcribe-rs`: CPU-optimized speech recognition with Parakeet models\n  - `cpal`: Cross-platform audio I\u002FO\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\u002FLinux**: `Ctrl+Shift+D`\n\n### CLI Parameters\n\nHandy supports command-line flags for controlling a running instance and customizing startup behavior. These work on all platforms (macOS, Windows, Linux).\n\n**Remote control flags** (sent to an already-running instance via the single-instance plugin):\n\n```bash\nhandy --toggle-transcription    # Toggle recording on\u002Foff\nhandy --toggle-post-process     # Toggle recording with post-processing on\u002Foff\nhandy --cancel                  # Cancel the current operation\n```\n\n**Startup flags:**\n\n```bash\nhandy --start-hidden            # Start without showing the main window\nhandy --no-tray                 # Start without the system tray icon\nhandy --debug                   # Enable debug mode with verbose logging\nhandy --help                    # Show all available flags\n```\n\nFlags can be combined for autostart scenarios:\n\n```bash\nhandy --start-hidden --no-tray\n```\n\n> **macOS tip:** When Handy is installed as an app bundle, invoke the binary directly:\n>\n> ```bash\n> \u002FApplications\u002FHandy.app\u002FContents\u002FMacOS\u002FHandy --toggle-transcription\n> ```\n\n## Known Issues & Current Limitations\n\nThis project is actively being developed and has some [known issues](https:\u002F\u002Fgithub.com\u002Fcjpais\u002FHandy\u002Fissues). 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 support for Wayland display server\n- Requires [`wtype`](https:\u002F\u002Fgithub.com\u002Fatx\u002Fwtype) or [`dotool`](https:\u002F\u002Fsr.ht\u002F~geb\u002Fdotool\u002F) for text input to work correctly (see [Linux Notes](#linux-notes) below for installation)\n\n### Linux Notes\n\n**Text Input Tools:**\n\nFor reliable text input on Linux, install the appropriate tool for your display server:\n\n| Display Server | Recommended Tool | Install Command                                    |\n| -------------- | ---------------- | -------------------------------------------------- |\n| X11            | `xdotool`        | `sudo apt install xdotool`                         |\n| Wayland        | `wtype`          | `sudo apt install wtype`                           |\n| Both           | `dotool`         | `sudo apt install dotool` (requires `input` group) |\n\n- **X11**: Install `xdotool` for both direct typing and clipboard paste shortcuts\n- **Wayland**: Install `wtype` (preferred) or `dotool` for text input to work correctly\n- **dotool setup**: Requires adding your user to the `input` group: `sudo usermod -aG input $USER` (then log out and back in)\n\nWithout these tools, Handy falls back to enigo which may have limited compatibility, especially on Wayland.\n\n**Other Notes:**\n\n- **Runtime library dependency (`libgtk-layer-shell.so.0`)**:\n  - Handy links `gtk-layer-shell` on Linux. If startup fails with `error while loading shared libraries: libgtk-layer-shell.so.0`, install the runtime package for your distro:\n\n    | Distro        | Package to install    | Example command                        |\n    | ------------- | --------------------- | -------------------------------------- |\n    | Ubuntu\u002FDebian | `libgtk-layer-shell0` | `sudo apt install libgtk-layer-shell0` |\n    | Fedora\u002FRHEL   | `gtk-layer-shell`     | `sudo dnf install gtk-layer-shell`     |\n    | Arch Linux    | `gtk-layer-shell`     | `sudo pacman -S gtk-layer-shell`       |\n\n  - For building from source on Ubuntu\u002FDebian, you may also need `libgtk-layer-shell-dev`.\n\n- The recording overlay is disabled by default on Linux (`Overlay Position: None`) because certain compositors treat it as the active window. When the overlay is visible it can steal focus, which prevents Handy from pasting back into the application that triggered transcription. If you enable the overlay anyway, be aware that clipboard-based pasting might fail or end up in the wrong window.\n- If you are having trouble with the app, running with the environment variable `WEBKIT_DISABLE_DMABUF_RENDERER=1` may help\n- If Handy fails to start reliably on Linux, see [Troubleshooting → Linux Startup Crashes or Instability](#linux-startup-crashes-or-instability).\n- **Global keyboard shortcuts (Wayland):** On Wayland, system-level shortcuts must be configured through your desktop environment or window manager. Use the [CLI flags](#cli-parameters) as the command for your custom shortcut.\n\n  **GNOME:**\n  1. Open **Settings > Keyboard > Keyboard Shortcuts > Custom Shortcuts**\n  2. Click the **+** button to add a new shortcut\n  3. Set the **Name** to `Toggle Handy Transcription`\n  4. Set the **Command** to `handy --toggle-transcription`\n  5. Click **Set Shortcut** and press your desired key combination (e.g., `Super+O`)\n\n  **KDE Plasma:**\n  1. Open **System Settings > Shortcuts > Custom Shortcuts**\n  2. Click **Edit > New > Global Shortcut > Command\u002FURL**\n  3. Name it `Toggle Handy Transcription`\n  4. In the **Trigger** tab, set your desired key combination\n  5. In the **Action** tab, set the command to `handy --toggle-transcription`\n\n  **Sway \u002F i3:**\n\n  Add to your config file (`~\u002F.config\u002Fsway\u002Fconfig` or `~\u002F.config\u002Fi3\u002Fconfig`):\n\n  ```ini\n  bindsym $mod+o exec handy --toggle-transcription\n  ```\n\n  **Hyprland:**\n\n  Add to your config file (`~\u002F.config\u002Fhypr\u002Fhyprland.conf`):\n\n  ```ini\n  bind = $mainMod, O, exec, handy --toggle-transcription\n  ```\n\n- You can also manage global shortcuts outside of Handy via Unix signals, which lets Wayland window managers or other hotkey daemons keep ownership of keybindings:\n\n  | Signal    | Action                                    | Example                |\n  | --------- | ----------------------------------------- | ---------------------- |\n  | `SIGUSR2` | Toggle transcription                      | `pkill -USR2 -n handy` |\n  | `SIGUSR1` | Toggle transcription with post-processing | `pkill -USR1 -n handy` |\n\n  Example Sway config:\n\n  ```ini\n  bindsym $mod+o exec pkill -USR2 -n handy\n  bindsym $mod+p exec pkill -USR1 -n handy\n  ```\n\n  `pkill` here simply delivers the signal—it does not terminate the process.\n\n### Platform Support\n\n- **macOS (both Intel and Apple Silicon)**\n- **x64 Windows**\n- **x64 Linux**\n\n### System Requirements\u002FRecommendations\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 & 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## Verify Release Signatures\n\nHandy release artifacts are signed with Tauri's updater signature format. The public key is stored in [`src-tauri\u002Ftauri.conf.json`](src-tauri\u002Ftauri.conf.json) under `plugins.updater.pubkey`.\n\nTo verify a release manually, set `ARTIFACT` to the filename you downloaded, save the `pubkey` value from `src-tauri\u002Ftauri.conf.json` to `handy.pub.b64`, then decode the public key and matching `.sig` file from base64 and verify the artifact with `minisign`:\n\n```bash\n# Replace with the file you downloaded\nARTIFACT=\"Handy_0.8.1_amd64.AppImage\"\n\npython3 - \"$ARTIFACT\" \u003C\u003C'PY'\nimport base64, pathlib, sys\n\nartifact = sys.argv[1]\n\npub = pathlib.Path(\"handy.pub.b64\").read_text().strip()\npathlib.Path(\"handy.pub\").write_bytes(base64.b64decode(pub))\n\nsig = pathlib.Path(f\"{artifact}.sig\").read_text().strip()\npathlib.Path(f\"{artifact}.minisig\").write_bytes(base64.b64decode(sig))\nPY\n\nminisign -Vm \"$ARTIFACT\" \\\n  -p handy.pub \\\n  -x \"$ARTIFACT.minisig\"\n```\n\nOn success, `minisign` prints:\n\n```text\nSignature and comment signature verified\n```\n\nDo not use `gpg` for these `.sig` files.\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\u002FLinux**: `Ctrl+Shift+D` to open debug menu\n\nThe typical paths are:\n\n- **macOS**: `~\u002FLibrary\u002FApplication Support\u002Fcom.pais.handy\u002F`\n- **Windows**: `C:\\Users\\{username}\\AppData\\Roaming\\com.pais.handy\\`\n- **Linux**: `~\u002F.config\u002Fcom.pais.handy\u002F`\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\u002FLinux\nmkdir -p ~\u002FLibrary\u002FApplication\\ Support\u002Fcom.pais.handy\u002Fmodels\n\n# Windows (PowerShell)\nNew-Item -ItemType Directory -Force -Path \"$env:APPDATA\\com.pais.handy\\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:\u002F\u002Fblob.handy.computer\u002Fggml-small.bin`\n- Medium (492 MB): `https:\u002F\u002Fblob.handy.computer\u002Fwhisper-medium-q4_1.bin`\n- Turbo (1600 MB): `https:\u002F\u002Fblob.handy.computer\u002Fggml-large-v3-turbo.bin`\n- Large (1100 MB): `https:\u002F\u002Fblob.handy.computer\u002Fggml-large-v3-q5_0.bin`\n\n**Parakeet Models (compressed archives):**\n\n- V2 (473 MB): `https:\u002F\u002Fblob.handy.computer\u002Fparakeet-v2-int8.tar.gz`\n- V3 (478 MB): `https:\u002F\u002Fblob.handy.computer\u002Fparakeet-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}\u002Fmodels\u002F\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}\u002Fmodels\u002F\n├── parakeet-tdt-0.6b-v2-int8\u002F     (directory with model files inside)\n│   ├── (model files)\n│   └── (config files)\n└── parakeet-tdt-0.6b-v3-int8\u002F     (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### Custom Whisper Models\n\nHandy can auto-discover custom Whisper GGML models placed in the `models` directory. This is useful for users who want to use fine-tuned or community models not included in the default model list.\n\n**How to use:**\n\n1. Obtain a Whisper model in GGML `.bin` format (e.g., from [Hugging Face](https:\u002F\u002Fhuggingface.co\u002Fmodels?search=whisper%20ggml))\n2. Place the `.bin` file in your `models` directory (see paths above)\n3. Restart Handy to discover the new model\n4. The model will appear in the \"Custom Models\" section of the Models settings page\n\n**Important:**\n\n- Community models are user-provided and may not receive troubleshooting assistance\n- The model must be a valid Whisper GGML format (`.bin` file)\n- Model name is derived from the filename (e.g., `my-custom-model.bin` → \"My Custom Model\")\n\n### Linux Startup Crashes or Instability\n\nIf Handy fails to start reliably on Linux — for example, it crashes shortly after launch, never shows its window, or reports a Wayland protocol error — try the steps below in order.\n\n**1. Install (or reinstall) `gtk-layer-shell`**\n\nHandy uses `gtk-layer-shell` for its recording overlay and links against it at runtime. A missing or broken installation is the most common cause of startup failures and can manifest as a crash or a hang well before any window is shown. Make sure the runtime package is installed for your distro:\n\n| Distro        | Package to install    | Example command                        |\n| ------------- | --------------------- | -------------------------------------- |\n| Ubuntu\u002FDebian | `libgtk-layer-shell0` | `sudo apt install libgtk-layer-shell0` |\n| Fedora\u002FRHEL   | `gtk-layer-shell`     | `sudo dnf install gtk-layer-shell`     |\n| Arch Linux    | `gtk-layer-shell`     | `sudo pacman -S gtk-layer-shell`       |\n\nIf it is already installed and you still see startup problems, try reinstalling it (e.g. `sudo pacman -S gtk-layer-shell` again) in case the library files were corrupted by a partial upgrade.\n\n**2. Disable the GTK layer shell overlay (`HANDY_NO_GTK_LAYER_SHELL`)**\n\nIf installing the library does not help, you can skip `gtk-layer-shell` initialization entirely as a workaround. On some compositors (notably KDE Plasma under Wayland) it has been reported to interact poorly with the recording overlay. With this variable set, the overlay falls back to a regular always-on-top window:\n\n```bash\nHANDY_NO_GTK_LAYER_SHELL=1 handy\n```\n\n**3. Disable WebKit DMA-BUF renderer (`WEBKIT_DISABLE_DMABUF_RENDERER`)**\n\nOn some GPU\u002Fdriver combinations the WebKitGTK DMA-BUF renderer can cause the window to fail to render or to crash. Try:\n\n```bash\nWEBKIT_DISABLE_DMABUF_RENDERER=1 handy\n```\n\n**Making a workaround permanent**\n\nOnce you've found a flag that helps, export it from your shell profile (`~\u002F.bashrc`, `~\u002F.zshenv`, …) or from the desktop autostart entry that launches Handy. If you launch Handy from a `.desktop` file, you can prefix the `Exec=` line, e.g.:\n\n```ini\nExec=env HANDY_NO_GTK_LAYER_SHELL=1 handy\n```\n\nIf a workaround helps you, please [open an issue](https:\u002F\u002Fgithub.com\u002Fcjpais\u002FHandy\u002Fissues) describing your distro, desktop environment, and session type — that information helps us narrow down the underlying bug.\n\n### How to Contribute\n\n1. **Check existing issues** at [github.com\u002Fcjpais\u002FHandy\u002Fissues](https:\u002F\u002Fgithub.com\u002Fcjpais\u002FHandy\u002Fissues)\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## Sponsors\n\n\u003Cdiv align=\"center\">\n  We're grateful for the support of our sponsors who help make Handy possible:\n  \u003Cbr>\u003Cbr>\n  \u003Ca href=\"https:\u002F\u002Fwordcab.com\">\n    \u003Cimg src=\"sponsor-images\u002Fwordcab.png\" alt=\"Wordcab\" width=\"120\" height=\"120\">\n  \u003C\u002Fa>\n  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fepicenter-so\u002Fepicenter\">\n    \u003Cimg src=\"sponsor-images\u002Fepicenter.png\" alt=\"Epicenter\" width=\"120\" height=\"120\">\n  \u003C\u002Fa>\n  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\n  \u003Ca href=\"https:\u002F\u002Fboltai.com?utm_source=handy\">\n    \u003Cimg src=\"sponsor-images\u002Fboltai.jpg\" alt=\"Bolt AI\" width=\"120\" height=\"120\">\n  \u003C\u002Fa>\n\u003C\u002Fdiv>\n\n## Related Projects\n\n- **[Handy CLI](https:\u002F\u002Fgithub.com\u002Fcjpais\u002Fhandy-cli)** - The original Python command-line version\n- **[handy.computer](https:\u002F\u002Fhandy.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\u002Facceleration\n- **Silero** for great lightweight VAD\n- **Tauri** team for the excellent Rust-based app framework\n- **Community contributors** helping make Handy better\n","Handy 是一个免费、开源且可扩展的离线语音转文字应用程序。它使用 Rust 语言开发，支持跨平台运行（Windows、macOS 和 Linux），并通过 Whisper 或 Parakeet V3 模型实现本地语音识别，无需将数据上传至云端，确保用户隐私安全。用户只需按下自定义快捷键开始\u002F停止录音，即可在任意文本框中获得实时转写的文字。适用于需要保持高隐私性同时又希望提高输入效率的各种场景，如写作、笔记记录或无障碍辅助等。",2,"2026-06-11 03:03:03","top_language"]