explaingit

automattic/harper

10,482RustAudience · writerComplexity · 2/5Setup · easy

TLDR

A fast, privacy-first English grammar checker written in Rust that runs entirely on your device in milliseconds, with plugins for VS Code, Neovim, Obsidian, and web apps, no server, no data ever leaves your machine.

Mindmap

mindmap
  root((Harper))
    Why Harper
      Privacy first
      Fast milliseconds
      Low memory
    Editor plugins
      VS Code
      Neovim
      Obsidian
      Emacs and Zed
    Tech
      Rust core
      WebAssembly
      Language server
    Features
      Grammar check
      English only
      Fully offline
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Add real-time grammar checking to VS Code or Neovim without sending any text to an external server.

USE CASE 2

Embed grammar checking in a web application using the harper.js JavaScript and WebAssembly package.

USE CASE 3

Use the Obsidian plugin to check grammar across your notes entirely offline with no account needed.

USE CASE 4

Get instant grammar suggestions in Helix or Zed through the standard language server integration.

Tech stack

RustWebAssemblyJavaScript

Getting it running

Difficulty · easy Time to first run · 30min

In plain English

Harper is an English grammar checker built in Rust. It checks your writing for grammar mistakes locally on your device, without sending anything to a server. The author built it because existing options had drawbacks that made them frustrating to use in practice. The README explains the motivation directly. One popular grammar checker sends everything you type to external servers, which the author sees as a privacy problem. Another well-known option requires downloading a large dataset (around 16 gigabytes) and uses so much memory that it runs slowly on ordinary machines. Harper is designed to address both of those complaints: it keeps your text on your device and runs fast enough that checking a document takes only milliseconds rather than seconds, using far less memory than the alternatives. Harper integrates with text editors and writing tools through a language server, which is a standard way for editors to talk to external tools that provide suggestions. The README lists supported editors including Visual Studio Code, Neovim, Helix, Emacs, and Zed. There is also a plugin for Obsidian, a note-taking application. Beyond desktop editors, Harper can run in a web browser through WebAssembly, meaning it can be embedded in websites without requiring a server-side component. A JavaScript package called harper.js is available for developers who want to add grammar checking to web applications. The core is written to be extensible to other languages beyond English, though as of this README only English is supported. The project treats slow performance as a bug rather than an acceptable limitation. If the checker takes too long on a document, the maintainers want to hear about it and will treat it as something to fix. Harper is maintained by Automattic and welcomes outside contributions.

Copy-paste prompts

Prompt 1
I write in Neovim and want offline grammar checking with Harper. Show me how to install and configure the language server plugin.
Prompt 2
How do I add Harper grammar checking to my web app using the harper.js npm package, with a working code example?
Prompt 3
I use Obsidian for note-taking. How do I install the Harper plugin and what kinds of grammar mistakes does it catch?
Prompt 4
How does Harper compare to LanguageTool for a developer who writes technical documentation and wants privacy and speed?
Open on GitHub → Explain another repo

← automattic on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.