How it works
-
Type as you always do
Harf sits in the system tray and follows only the word you're currently typing — nothing more.
-
It checks at the word boundary
When you press space or punctuation, Harf checks whether the word makes sense in the active layout or clearly reads as a word in another one.
-
The word is fixed in place
sghlbecomes سلام right where you typed it. Wrong call? Ctrl+Alt+Z undoes it instantly. -
The layout switches with you
Harf flips Windows to the layout you meant, so the next word comes out right the first time.
Features
Automatic correction
Between English (US/UK), Arabic (101), French (AZERTY France), Spanish (Spain and Latin American), Hindi (INSCRIPT / Hindi Traditional) and Russian (ЙЦУКЕН) layouts — a deterministic mapping, not a guessing game.
Layout switching & cycling
One shortcut, Ctrl+Alt+H, switches or cycles your installed layouts — including Chinese and Japanese IMEs, which Harf switches but does not auto-correct.
Fix on demand
Convert a selection with Ctrl+Alt+J, or repair the whole current sentence with Ctrl+Shift+D. All shortcuts are rebindable.
Offline by design
No network dependency at all — a structural test in the codebase enforces it. There is nothing to phone home to.
Light on your system
A small native tray app written in Rust for Windows 10 and 11. Install it, or just unzip the portable build and run.
Speaks your language
The app UI is available in 8 languages: English, Arabic, Simplified Chinese, Hindi, Spanish, French, Japanese and Russian.
Language support, honestly
| Language (layouts) | UI translation | Auto-correction | Layout switching |
|---|---|---|---|
| English (US, UK) | Yes | Yes | Yes |
| Arabic (101) | Yes | Yes | Yes |
| French (AZERTY France) | Yes | Yes | Yes |
| Spanish (Spain, Latin American) | Yes | Yes | Yes |
| Hindi (INSCRIPT / Hindi Traditional) | Yes | Yes | Yes |
| Russian (ЙЦУКЕН) | Yes | Yes | Yes |
| Chinese (Pinyin, Wubi) | Yes (Simplified) | No — composing IME | Yes |
| Japanese (Microsoft IME) | Yes | No — composing IME | Yes |
Why the difference? Pinyin, Wubi and the Microsoft Japanese IME are composing input methods: keystrokes go through a composition and candidate-selection step instead of mapping one key to one character. There is no deterministic way to reconstruct what you meant, so Harf supports switching and cycling for them — and is honest about not auto-correcting them.
Private by construction
- Everything happens on your device. Harf has no network dependency — and a structural test in the source code enforces that it stays that way.
- Only the word you're currently typing is held in memory, and it's discarded at the word boundary. Harf keeps no typing history.
- The only file Harf ever writes is
settings.json. - Password fields are skipped when Windows exposes that signal. To be honest: some apps don't expose it, so this can't be guaranteed everywhere.
- Your clipboard is never touched unless you explicitly opt in to the clipboard fallback.
The full details are in the privacy policy — and since the code is open, you don't have to take our word for any of this.
Verify your download
Harf's binaries are not code-signed, so SmartScreen may warn you. Don't bypass warnings on faith — check that what you downloaded is exactly what was released. Open PowerShell in your Downloads folder and run:
Get-FileHash .\Harf-Windows-x64-Setup.exe -Algorithm SHA256
Get-FileHash .\Harf-Windows-x64-Portable.zip -Algorithm SHA256
Compare each hash with the matching line in SHA256SUMS.txt, published with every release. If a hash doesn't match, delete the file and download it again from the official releases page.
Frequently asked questions
Windows SmartScreen showed a warning. Is Harf safe?
Harf's binaries are not code-signed yet, so SmartScreen may warn about new releases. We
won't tell you to ignore security warnings. Instead, verify for yourself: compare the
file's SHA-256 hash against the SHA256SUMS.txt published with each release
(see Verify your download), and review the source code — it's public
and MIT-licensed.
Why doesn't auto-correction work for Chinese and Japanese?
Chinese (Pinyin, Wubi) and Japanese (Microsoft IME) are composing input methods: what you get depends on a composition and candidate-selection step, not a fixed key-to-character mapping. That makes reconstructing "what you meant" impossible to do deterministically, so Harf offers layout switching and cycling for them, but not automatic correction.
Why does Harf need a keyboard hook?
To fix a word, Harf has to know which keys you pressed and be able to replace the typed characters in place. It uses the standard Windows keyboard hook for this — the same mechanism used by text expanders and accessibility tools. It keeps only the current word in memory and discards it at each word boundary.
Does Harf send my keystrokes anywhere?
No. Harf works entirely on-device and has no network dependency — a structural test in the
codebase enforces this. The only file it ever writes is settings.json, and the
clipboard is never touched unless you opt in to the clipboard fallback.
What about password fields?
Harf skips password fields when Windows exposes the password-field signal. Honestly, though: some apps don't expose that signal, so it can't be guaranteed in every app. If that matters to you, pause Harf from the tray while entering sensitive input.
Can I change the keyboard shortcuts?
Yes. All four shortcuts — Ctrl+Alt+Z (undo), Ctrl+Alt+H (switch/cycle layout), Ctrl+Alt+J (convert selection) and Ctrl+Shift+D (fix current sentence) — are rebindable in Settings.