Offline, privacy-first grammar checker. Fast, open-source, Rust-powered
Find a file
2024-12-27 11:49:08 -07:00
.github Merge remote-tracking branch 'origin/master' into draftpr-disable-workflows 2024-11-29 21:52:08 -07:00
.vscode feat: make the Harper Visual Studio Code extension recommended 2024-10-22 14:56:56 -06:00
harper-cli fix: changed links from elijah-potter/harper to automattic/harper 2024-12-18 08:05:16 -07:00
harper-comments fix: changed links from elijah-potter/harper to automattic/harper 2024-12-18 08:05:16 -07:00
harper-core fix: changed links from elijah-potter/harper to automattic/harper 2024-12-18 08:05:16 -07:00
harper-html fix: changed links from elijah-potter/harper to automattic/harper 2024-12-18 08:05:16 -07:00
harper-ls feat(web): moved documentation to the website 2024-12-20 15:07:43 -07:00
harper-tree-sitter fix: changed links from elijah-potter/harper to automattic/harper 2024-12-18 08:05:16 -07:00
harper-wasm feat(harper.js): added ability configure Linters + unified tests 2024-12-19 11:06:31 -07:00
packages docs: moved contributor documentation to the web 2024-12-27 11:49:08 -07:00
.gitignore fix: we do not need a whole extra build step and crate for this 2024-11-15 18:39:39 -07:00
ARCHITECTURE.md fix: changed links from elijah-potter/harper to automattic/harper 2024-12-18 08:05:16 -07:00
Cargo.lock feat: created WorkerLinter that doesn't block the event loop 2024-12-16 13:57:52 -07:00
Cargo.toml fix: we do not need a whole extra build step and crate for this 2024-11-15 18:39:39 -07:00
COMPARISON.md fix: changed links from elijah-potter/harper to automattic/harper 2024-12-18 08:05:16 -07:00
CONTRIBUTING.md docs: moved contributor documentation to the web 2024-12-27 11:49:08 -07:00
demo.md feat: web demo now works on mobile + fixed scrolling bug 2024-10-12 10:08:36 -06:00
Dockerfile build(web): SveltePress depends on git 2024-12-20 15:25:09 -07:00
fly.toml fix: deal with Fly.io DEN incident 2024-10-19 10:29:21 -06:00
justfile feat(web): moved documentation to the website 2024-12-20 15:07:43 -07:00
LICENSE fix: filled in LICENSE 2024-03-25 14:58:52 -06:00
logo.svg feat: added logo to README.md and web client 2024-02-15 20:56:27 -07:00
README.md fix: changed links from elijah-potter/harper to automattic/harper 2024-12-18 08:05:16 -07:00
rust-toolchain.toml feat: enforce stable rust with a rust-toolchain.toml 2024-09-27 08:28:57 +02:00
rustfmt.toml chore: remove the unstable rustfmt options and format the repo 2024-09-27 08:34:57 +02:00
yarn.lock fix: further issues with multiline comments due to improper newline handling 2024-06-29 19:20:52 -06:00

Harper

Harper Binaries Web Precommit Crates.io

Harper is an English grammar checker designed to be just right. I created it after years of dealing with the shortcomings of the competition.

Grammarly was too expensive and too overbearing. Its suggestions lacked context, and were often just plain wrong. Not to mention: it's a privacy nightmare. Everything you write with Grammarly is sent to their servers. Their privacy policy claims they don't sell the data, but that doesn't mean they don't use it to train large language models and god knows what else. Not only that, but the round-trip-time of the network request makes revising your work all the more tedious.

LanguageTool is great, if you have gigabytes of RAM to spare and are willing to download the ~16GB n-gram dataset. Besides the memory requirements, I found LanguageTool too slow: it would take several seconds to lint even a moderate-size document.

That's why I created Harper: it is the grammar checker that fits my needs. Not only does it take milliseconds to lint a document, take less than 1/50th of LanguageTool's memory footprint, but it is also completely private.

Harper is even small enough to load via WebAssembly.

Language Support

Harper currently only supports American English, but the core is extensible to support other languages, so we welcome contributions that allow for other language support.

Installation

If you want to use Harper on your machine, you have three choices.

harper-ls

harper-ls provides an integration that works for most code editors.

Read more here.

Harper Obsidian Integration

If you use Obsidian, you may install the Harper Obsidian Plugin by searching for "Harper" in the community plugin store.

Zed Plugin

If you use Zed, Stef16Robbe has developed a fantastic plugin that works out-of-the box. No setup required.

Performance Issues

We consider long lint times bugs. If you encounter any significant performance issues, please create an issue on the topic.

If you find a fix to any performance issue, we are open the contribution. Just make sure to read our contribution guidelines first.

FAQs

Where did the name Harper come from?

See this blog post.

Huge Thanks

This project would not be possible without the hard work from those who contribute.