GitHub Repos intermediate 4 min read Jul 25, 2026 · Updated Jul 26, 2026
Public Preview Sign in free for the full digest →

Harper: a private, offline alternative to Grammarly

“The grammar checker Automattic bought has 13,341 stars, zero network calls, and a recent changelog that reads: `tho→though`, `digged→dug`, `no harm no fowl→no harm no foul`.”

Harper: a private, offline alternative to Grammarly
1 Views
0 Likes
0 Bookmarks
Source · github.com

“"If you are an agent or used an LLM to produce any part of a PR, please provide a disclaimer at the top of your PR description. I am not opposed to reviewing LLM code, but I do appreciate the honesty." — Elijah Potter, AGENT_POLICY.md (https://raw.githubusercontent.com/Automatti...”

You know that feeling when you fix a typo in a code comment and your grammar checker quietly ships the surrounding paragraph to someone else's server? Every draft, every internal doc, every half-written commit message goes over the wire so a comma can come back. The alternative has been LanguageTool, which per Harper's README means a ~16GB n-gram dataset and a JVM sitting in your background. Neither option gives you grammar checking inside Neovim on a plane, and neither one lets you read the rule that flagged your sentence.

rustdeveloper-toolsopen-sourceprivacylspwebassemblynlp

Think of a spell-checker that has been compiled into your program instead of downloaded at startup. Harper packs a 786,704-byte dictionary of 54,800 words into a finite-state transducer — a compressed word map you can search sideways — and finds near-misses by intersecting it with a Levenshtein automaton, so "thougt" resolves without scanning the dictionary word by word. On top of that it runs a Brill part-of-speech tagger and a small neural chunker (trained on CoNLL-U treebanks, weights baked in as an 806,312-byte file) to label which words are nouns and verbs. Roughly 300 Rust files then pattern-match against those labels: each is one rule, like "no harm no fowl → no harm no foul". The clever part is that all of it — dictionary, tagger, chunker, rules — is compiled into a single artifact, which is why the same code that runs `harper-ls` in your editor also runs in a browser tab with nothing to fetch.

01
Fully offline checking — no network calls, no telemetry, no model in the loop, so a private draft or an unreleased spec never leaves your machine and works the same on a plane as at your desk.
02
harper-ls language server — one binary gives you grammar diagnostics in Neovim, VS Code, Helix, Emacs, Zed and Sublime Text, across Markdown and the comments of 50+ programming languages, so you stop switching windows to proofread docs.
03
Everything compiles into the artifact — the 786,704-byte dictionary, the Brill tagger and the 806,312-byte chunker weights ship inside the binary, so there is no model download, no server to run, and the same build works in a browser via W...
04
Weir rule DSL — you write house-style rules as pattern expressions (sequences, alternatives, part-of-speech tags, exceptions), test them with `harper-cli test`, and ship them as `.weirpack` archives, so your team's naming conventions get e...
05
Per-rule and per-dialect config — switch between American, British, Canadian, Australian and Indian English, set diagnostic severity, exclude globs, and turn off individual linters, which is how you tame the rules that misfire on code.
06
Runs in the browser through harper.js — the WebAssembly build pulled 76,118 npm downloads in the month to 2026-07-24, so you can put the same checker inside a web editor you're building.
07
Apache-2.0 and free with no paid tier and no hosted service — nothing to procure, nothing to expense, and you can read the exact rule that flagged your sentence.
Who it’s for

If you write Markdown docs, READMEs and code comments in Neovim, VS Code, Helix, Emacs or Zed and you want typos caught without a cloud round-trip, this is built for you — the language server is the mature part of the project. It also fits you if privacy is a hard requirement and shipping text to a third party is off the table. It is not for you if you write in anything other than English, if you need sentence rewriting rather than error flagging, or if you were hoping the new macOS desktop app is finished — issues #3565, #3504 and #3540 say otherwise.

Worth exploring

Yes for the language server and library — 12 releases since March 2026, all six product CI workflows green on 2026-07-23, 130 contributors, and Automattic behind it since November 2024. Treat the coverage claims with care: Harper's own Neovim docs concede rules have "too much of a hair-trigger" and hand you a config that disables SpellCheck, and the 645-point Hacker News thread has two testers reporting broken sentences passing clean. The macOS desktop app is new enough that its own README says documentation gets updated "on a 'when we have time' basis" — try that one later.

Developer playbook
Tech stack, code snippet, sentiment, alternatives.
PM playbook
Adoption angles, user fit, positioning.
CEO playbook
Traction signals, ROI, build vs buy.
Deep-dive insight
Full long-form analysis, no fluff.
Easy mode
Core idea, fast — when you need the gist.
Pro mode
Technical nuance, edge cases, tradeoffs.
Read the full digest
Go beyond the preview

Deep-dive insight, Easy and Pro modes, plus action playbooks — the full breakdown is one tap away.

Underrated tools. Unfiltered takes.

Read the full digest in the Snaplyze app for deep-dive insight, Easy and Pro modes, and the playbooks you can actually use.

Install Snaplyze →