- Rust 77.3%
- HTML 8.5%
- TypeScript 6.7%
- Swift 3.1%
- Shell 2.8%
- Other 1.6%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| .github/workflows | ||
| app | ||
| assets/icons | ||
| docs | ||
| ios | ||
| native | ||
| nix | ||
| packaging | ||
| prototypes/app-shell | ||
| release-notes | ||
| resources/audio | ||
| scripts | ||
| sdk | ||
| site | ||
| skills/hex-personal-commands | ||
| src | ||
| tests/fixtures | ||
| .gitignore | ||
| .markdownlint-cli2.jsonc | ||
| AGENTS.md | ||
| build.rs | ||
| Cargo.lock | ||
| Cargo.toml | ||
| CONTRIBUTING.md | ||
| flake.lock | ||
| flake.nix | ||
| LICENSE | ||
| README.md | ||
| ROADMAP.md | ||
| SECURITY.md | ||
| THIRD_PARTY_NOTICES.md | ||
HEX
HEX is local-first voice dictation for Apple silicon Macs running macOS 15 or newer. Hold a shortcut, speak, and release. HEX transcribes on your Mac and pastes the result into the app you are using.
Download the latest signed DMG
Install HEX
- Download and open the DMG.
- Drag HEX into Applications, then launch it.
- Complete setup:
- Microphone lets HEX record while you dictate.
- Input Monitoring lets HEX detect its shortcut globally. Drag the HEX tile into the list.
- Accessibility lets HEX paste into the foreground app. Drag the HEX tile into the list.
- Transcription model downloads the speech model that runs locally.
HEX checks for signed updates automatically. Use HEX > Check for Updates... to check immediately.
Coming from the original Swift app? Install the new app manually and complete setup. Settings and history are not transferred. Quit the old app before dictating in the new one so their shortcuts do not compete.
Dictate Anywhere
Hold Option, speak, then release. HEX transcribes and pastes at the current focus.
- Double-tap Option to keep recording; press Option again to finish.
- Press Escape to cancel.
- Press Option-Shift-V to paste the last completed dictation again.
Settings let you change the shortcut, microphone, language, local model, recording behavior, feedback volume, launch-at-login behavior, and Dock visibility. Replacements correct names and preferred spellings before text is pasted.
Optional OpenCode Features
OpenCode is optional. Ordinary dictation does not require it.
- Voice Action: enable it in the Voice Action pane, then hold Option-Command and describe what you want. It defaults off, independently of your dictation shortcut. HEX sends that instruction, selected text when Accessibility makes it available, and the foreground application and Brave website hostname. It pastes the result at the current focus.
- Post-processing: enable OpenCode in Modes to rewrite a transcript before paste. HEX sends the transcript, foreground application, and Brave website hostname to the configured model provider. Modes can target applications and websites in Brave Browser.
If post-processing fails, HEX pastes the local transcript. A failed Voice Action pastes nothing.
Experimental Voice Commands
Voice commands are available on macOS and disabled by default. Enabling them starts continuous local command recognition and requires a separate local command model; HEX prompts to install it when needed. Dictation remains available while command recognition is off or asleep.
The Commands pane lists built-in phrases and filters them by global, application,
and Brave website context. Advanced users can create
~/.config/hex/hex.config.ts for custom TypeScript commands. Custom commands
require Bun; HEX provides an Edit Config action and a prompt
you can paste into a local coding agent.
Custom command files and dependencies are executable local code with your user permissions. Review agent changes and install only dependencies you trust.
To teach a coding agent how to configure personal commands and transformations, install the official HEX skill:
npx skills add anomalyco/hex --skill hex-personal-commands
Privacy And Local Data
- Speech transcription and command recognition run locally.
- HEX does not save dictation audio by default.
- An explicit
HEX_RETAIN_DICTATION_AUDIOdiagnostic setting can retain a bounded number of owner-only WAV files. - Local diagnostic logs can contain transcript text, recognized command speech, foreground application names, and Brave URLs. HEX does not upload these logs.
- OpenCode features send the data described above to your configured model provider.
- Model installation and software updates require network access.
Review and redact diagnostics before sharing them.
Troubleshooting
| Symptom | Check |
|---|---|
| HEX appears to disappear | Open HEX from its menu-bar hexagon. If the status item could not start, HEX keeps its Dock icon visible. |
| The shortcut does nothing | Open HEX and verify Microphone and Input Monitoring access. |
| Recording works but text does not paste | Verify Accessibility access. |
| Transcription does not start | Confirm that the selected local model is installed. |
| OpenCode features fail | Verify the separate OpenCode installation and model provider. |
| Voice commands do not respond | Confirm Commands is enabled and voice control is awake. |
| Website context does not match | Website-aware modes and commands currently require Brave Browser. |
Permission changes may require quitting and reopening HEX.
Diagnostics are stored at:
- macOS:
~/Library/Application Support/voice-control/logs/ - Linux:
~/.local/share/voice-control/logs/, or underXDG_DATA_HOME
Linux Beta
The Linux beta targets x86_64 Linux on i3/X11 and compatible wlroots Wayland compositors. It supports local hotkey dictation, a GPUI settings shell, and signed updates for direct installs. Native Wayland requires explicit input-device access and compositor support for clipboard, virtual-keyboard, and layer-shell protocols. Voice commands and meetings are not included.
See the Linux installation guide for the user-local installer, source-build fallback, requirements, and limitations. For Nix/NixOS packaging and per-user autostart, see the Nix guide.
Contributing
Architecture, development commands, active plans, and historical research are
indexed in docs/README.md. Start with
CONTRIBUTING.md and AGENTS.md before changing
the native application. Report vulnerabilities through the process in
SECURITY.md.
HEX is available under the MIT License. Vendored icon licenses are listed in Third-Party Notices.