mrkeyoor.com_
Thu 24 Sept 16:51 UTC
Dev Toolsevaluationupdated 26 Aug 2026

harper review

Harper is an English grammar and style checker that runs locally, including inside browsers, editors, Obsidian, a desktop app, and JavaScript applications. Its Rust core and WebAssembly build let it flag writing problems without sending the text to a remote grammar service.

+273stars / 7d
Verdict

Our Harper install pulled 2,562 packages and used 1,629 MB, while the repository offered no root build or test target for us to verify. The finished extensions and local-only checking still make Harper worth trying for English writing where privacy comes first. Test it on a representative document set before standardizing, because an open report shows several ordinary errors going unflagged.

We ran it

Lab card: what happened when we ran harperScreenshot of harper (writewithharper.com)
Install✓ · 39s2562 packages · 1629 MB
Buildn/ano build script
Testsn/ano test script
Repo1777 files~159,968 lines of source · 49.1 MB · 7 CI workflows · Dockerfile

Answers from our run

Does harper build from source?

Dependencies installed in 39 seconds (2562 packages), and the project has no separate build step. We cloned commit 1f6cac2 into a clean Debian container with 3 CPUs and no project-specific setup.

Does harper have tests you can run?

Not through a standard command: the project exposes no test script or target that our harness could run.

Who should not use harper?

Multilingual writers: the README says Harper currently supports English only.

What are the alternatives to harper?

LanguageTool, Vale, textlint. Our Harper install pulled 2,562 packages and used 1,629 MB, while the repository offered no root build or test target for us to verify.

Setup3/539-second install, but no root build or test target
Docs4/5Good integration guides; root contributor path is fragmented
Community5/514,742 stars and active same-day issue and pull request work
Maturity4/5Many shipped clients, with uneven rule and store coverage

Discussed on

  1. hnHarper: Offline, privacy-first grammar checker. Fast, open-source, Rust4 points

Who it’s for

Writers and developers who need English suggestions without uploading drafts to a vendor.
VS Code, Neovim, Helix, Emacs, Zed, and Obsidian users who want checks where they write.
Application developers who need an Apache-licensed grammar engine through JavaScript or a language server.
Teams willing to tune rules and dictionaries around their own technical vocabulary.

Who it’s NOT for

Multilingual writers: the README says Harper currently supports English only.
Anyone expecting a checker to catch every basic error: issue 4224 supplies three incorrect sentences that produced no findings in both VS Code and the web app.
Microsoft Edge users who require release parity: issue 3881 says the store build was months behind and no longer linked from Harper's download page.
Teams that need one obvious root verification command: our pnpm run found no build or test script to execute, despite the repository containing several products and 7 CI workflows.

Setup reality

Our sandbox installed 2,562 pnpm packages in 39 seconds and used 1,629 MB on disk. The root package exposed no build script and no test script, so both steps were skipped rather than passed.

End users can choose a browser extension, desktop app, Obsidian plugin, or editor integration. Developers have harper.js and harper-ls; building the whole monorepo requires following product-specific documentation rather than a single root npm path. No cloud key is needed for grammar checks.

Harper checks English only. The repository has 1,777 files and about 159,968 source lines, plus a Dockerfile and compose file. Local processing helps privacy, but rule coverage and false positives still need testing against your documents.

English checking stays on the device

Harper finds grammar, spelling, and style problems without sending a draft to a hosted service. Its core is written in Rust and can run through WebAssembly, which makes local browser and JavaScript use practical. Finished integrations cover major code editors, Obsidian, browsers, and a desktop app. A language server gives editors a common protocol, while harper.js lets application developers embed the checker. The Apache 2.0 license permits commercial use and modification.

Privacy is the clearest reason to choose it. Text can remain inside the editor or browser rather than becoming a request to an outside grammar API. That helps with unpublished writing, client documents, source comments, and internal notes. Local execution also removes network delay from each correction. It does not settle accuracy, though. A private suggestion can still be wrong, and an omitted suggestion can still leave a visible error in the final copy.

English-only rules leave multilingual documents uncovered

The README says Harper currently supports English only. Its core can be extended for more languages and contributions are welcome, but that is an invitation rather than current product coverage. Documents that mix English with customer names, code, abbreviations, or another language will need dictionary changes and selective rule disabling. Teams publishing several languages should choose a multilingual checker or run separate tools instead of assuming Harper will grow into that requirement.

Rule coverage also needs a realistic trial. Issue 4224 reports 3 deliberately incorrect example sentences that drew no findings in both VS Code and Harper's website. The examples include homophone confusion, agreement errors, and an awkward phrase. One report does not measure the engine's overall recall, but it proves that installing a grammar checker cannot replace proofreading. Build a sample from your own recurring mistakes and compare the results before asking every writer to adopt it.

What happened when we ran it

Our sandbox installed 2,562 pnpm packages in 39 seconds and consumed 1,629 MB on disk. The checkout at commit 1f6cac2 contained 1,777 files, about 159,968 source lines, and multiple pnpm workspaces. The root package had no build script or target, so we skipped the build. It also had no test script or target, so we skipped tests. Those steps did not fail, but neither produced a passing result.

The repository scan found 7 CI workflow files, a Dockerfile, and a compose file. It did not find a tests directory. That combination suggests product-specific automation exists outside the simple root npm path our lab exercises. It also means a contributor cannot infer the correct full verification command from pnpm install alone. The 1,629 MB dependency footprint is much larger than the lightweight end-user story and should be budgeted by anyone building the full monorepo.

Several clients make installation a product choice

Most users should not clone the repository. Harper is distributed as browser extensions, a desktop app, an Obsidian plugin, editor integrations, a language server, and a JavaScript package. The right setup depends on where text is written. An editor user can install the relevant extension, while a product team can embed the WebAssembly-backed library. None of those local checking paths needs a cloud grammar credential.

The number of clients creates release coordination work. Issue 3881 asks whether the Microsoft Edge version was discontinued because its store listing was months behind and Harper's download page no longer linked it. That may be a store or publishing problem, but the issue does not resolve which. Edge users should check the actual store version before basing a team rollout on it. A Chromium extension from another store may have different update and policy implications.

False positives still matter inside web forms

Browser extensions operate inside pages they do not control. Issue 4223 shows erroneous <mark> corrections appearing in a particular SpamCop feedback form with Firefox nightly and extension version 2.8.0. The report is narrow, yet it captures an important integration risk: contenteditable fields and site markup vary. People who work in specialized web applications should test those exact forms and keep an easy way to disable Harper per site.

Release 2.8.0 included a Chrome extension concurrency fix, a Slack editor fix, an Obsidian loading fix, and changes to several grammar rules. It also added pooling to reduce repeated linter construction cost and addressed a memory leak in JavaScript products. The range of fixes shows that Harper is more than a library, and every host surface has its own failure modes. Updates deserve the same staged rollout as other editor tooling.

August 2026 activity is high, and the queue is crowded

GitHub recorded 14,742 stars, 853 combined open issues and pull requests, and a last push on August 26, 2026. Version 2.8.0 was published on August 13. Same-day activity included extension work, desktop refactoring, dictionary curation, and rule changes. The large combined count is not a bug total, but it does show how much discussion and unfinished work surrounds the many integrations.

Harper is easiest to recommend as a private second set of eyes for English prose. It runs in the places technical writers already use and avoids a remote text service. The 39-second repository install does not translate into a clear one-command contributor check, and the 2,562-package tree is substantial. Try the packaged client first, feed it documents with known mistakes, and keep human review for anything costly or public.

Alternatives

ProjectWhat it isPick it when
LanguageToolA mature grammar checker with broad language support and local or hosted deployment.pick this instead when languages beyond English or a larger established rule set matter more than a small local footprint.
ValeA prose linter that applies configurable style guides to documentation and source files.pick this instead when enforcing an editorial style guide in CI matters more than interactive grammar suggestions.
textlintA pluggable text linting framework with rules for prose and documentation.pick this instead when your team wants to assemble its own rule packages, especially outside English.

What people are saying

  1. [github-trending] Automattic/harper

Sources

  1. Harper README
  2. Harper repository metadata
  3. Harper v2.8.0 release
  4. Reported missed grammar errors
  5. Microsoft Edge release question
  6. Firefox form correction report

More dev tools reviews

zeron · cs2-dumper · hackingtool · react-native-continued-task · selfdb · DLSS5oneclick · the whole board →