# Automattic/harper

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

Repository: https://github.com/Automattic/harper
Canonical: https://ross.abutalabs.com/products/harper
Homepage: https://writewithharper.com
Language: Rust
License: Apache-2.0
License Family: permissive
Topics: developer-tools, english-language, grammar-checker, rust, webassembly, chrome-extension, nodejs, react, svelte
Last push: 2026-08-26T20:49:05+00:00

## Health v2 (maintenance only)
Score: 89/100 (v2, computed 2026-09-03T02:39:23.370411+00:00)
- activity 99, release rhythm 85, longevity 74
- inputs: {"age_days": 1046, "days_push": 7, "days_rel": 20, "gap_med": 5.0, "n_releases_24m": 93}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 14744, forks 583 (observed 2026-08-28T04:11:07.603194+00:00)

## What it is
Harper is an open-source, offline English grammar checker written in Rust that runs entirely on-device with millisecond lint times. It ships as a language server, JavaScript/Rust libraries, browser and editor extensions, and native apps, with no cloud calls or telemetry.

## Use cases
- check grammar in my writing without sending text to the cloud
- grammarly alternative that works offline
- add grammar checking to my obsidian vault
- lint markdown documents in neovim for grammar mistakes
- embed a grammar checker in a web app via javascript
- fast spell and grammar checking in vscode or zed
- system-wide grammar checking on macos

## When to choose
- you need privacy-first, fully offline grammar checking
- you want millisecond-speed linting with a tiny memory footprint
- you write in English across editors like Neovim, VS Code, Zed, or Obsidian
- you want to embed grammar checking in a Node, Bun, browser, or Rust project

## When to avoid
- you need grammar checking for languages other than English
- you rely on the deep contextual suggestions of an LLM-powered checker
- you need the broad language coverage of LanguageTool

## Facets
- artifact type: library
- maturity: active
- function: nlp, linter, sdk, plugin-system
- domain: developer-tools, text-editors
- platform: rust, wasm, browser, cross-platform, editor-plugin, browser-extension
- tags: grammar-checker, language-server, offline, privacy-first, spell-check, writing-assistant, obsidian-plugin, chrome-extension, lsp, natural-language-processing, nodejs, macos

## Member repositories
- Automattic/harper (main) score 89

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:11:07.603194+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-29T17:07:12.702418+00:00, confidence not recorded.
  - readme: https://github.com/Automattic/harper (fetched 2026-08-28T04:11:07.603194+00:00, sha 76dd24fb1df4)
  - homepage: https://writewithharper.com (fetched 2026-08-29T08:05:25.576056+00:00, sha fddb47dd1954)
  - site_page: https://writewithharper.com/docs/about (fetched 2026-08-29T08:05:25.585548+00:00, sha fa18cd7f8ccc)
  - site_page: https://writewithharper.com/docs/integrations/obsidian (fetched 2026-08-29T08:05:25.588804+00:00, sha ffab931a2c26)
  - site_page: https://writewithharper.com/docs/integrations/neovim (fetched 2026-08-29T08:05:25.590326+00:00, sha 30f75ea1e465)
  - site_page: https://writewithharper.com/docs/integrations/wordpress (fetched 2026-08-29T08:05:25.591948+00:00, sha 6d87e0926d22)
  - site_page: https://writewithharper.com/docs/integrations/zed (fetched 2026-08-29T08:05:25.593454+00:00, sha e73860ee7374)
  - site_page: https://writewithharper.com/docs/contributors/introduction (fetched 2026-08-29T08:05:25.594956+00:00, sha 10b5970a3289)
  - site_page: https://writewithharper.com/docs/rules (fetched 2026-08-29T08:05:25.596714+00:00, sha 87cf8a46ce1b)
  - site_page: https://writewithharper.com/get (fetched 2026-08-29T08:05:25.587297+00:00, sha 76ccae5a0e18)
- Data as of 2026-08-30T08:39:29.467469+00:00.
