Hex: Local voice dictation pasted into any desktop app
A local voice-input tool for Mac, Windows, and Linux that pastes spoken text into the current app without sending it to the cloud.
GitHub anomalyco/hex Updated 2026-11-02 Branch dev Stars 3.3K Forks 189
Rust Voice dictation macOS/Windows/Linux Desktop input

🧭 Decision Guide

Try it if you

  • You need shortcut-based voice text input across desktop apps on macOS, Windows, or Linux
    The README’s “How it works” says “hold the shortcut, speak, then let go” and pastes into “whatever app you're in”
  • You accept the initial speech-model download and want later transcription data to stay on the device
    The README’s “How it works” says “the first run downloads a speech model; after that nothing leaves your machine”
  • Your device is Apple silicon, Windows x64/ARM64, or one of the Linux architectures listed in the README
    The README’s “Downloads” table lists macOS Apple silicon, Windows x64/ARM64, and Linux x86_64/ARM64 executables, debs, and rpms

Skip it if you

  • You use macOS Intel, because the README’s Downloads section provides only an Apple silicon DMG
    The README’s “Downloads” table lists only “macOS (Apple silicon)”
  • Your environment forbids the initial speech-model download or requires complete offline operation from first launch
    The README’s “How it works” explicitly says the first run downloads a speech model
  • You need to contribute code through pull requests, because the project explicitly does not accept pull requests
    The README’s “Contributing” section says “We don't take pull requests” and directs contributors to issues

Requirements

  • Run macOS, Windows, or Linux; the README provides downloads for these platforms
  • The first run downloads a speech model
  • The macOS download requires Apple silicon; Windows provides x64 and ARM64; Linux provides x86_64 and ARM64
  • The README provides Stable and Dev channels; Dev self-updates from the dev channel

First step (verbatim from README)

brew install --cask anomalyco/tap/hex

Watch out

  • The first run downloads a speech model, so the initial launch should not be treated as fully offline
    The README’s “How it works” section
  • Do not treat Dev as a fixed version because the README says it self-updates from the dev channel
    The README’s “Downloads” section
  • There is no macOS Intel package in the Downloads table; only an Apple silicon DMG is listed
    The README’s “Downloads” table
  • The contribution process uses GitHub issues rather than pull requests
    The README’s “Contributing” section

Not stated in the README

  • The README does not specify the actual shortcut
  • The README does not name the speech model or state its size and download source
  • The README does not state transcription accuracy, latency, or resource usage
  • The README does not specify supported languages or dialects
  • The README does not state minimum OS versions for Windows, Linux, or macOS
  • The README does not describe microphone permissions, clipboard permissions, or background-running requirements
  • The README does not describe the specific Labs features or their stability

💡 Deep Analysis

6
No I primarily use Rust and want to submit feature fixes to Hex, but my team requires every change to go through Pull Request review. Can I contribute under that process?
For: An open-source maintainer who wants to contribute Rust code to Hex but works in a team requiring Pull Request review

No, not under the team’s current workflow, because the README explicitly says that Pull Requests are not accepted and directs contributors to issues instead.

  • The “Contributing” section states: “We don’t take pull requests.”
  • It asks contributors to use “Open an issue” to describe a bug or idea rather than submitting a code branch.
  • The project data lists Rust as the main language, so the contributor’s skills match the codebase; however, that does not change the repository’s collaboration policy.
  • The README says agents usually turn issues around fast, but does not explain how those agents review, merge, or release external contributions.

If Pull Request review is a hard requirement, the current process is incompatible. Participation is possible only if you accept submitting an issue and waiting for the project’s process to handle it.

  • Project data: main_language is Rust
  • README “Contributing”: We don't take pull requests
  • README “Contributing”: Open an issue describing the bug or idea
  • README “Contributing”: our agents usually turn it around fast
Not stated in the README:The README does not explain code review, attribution, or merge procedures after an issue is handled by agents.;The README does not say whether external contributors can directly test or modify the Rust code.
Yes I write emails and documents daily on macOS Apple silicon. I want to hold a shortcut, speak, and insert text into the current app, while ensuring that audio is not uploaded after the initial speech-model download. Is Hex suitable for me?
For: An office writer on macOS Apple silicon who handles email and documents and does not want audio to leave the device

Yes, because it directly matches the three constraints: macOS Apple silicon, local transcription, and pasting into the active app.

  • The “Downloads” section lists a Stable DMG for macOS (Apple silicon).
  • “How it works” specifies: hold the shortcut, speak, then let go; Hex pastes into whatever app you’re in, which fits email and document workflows.
  • It downloads a speech model on first run, after which nothing leaves your machine.

You still need to verify microphone permission, shortcut conflicts with macOS or the target app, and whether the target app accepts standard paste operations. The README does not specify model size, transcription latency, or accuracy.

  • README “Downloads”: macOS (Apple silicon) | DMG
  • README “How it works”: the first run downloads a speech model; after that nothing leaves your machine
  • README “How it works”: Hex transcribes on your device and pastes into whatever app you're in
brew install --cask anomalyco/tap/hex
Not stated in the README:The README does not specify the speech model size, supported languages, or accuracy.;The README does not specify the exact microphone, accessibility, or input-monitoring permissions required on macOS.
Yes I maintain Linux ARM64 Debian or Ubuntu devices and do not want to compile a Rust project myself. Can I deploy Hex directly while retaining a choice between Stable and Dev channels?
For: A Linux ARM64 engineer maintaining Debian or Ubuntu who requires a distribution-matched package

Yes. The README explicitly provides Linux ARM64 Debian/Ubuntu packages and separates Stable from Dev channels.

  • “Downloads” lists both a Stable .deb and a Dev .deb for Linux ARM64 (Debian, Ubuntu), so compiling the Rust source is not required.
  • Stable is described as the current release, while Dev is the newest build of dev and updates itself from the dev channel, making the update behavior explicit.
  • Nix installation is also available, but the architecture-matched .deb is more direct for Debian or Ubuntu.

You still need to verify the device’s ARM64 userspace, desktop environment, microphone permissions, and paste mechanism. The README does not describe Linux ARM64 runtime dependencies, systemd integration, model disk usage, or feature parity across distributions.

  • README “Downloads”: Linux ARM64 (Debian, Ubuntu) | [.deb]
  • README “Downloads”: Stable is the current release
  • README “Downloads”: Dev is the newest build of `dev` and updates itself from the dev channel
nix profile install github:anomalyco/hex
Not stated in the README:The README does not specify runtime dependencies or supported Debian/Ubuntu versions for the Linux ARM64 .deb.;The README does not explain how to configure global shortcuts, clipboard access, or microphone permissions on Linux.
Yes I work in a Linux x86_64 Debian or Ubuntu environment and can install software only through explicit channels such as .deb, AUR, or Nix. Can Hex provide local voice input under this constraint?
For: A software engineer on Linux x86_64 Debian/Ubuntu who needs local voice input but can install only through distribution package management

Yes. The README provides a Linux x86_64 Debian/Ubuntu .deb and also lists Nix, AUR, and a Linux installation script as installation paths.

  • “Downloads” lists Stable and Dev .deb packages for Linux x86_64 (Debian, Ubuntu), matching the architecture and distributions.
  • It also provides nix profile install github:anomalyco/hex, yay -S hex-bin, and a Linux install script, so building from source is not required.
  • The product flow is to hold a shortcut, speak, release it, and paste the transcription into the active app; transcription runs on-device, and after the first model download it no longer leaves the machine.

AUR is not the standard route for Debian/Ubuntu, and the README does not say whether the install script meets your software-supply-chain policy. It also does not specify Linux desktop-environment, permission, or clipboard dependencies.

  • README “Downloads”: Linux x86_64 (Debian, Ubuntu) | [.deb]
  • README “Downloads”: AUR: `yay -S hex-bin`
  • README “Downloads”: Nix: `nix profile install github:anomalyco/hex`
  • README “How it works”: Hex transcribes on your device and pastes into whatever app you're in
nix profile install github:anomalyco/hex
Not stated in the README:The README does not specify .deb dependencies, desktop integration, or supported Debian/Ubuntu versions.;The README does not say whether the local model can be preinstalled offline or whether the install script works in restricted networks.
Yes I manage Linux x86_64 Fedora and openSUSE workstations. I need to distribute an RPM and avoid automatically following Dev builds. Is Hex suitable for this deployment constraint?
For: An IT administrator managing Linux x86_64 Fedora or openSUSE workstations who wants RPM distribution and channel control

Yes. The README provides a Linux x86_64 Fedora/openSUSE RPM and a Stable channel, matching both the packaging and update constraints.

  • “Downloads” lists a Stable .rpm for Linux x86_64 (Fedora, openSUSE), giving the target systems a matching package format.
  • Stable is explicitly the current release; Dev is the channel that updates itself from dev, so choosing Stable avoids Dev-channel updates.
  • The core workflow is local: after the first speech-model download, audio no longer leaves the device, which suits workstation users avoiding cloud speech services.

However, the README does not describe enterprise deployment, silent installation, version pinning, proxy behavior, or permission policies, and it does not say whether an RPM repository is available. It fits manual or existing internal software-distribution workflows, but enterprise release integration remains unconfirmed.

  • README “Downloads”: Linux x86_64 (Fedora, openSUSE) | [.rpm]
  • README “Downloads”: Stable is the current release
  • README “Downloads”: Dev ... updates itself from the dev channel
  • README “How it works”: after that nothing leaves your machine
curl -fsSL https://anoma.ly/hex/install-linux.sh | sh
Not stated in the README:The README does not say whether the RPM supports enterprise repositories, silent installation, or version pinning.;The README does not say whether the initial model download supports proxies, offline preloading, or centralized caching.
It depends I use chat tools and a code editor on Windows ARM64. I want dictated text to enter the active field directly rather than being copied through a separate window. Does Hex fit this workflow?
For: A developer on Windows ARM64 who uses chat tools and code editors and wants to avoid cloud speech services

It depends: the platform and interaction model fit, but the result depends on whether each target app accepts Hex’s paste operation.

  • “Downloads” provides a Windows ARM64 installer, so an architecture-specific package exists.
  • “How it works” says to hold the shortcut, speak, release it, and paste the transcription into whatever app you are using, matching chat tools and editors.
  • Transcription runs on the device; after the first speech-model download, nothing leaves the machine, which fits the requirement to avoid cloud audio services.

The limitation is that the README provides no Windows application compatibility matrix and does not guarantee that every input field supports standard paste. Secure fields, remote desktops, or specialized editors may behave differently; shortcut conflicts and microphone permission also need verification.

  • README “Downloads”: Windows ARM64 | Installer
  • README “How it works”: hold the shortcut, speak, then let go
  • README “How it works”: pastes into whatever app you're in
  • README “How it works”: after that nothing leaves your machine
Not stated in the README:The README does not specify Windows ARM64 compatibility with chat tools, code editors, remote desktops, or secure input fields.;The README does not specify the default shortcut, microphone permission requirements, or local model resource usage.

✨ Highlights

  • Downloads a speech model once, then keeps data on-device
  • Supports installation across macOS, Windows, and Linux
  • Hold a shortcut, speak, and paste into the current app
  • Latest release is Hex 3.2.0, with 3,274 GitHub stars

🔧 Engineering

  • Hold a shortcut and Hex pastes the transcription into the current desktop app
  • The first run downloads a speech model; afterward, transcribed content stays on-device
  • The README provides Homebrew, AUR, Nix, and Linux install-script options

⚠️ Risks

  • The first run downloads a speech model; the README does not promise an offline first launch
  • The macOS download table lists only an Apple silicon DMG, not a macOS Intel build
  • The project does not accept pull requests; contributions go through GitHub issues
  • The Dev build self-updates from the dev channel, which does not fit stable-update requirements

👥 For who?

  • People who need fast text input in desktop apps on macOS, Windows, or Linux
  • Users who value local processing and can allow the initial speech-model download
  • Users on Apple silicon, Windows x64/ARM64, or Linux ARM64/x86_64