mrkeyoor.com_
Tue 10 Nov 10:45 UTC
AI Toolsevaluationupdated 01 Nov 2026

Handy review

Try Handy if you want speech transcribed locally and pasted into the application you are using, and can check its shortcuts and paste behavior on your own desktop. Handy is an open-source desktop dictation app for Windows, macOS, and Linux. Its README describes local transcription with Whisper or Parakeet; our sandbox checked installation and the frontend build, not working dictation.

+646stars / 7d
Verdict

Handy is worth a local trial if your goal is dictation into existing applications and you can accommodate model downloads and desktop permissions. Our September 27, 2026 run at commit 8f9cf53 supports installation and frontend compilation only; tests were skipped and dictation was not exercised. Linux users should check display-server requirements first. Choose Buzz for transcript and subtitle workflows, or nerd-dictation for a Linux workflow configured through commands and Python.

We ran it

Lab card: what happened when we ran HandyScreenshot of Handy (handy.computer)
Install✓ · 52s432 packages · 254 MB
Build✓ · 20s
Testsn/ano test script
Repo385 files~46,680 lines of source · 7.6 MB · 9 CI workflows · tests dir

Answers from our run

Does Handy build from source?

Dependencies installed in 52 seconds (432 packages), and the build succeeded in 20 seconds. We cloned commit 8f9cf53 into a clean Debian container with 3 CPUs and no project-specific setup.

Does Handy have tests you can run?

Not through a standard command: the project exposes no test script or target that our harness could run.

Who should not use Handy?

Anyone requiring measured transcription accuracy, latency, or reliable pasting from this review: our run did not test those behaviors.

What are the alternatives to Handy?

Buzz, nerd-dictation. Handy is worth a local trial if your goal is dictation into existing applications and you can accommodate model downloads and desktop permissions.

Setup4/5Assesses documented packaged setup: release installation, permissions, and shortcuts are explained, but models and Linux integration add work. Our sandbox did not test desktop installation.
Docs5/5Assesses instruction specificity: the supplied README and BUILD.md cover models, permissions, display servers, clipboard timing, runtime libraries, and source-build recovery.
Community5/5Assesses documented participation only: v0.9.7 names multiple contributors and first-time contributors, and the README provides contribution routes. Adoption and response times were not measured.
Maturity4/5Assesses documented release and recovery practices: v0.9.7 lists concrete fixes and the README explains workarounds. Platform limitations remain, and our run did not verify desktop reliability.

Discussed on

  1. hnHandy – Free open source speech-to-text app247 points
  2. hnI turned a 40 year old Apple Mouse into a speech to text button120 points
  3. hnShow HN: Handy – Free open-source speech-to-text app written in Rust3 points

Who it’s for

People who want local dictation into existing text fields rather than a separate transcript editor.
Users who can grant microphone and accessibility permissions and download a speech model.
Developers willing to work with Rust, Bun, and Tauri for a source build.
Linux users prepared to configure text insertion and desktop shortcuts for their display server.

Who it’s NOT for

Anyone requiring measured transcription accuracy, latency, or reliable pasting from this review: our run did not test those behaviors.
People expecting uniform Linux setup: the README explicitly describes limited Wayland support and desktop-specific requirements.
Users unable to accommodate the documented model downloads, which range from 487 MB to 1,600 MB.
Teams requiring passing repository tests as adoption evidence: our harness skipped tests, including the specialized test scripts detected in the checkout.
Mac users relying on an fn or Globe shortcut from a third-party keyboard: the README says those shortcuts require an Apple keyboard.

Setup reality

Our run took place on September 27, 2026, at commit 8f9cf53 in our sandbox with 3 CPUs, 8 GB RAM, and the lab-node:22 image. Our stored harness summary records a 52-second install and a 20-second build. Both commands exited zero without timing out. The stored dependency footprint is 432 packages and 254 MB.

Those are harness measurements. Bun's own output separately reports 345 packages installed in 36.24 seconds, and Vite reports its build phase completed in 3.62 seconds. These tool messages cover different reported scopes; they do not replace the stored harness values.

The build log shows tsc && vite build, which checks the frontend rather than producing a complete Tauri desktop bundle. Tests were skipped with the recorded reason "no script", even though detection lists test:keyboard, test:playwright, and test:playwright:ui. This run therefore establishes a harness selection limitation, not the absence of repository test commands.

For ordinary use, start with a packaged release, grant the required permissions, configure a shortcut, and select a model. Source builds additionally require Rust, Bun, Tauri prerequisites, and platform packages described in BUILD.md.

What our run establishes

Our run took place on September 27, 2026, at commit 8f9cf53. Our stored harness summary records a 52-second install and a 20-second build. The matching sandbox record captures command success, exit codes, elapsed time, timeout status, and output tails. Installation and build each returned exit code zero and neither timed out.

The build tail identifies the command as tsc && vite build. That supports a frontend compilation result. It does not establish that a desktop installer was built or that dictation worked. Our run did not launch a graphical desktop, exercise microphone permissions, download a speech model, or measure recognition accuracy, transcription latency, shortcuts, or pasting into another application.

The stored dependency footprint is 432 packages and 254 MB. Bun's output tail instead says "345 packages installed [36.24s]". Likewise, the harness records 20 seconds for the build step while Vite reports 3.62 seconds for its own phase. Keep these reporting scopes separate: the attached stored parser summaries are the figures used here, and their counts have not been reconciled against complete logs. They do not establish exhaustive unique test coverage.

MrKeyoor's testing methodology explains the site's approach to command outcomes and its limits. That page describes the publisher's current procedure; it does not establish which methodology version governed this September run. This correction uses the existing record and includes no new execution.

Tests were skipped despite detected test scripts

The harness recorded a skipped test step with reason "no script". Its own detection data lists test:keyboard, test:playwright, and test:playwright:ui, as well as a tests directory. The supported conclusion is that this harness did not select and execute those commands. There is no passing or failing test result to report.

The detected CI workflows also do not show what passed in this sandbox. Audit data is null, and scan coverage is unknown. This record supplies no dependency-security conclusion.

Local dictation still needs a desktop check

According to the Handy README, you press a shortcut, speak, and receive transcribed text in the active application. The project describes the transcription process as local, using Silero for voice activity detection and Whisper or Parakeet for recognition. This is the capability that makes Handy worth considering for writing email, messages, or documents without sending audio to a hosted transcription service. We did not independently verify network behavior.

A model download is separate from the development dependency footprint. The README lists Whisper and Parakeet files ranging from 487 MB to 1,600 MB and provides manual installation instructions for restricted networks. Those are documented download sizes, not measurements from our sandbox.

After installation, check a short phrase and a longer sentence in each application you rely on. Confirm that the beginning and end of the recording survive and that the correct text reaches the intended field. These are recommended checks, not outcomes from our run.

Linux requires display-server-specific setup

The README recommends xdotool for X11 and wtype or dotool for Wayland text input, with a separate Ubuntu 26.04 note directing users to configured ydotool. It also says Wayland system shortcuts must be configured through the desktop environment or window manager. Choose your setup instructions by session type rather than assuming one Linux installation path covers every desktop.

The recording overlay is disabled by default on Linux because some compositors give it focus, preventing a paste into the original application. Linux also requires the gtk-layer-shell runtime library. These documented constraints matter more to a dictation decision than a successful frontend build.

The README's clipboard troubleshooting explains another receiving-application dependency: Handy can restore the previous clipboard before an application reads the transcription. It documents experimental Reliable Paste on macOS and Windows and separate delay controls for the standard paste path. Test the receiving application before relying on either workaround.

Choose an alternative by the output you need

Buzz supports file transcription, live microphone transcription, and TXT, SRT, and VTT export. Choose it when managing transcripts or subtitle files is the main task. Its microphone support means it should not be described as a file-only tool. It can complement Handy when you need both desktop dictation and a separate transcript workflow; the supplied Buzz extract does not establish an equivalent paste-into-any-application workflow.

nerd-dictation is a Linux dictation utility using VOSK-API with Python configuration. Choose it instead when you want to bind begin and end commands yourself and manipulate recognized text in Python. It is a closer replacement for a Linux dictation workflow, but it still requires recording and input-simulation tools. Its documentation does not justify treating it as a way to avoid all desktop setup.

How to read the ratings

These are editorial assessments, not benchmark results. For each dimension, 1 means substantial documented obstacles, 2 means major gaps, 3 means usable with notable qualifications, 4 means strong documented support with specific limits, and 5 means unusually complete evidence within that dimension's stated scope. Unknown evidence receives no numerical rating.

Setup ease assesses the documented packaged installation route, not a successful desktop installation in our sandbox. Documentation assesses the specificity of setup and troubleshooting instructions. Community assesses visible contribution routes and participation in the supplied release, not user adoption or support response times. Maturity assesses documented release and recovery practices, not proven reliability across hardware.

The retained setup score of 4 reflects packaged installation instructions alongside model, permission, and Linux requirements. Documentation receives 5 for detailed platform, model, paste, and recovery guidance. Community receives 5 within the narrow participation rubric because the supplied v0.9.7 release names multiple contributors and first-time contributors, while the README provides contribution routes. Maturity receives 4 for documented releases and troubleshooting, qualified by platform limitations and the absence of desktop runtime testing here.

Start with the packaged app

The build instructions require Rust, Bun, Tauri prerequisites, and platform-specific tooling. They also explain why a raw Linux binary needs accompanying resources and why Windows release bundling can encounter signing configuration intended for project CI. A source build is useful for development, but it adds work beyond evaluating the app.

The supplied v0.9.7 release lists fixes for lost tail audio and GNOME Wayland clipboard pasting. Those release notes describe changes, not successful checks on your machine. Start with a packaged release and verify the complete recording-to-paste path before using Handy for consequential text.

Alternatives

ProjectWhat it isPick it when
BuzzOffline transcription software with file and live microphone input, plus transcript and subtitle export.Choose it when you need to work with transcripts or export TXT, SRT, or VTT files. It can complement Handy; the supplied evidence does not establish equivalent active-application text insertion.
nerd-dictationA Linux dictation utility using VOSK-API, manual activation commands, and Python configuration.Choose it instead for a Linux dictation workflow you want to configure through commands and Python. Expect to configure recording, input simulation, and shortcuts.

What people are saying

  1. [github-trending] cjpais/Handy

Sources

  1. Handy README
  2. Handy build instructions
  3. Handy v0.9.7 release
  4. Clipboard paste issue 502
  5. Windows idle fan issue 2162

More ai tools reviews

ooosplat · dexter · oh-my-ppt · Agentero · mini-swe-agent · claude-video · the whole board →