VOICE → WORDS https://hex.kitlangton.com
  • Swift 99.1%
  • TypeScript 0.8%
  • Ruby 0.1%
Find a file
History 2026-10-14 14:42:37 -07:00
.changeset Release 0.8.5 2026-08-26 23:47:08 -04:00
.cursor/rules init 2025-02-21 19:27:22 -06:00
.github Update README: highlight Parakeet as default transcription engine, remove CI workflow 2025-11-14 20:07:21 -05:00
bin Add Sparkle generate_appcast binary 2025-11-14 14:16:46 -05:00
docs feat: point legacy Hex users to the Rust beta 2026-08-26 23:35:40 -04:00
Hex Release 0.8.5 2026-08-26 23:47:08 -04:00
Hex.xcodeproj Release 0.8.5 2026-08-26 23:47:08 -04:00
HexCore feat: point legacy Hex users to the Rust beta 2026-08-26 23:35:40 -04:00
HexTests feat: point legacy Hex users to the Rust beta 2026-08-26 23:35:40 -04:00
tools/scripts feat: point legacy Hex users to the Rust beta 2026-08-26 23:35:40 -04:00
.gitignore fix entitlements 2025-12-30 11:48:13 -05:00
.swiftlint.yml add github ci steps for releasing and building 2025-05-30 09:35:57 -05:00
AGENTS.md Migrate HexSettings to HexCore with backward compat 2025-11-15 22:37:01 -05:00
bun.lock Harden recording and refresh model settings 2026-07-08 13:30:07 -04:00
CHANGELOG.md Release 0.8.5 2026-08-26 23:47:08 -04:00
CLAUDE.md Document release process in CLAUDE.md 2025-12-30 21:19:24 -05:00
hex.rb Add TypeScript release pipeline with tag-based versioning 2025-11-14 12:46:43 -05:00
LICENSE Add MIT license and minor UI/model adjustments (resolves #84) 2025-11-13 22:15:00 -05:00
Localizable.xcstrings Overhaul model library UX and harden model selection state 2026-07-09 10:49:57 -04:00
package.json Release 0.8.5 2026-08-26 23:47:08 -04:00
README.md docs: point to the Rust rewrite at anomalyco/hex 2026-10-14 14:42:37 -07:00
test_logger add transformations 2025-11-18 17:02:07 -05:00

Hex Has Moved

Hex has moved to anomalyco/hex. This Swift app is no longer maintained. Download the new app at hex.kitlangton.com, and please file new issues on anomalyco/hex. This repository preserves the original Swift app, its history, and its releases.

Legacy Swift App

Press-and-hold a hotkey to transcribe your voice and paste the result wherever you're typing.

Download the legacy Swift version

Note: Hex is currently only available for Apple Silicon Macs.

Or download via homebrew:

brew install --cask kitlangton-hex

The Swift version supports Parakeet TDT v3 through FluidAudio and WhisperKit for on-device transcription. It uses the Swift Composable Architecture.

Instructions

Once you open Hex, you'll need to grant it microphone and accessibility permissions—so it can record your voice and paste the transcribed text into any application, respectively.

Once you've configured a global hotkey, there are two recording modes:

  1. Press-and-hold the hotkey to begin recording, say whatever you want, and then release the hotkey to start the transcription process.
  2. Double-tap the hotkey to lock recording, say whatever you want, and then tap the hotkey once more to start the transcription process.

Contributing

For the Rust beta, new features, and current development, use anomalyco/hex. Issues specific to the legacy Swift app can still be reported here. Please discuss substantial legacy changes before opening a pull request.

Changelog workflow

  • For AI agents: Run bun run changeset:add-ai <type> "summary" (e.g., bun run changeset:add-ai patch "Fix clipboard timing") to create a changeset non-interactively.
  • For humans: Run bunx changeset when your PR needs release notes. Pick patch, minor, or major and write a short summary—this creates a .changeset/*.md fragment.
  • Check what will ship with bunx changeset status --verbose.
  • npm run sync-changelog (or bun run tools/scripts/sync-changelog.ts) mirrors the root CHANGELOG.md into Hex/Resources/changelog.md so the in-app sheet always matches GitHub releases.
  • The release tool consumes the pending fragments, bumps package.json + Info.plist, regenerates CHANGELOG.md, and feeds the resulting section to GitHub + Sparkle automatically. Releases fail fast if no changesets are queued, so you can't forget.
  • If you truly need to ship without pending Changesets (for example, re-running a failed publish), the release script will now prompt you to confirm and choose a patch/minor/major bump interactively before continuing.

License

This project is licensed under the MIT License. See LICENSE for details.