v0.6.0 · MIT / Apache-2.0

Press a hotkey. Fix the typo.

HyprCorrect is a keyboard-driven spelling and typo corrector for the whole desktop. The word or sentence you just typed is checked and fixed in place — in any focused app, including terminals. No menus. No mouse. Nothing to click before the fix lands.

Works in terminals Offline by default Linux & macOS Written in Rust
Features

One hotkey. Every text field.

A global keystroke buffer remembers what you just typed. The chord backspaces the misspelled word and types the correction in its place — works the same in your editor, your chat app, and your shell.

Fix last word

Default chord ⇧⌃⌥⌘F. Backspaces the last word in the focused window's buffer and types the top spellbook suggestion. Falls back to clipboard / selection when the buffer is empty.

Fix last sentence

Default chord ⇧⌃⌥⌘S. Sends the sentence around the caret through the smart provider — LLM, LanguageTool, or spellbook — so context-dependent fixes land too.

Review before apply

Default chord ⇧⌃⌥⌘R. Same as fix-sentence, but pops a small window with the proposed text first — Enter to apply, Esc to cancel. Eyeball LLM suggestions before they land.

Works in terminals

The engine is a keystroke buffer plus synthetic input — not accessibility scraping. The shell line-editor accepts the backspaces and the new word the same way it accepts what you just typed.

Privacy blocklist

Pick apps from a dropdown — populated from your running apps — whose keys should never be buffered. Password managers and sensitive consoles stay invisible to HyprCorrect.

Per-window buffers

Focus events partition the buffer per window on Linux, per app on macOS. Switching apps doesn't poison another's history; returning restores the buffer you left behind.

Pluggable correction

Three backends. Pick per chord.

The fix-word chord runs on the fast offline backend; the smart provider handles sentence-level fixes. Failures fall through to spellbook so the chord never silently no-ops.

Spellbook

Bundled Hunspell-compatible dictionary. Instant. Runs offline. The default for fix-last-word and the fallback when anything else fails.

offline bundled instant

LanguageTool

POST to your own self-hosted server's /v2/check. Preferences offers an optional one-click Install with Docker that pulls and runs the upstream image — no Java install on your side.

self-host HTTP docker

LLM

Anthropic Claude or OpenAI. Sends the sentence around the caret for context-aware fixes including homophones (their / there / they're). API key lives in your OS keychain.

contextual claude / openai keychain
HyprCorrect Preferences window showing the Hotkeys panel with three rebindable chords for fix last word, fix last sentence, and review correction
Preferences

Configurable from the tray. No config-file spelunking.

Right-click the tray icon and open Preferences. Record any Super / Ctrl / Shift / Alt combo for each chord, pick your default and smart providers, and pin a privacy blocklist — all without restarting the daemon.

  • Live reload. Saving sends SIGHUP to the daemon — chords, providers, and blocklist swap in without a restart.
  • Chord chips. Click any chip and press the chord you want. Hyprland eats the chord so terminals never see it as a raw escape sequence.
  • Behavior tuning. Per-backspace and per-character pause sliders handle apps that drop characters at full typing speed.
Built in Rust

One static binary. Two licenses. Zero telemetry.

HyprCorrect is a single Rust daemon plus an egui preferences window. On Linux it's Wayland-native: evdev capture, xkbcommon translation, wtype emit, and a Hyprland-installed keybind. On macOS the same core runs against the system frameworks: a CGEventTap for capture, CGEvent synthetic input, a Carbon global hotkey, and an NSStatusItem menu-bar item.

  • Hyprland-first Per-window focus tracking via Hyprland IPC, with the chord installed through hyprctl keyword bind.
  • Tray + clean shutdown ksni tray with pause and quit. The daemon uninstalls its Hyprland bind on exit so dev rebuilds don't pile up stale binds.
  • Open, dual-licensed MIT or Apache-2.0. No license server. No telemetry. No signup.
  • Secrets in the keychain LLM API keys live in the OS keychain — libsecret on Linux, the macOS Keychain — never in plain-text config files.
  • Failure falls through If LLM or LanguageTool errors out, spellbook still answers — the chord never silently does nothing.
  • Configurable to the keystroke Every chord, provider, blocklist entry, and inter-key delay is exposed in the prefs window. Changes apply on save.
terminal · Arch / AUR
# From the AUR — builds from the latest tagged release $ yay -S hyprcorrect # Or the prebuilt binary from the GitHub release $ yay -S hyprcorrect-bin # Or track main $ yay -S hyprcorrect-git
terminal · from source
$ git clone https://github.com/jondkinney/hyprcorrect $ cd hyprcorrect $ cargo install --path crates/hyprcorrect
terminal · macOS
# Same build — runs as a menu-bar item, not a Dock app $ cargo install --path crates/hyprcorrect # Then enable it under System Settings → Privacy & # Security → Accessibility — it starts automatically

Stop retyping the same typos.

Free, open source, on Linux and macOS. The chord is yours. The dictionary is yours. The API key never leaves your machine.

$ yay -S hyprcorrect