finds.dev← search

// the find

Automattic/harper

★ 10,778 · Rust · Apache-2.0 · updated Jun 2026

Offline, privacy-first grammar checker. Fast, open-source, Rust-powered

Harper is a Rust-based grammar checker that runs entirely on-device — no server, no telemetry. It ships as a language server (harper-ls), a CLI, a WASM module for browsers, and editor plugins for VS Code, Neovim, Helix, Emacs, and Zed. Backed by Automattic, so it has real organizational staying power behind it.

The WASM path is a genuine technical win: you get grammar checking in a browser with sub-millisecond latency and zero network round-trips. The rule set is serious — 200+ individual linting rules as separate files in harper-core/src/linting/, covering agreement, prepositions, contractions, compound nouns, and more. harper-comments is a standout feature for developers specifically: it parses grammar inside code comments across a dozen languages (Rust, Go, JS, Java, Solidity, Lua, etc.) and understands doc comment formats like JSDoc and Javadoc. Fuzz targets for the parsers are included, which is more than most projects this size bother with.

English-only and the README admits multi-language support would require significant contributions — that's a hard ceiling for non-English teams. Rule-based grammar checking at this scale is a maintenance trap: each of those 200+ rule files is a hand-coded pattern that doesn't generalize, and the false-positive rate on technical writing (which is what developers mostly produce) is going to be annoying in practice. The Brill POS tagger (harper-brill) is a pre-trained model shipped as a msgpack blob — there's no clear documentation on what corpus it was trained on or how it performs on code-adjacent prose. No style guidance, readability scoring, or passive-voice detection; it catches errors but won't help you write better.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →