# automattic/harper

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/automattic-harper).**

9,892 stars · 278 forks · Rust · apache-2.0

## Links

- GitHub: https://github.com/Automattic/harper
- Homepage: https://writewithharper.com
- awesome-repositories: https://awesome-repositories.com/repository/automattic-harper.md

## Topics

`chrome-extension` `developer-tools` `english-language` `grammar-checker` `nodejs` `react` `rust` `svelte` `webassembly`

## Description

Harper is a local English linter and grammar checker designed as an IDE writing assistant. It operates as a language server that provides real-time spelling and grammar analysis for markdown and code comments, processing all linguistic data on the local device to ensure privacy and eliminate cloud dependencies.

The tool is specialized for technical documentation, featuring the ability to identify and ignore text within code fences and inline blocks to prevent false positives. It allows for personalized configuration through custom dictionaries and the use of suppression comments to exclude specific text regions from analysis.

The system provides actionable diagnostic mapping that enables quick-fix error resolution and grammar fix applications directly within a text editor.

## Tags

### Artificial Intelligence & ML

- [Writing Assistance Tools](https://awesome-repositories.com/f/artificial-intelligence-ml/writing-assistance-tools.md) — Provides real-time linguistic suggestions and quick-fix actions directly within a text editor via a language server.

### Development Tools & Productivity

- [Grammar Checkers](https://awesome-repositories.com/f/development-tools-productivity/grammar-checkers.md) — Provides a local language server for real-time spelling and grammar linting within editors.
- [Prose Linters](https://awesome-repositories.com/f/development-tools-productivity/code-linters/prose-linters.md) — Validates writing quality in technical documents and markdown while specifically ignoring code fences.
- [Local Grammar Analyzers](https://awesome-repositories.com/f/development-tools-productivity/local-grammar-analyzers.md) — Analyzes text for grammatical errors using a local engine to ensure data privacy during the linting process. ([source](https://cdn.jsdelivr.net/gh/automattic/harper@master/README.md))
- [Diagnostic Offset Mappings](https://awesome-repositories.com/f/development-tools-productivity/diagnostic-offset-mappings.md) — Maps language server errors to specific text offsets to provide direct inline fixes and suggestions.
- [Analysis Suppression Mechanisms](https://awesome-repositories.com/f/development-tools-productivity/formatting-suppression/analysis-suppression-mechanisms.md) — Allows users to skip specific blocks of text using ignore keywords to prevent unwanted error flags in the editor. ([source](https://writewithharper.com/docs/integrations/language-server))
- [Real-time Text Linting](https://awesome-repositories.com/f/development-tools-productivity/real-time-text-linting.md) — Provides grammar and spelling checks within supported editors via a language server to ensure high writing quality. ([source](https://writewithharper.com/docs/integrations/language-server))
- [Prose Polishing Tools](https://awesome-repositories.com/f/development-tools-productivity/technical-documentation/prose-polishing-tools.md) — Cleans up prose in technical files while ignoring code blocks and specific sections to prevent false positives.

### Part of an Awesome List

- [Text Correction](https://awesome-repositories.com/f/awesome-lists/ai/text-correction.md) — Enables the correction of identified linguistic errors directly within the text editor using actionable suggestions. ([source](https://writewithharper.com/docs/integrations/neovim))
- [Local Grammar Checkers](https://awesome-repositories.com/f/awesome-lists/devtools/local-grammar-checkers.md) — Analyzes text for spelling and grammar errors on a local device to ensure data privacy and eliminate cloud dependencies.
- [LSP Integration](https://awesome-repositories.com/f/awesome-lists/devtools/lsp-integration.md) — Communicates with a language server protocol to identify grammar and spelling errors and return diagnostic data.
- [Spelling and Error Correction](https://awesome-repositories.com/f/awesome-lists/more/spelling-and-error-correction.md) — Provides mechanisms to correct spelling or grammar mistakes and add unknown words to custom dictionaries. ([source](https://writewithharper.com/docs/integrations/language-server))
- [Documentation Prose Filtering](https://awesome-repositories.com/f/awesome-lists/devtools/code-analysis-and-linting/documentation-prose-filtering.md) — Automatically skips analysis of text within code fences and inline blocks to prevent false positives in technical documentation. ([source](https://writewithharper.com/docs/integrations/obsidian))
- [Prose Block Detection](https://awesome-repositories.com/f/awesome-lists/devtools/code-analysis-and-linting/prose-block-detection.md) — Identifies and excludes text within markdown code fences and inline blocks to prevent false positive linting.

### Programming Languages & Runtimes

- [Custom Dictionaries](https://awesome-repositories.com/f/programming-languages-runtimes/programming-utilities/data-text-processing/custom-dictionaries.md) — Maintains a local store of user-approved words to override default spelling and grammar rules.

### Security & Cryptography

- [Local-First Privacy Tools](https://awesome-repositories.com/f/security-cryptography/local-first-privacy-tools.md) — Processes linguistic analysis on the user device to ensure data privacy and eliminate dependencies on cloud services.

### Testing & Quality Assurance

- [Content Linting Pipelines](https://awesome-repositories.com/f/testing-quality-assurance/code-quality-review/code-quality-tools/formatting-and-linting-pipelines/content-linting-pipelines.md) — Checks grammar and spelling within markdown files and code comments to improve the quality of technical documentation.

### Data & Databases

- [Linguistic Analysis Exclusions](https://awesome-repositories.com/f/data-databases/text-processing-utilities/text-processing-tools/selective-text-processors/linguistic-analysis-exclusions.md) — Disables grammar checking for selected sections of text through the use of specific comments within the document. ([source](https://writewithharper.com/docs/integrations/visual-studio-code))

### User Interface & Experience

- [Analysis Suppression Markers](https://awesome-repositories.com/f/user-interface-experience/comment-interfaces/analysis-suppression-markers.md) — Parses the document for specific ignore markers to skip analysis of designated text regions.
