v0.1.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. No squiggly underlines waiting for permission.

Works in terminals Offline by default Wayland-native 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 running window classes — whose keys should never be buffered. Password managers and sensitive consoles stay invisible to HyprCorrect.

Per-window buffers

Hyprland focus events partition the buffer per window. 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. A slider for inter_key_delay_ms handles apps that drop characters under wtype's default 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. macOS support is a planned milestone sharing the same core.

  • 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 are stored via libsecret, 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

Stop retyping the same typos.

Free, open source, Hyprland-first. The chord is yours. The dictionary is yours. The API key never leaves your machine.

$ yay -S hyprcorrect