Roadmap for Automattic/harper: Desktop Expansion, Cross-Platform Support, and Rule Growth

The Automattic/harper roadmap prioritizes porting the desktop highlighter to Windows and Linux, expanding the WebAssembly API surface, and continuously adding domain-specific grammar rules through the Weir DSL.

Harper is a multi-language grammar-checking ecosystem developed by Automattic, comprising a Rust-based core engine (harper-core), language-server bindings (harper-ls), and a growing family of editor extensions. While the repository does not contain a single consolidated roadmap document, the project's future direction is explicitly encoded in source comments, architecture files, and the modular design itself.

Desktop Highlighter: Windows and Linux Support

The most significant upcoming milestone involves expanding the desktop overlay beyond macOS. Currently, the highlighter relies on platform-specific code in harper-desktop/src-tauri/src/mac_broker.rs to handle accessibility APIs and coordinate mapping on macOS, while non-macOS builds fallback to a no-op broker.

According to the source code at packages/web/src/routes/desktop/+page.svelte (line 27), support for other platforms is explicitly marked as "on the roadmap." The implementation plan involves replicating the macOS broker's functionality—specifically the accessibility integration and screen-coordinate translation—for Windows and Linux environments.

Editor Extensions and Language Server Enhancements

Harper currently supports VS Code, Neovim, Helix, Zed, Sublime Text, and other editors through harper-ls. The roadmap includes keeping these extensions synchronized with core releases while adding new language-server capabilities.

Planned improvements focus on real-time suggestion pop-ups, performance optimizations for large files, and an ignore-list UI that allows users to manage their personal dictionaries directly from editor interfaces. These enhancements leverage the IPC architecture documented in ARCHITECTURE.md.

Harper.js WebAssembly API Expansion

The harper-js package provides a CDN-delivered WebAssembly build for in-browser linting. Future development aims to expand the WASM API surface beyond basic linting functions.

Specifically, the roadmap includes exposing dictionary mutation methods and custom rule loading capabilities through the JavaScript client. This will allow web-based implementations to dynamically add words to the mutable dictionary or load specialized Weir rules at runtime.

// Example: Adding a custom word via the Client API
// Located in harper-desktop/src/lib/client.ts
await Client.addToDictionary('foobar');

// Example: Enabling specific rules programmatically
await Client.setLintConfig({ enable: ['no-passive-voice'] });

Rule Authoring with the Weir DSL

New grammar rules are authored in the Weir DSL and stored in harper-core/src/linting/weir_rules/. The roadmap emphasizes growing this rule library to cover domain-specific writing issues.

Interestingly, the repository contains a meta-commentary on the word "roadmap" itself. The file harper-core/src/linting/weir_rules/RoadMap.weir defines a rule that flags the concatenated token roadmap and suggests the spaced form road map, demonstrating the system's ability to enforce style-guide preferences through declarative rules.

// Example: Triggering the RoadMap rule
let text = "The product roadmap was released.";
let lints = linter.lint(text);
// Returns: Suggestion to replace `roadmap` with `road map`

Documentation and Architecture Evolution

The project maintains detailed architecture documentation in ARCHITECTURE.md and contributor-focused guides under packages/web/src/routes/docs/contributors/architecture/+page.md. The roadmap includes keeping these diagrams current with new subsystems and eventually publishing a public-facing roadmap page.

Additional planned work involves increasing test coverage for platform-specific highlighter code, adding fuzz tests for dictionary merging logic, and automating CI checks for new rule snapshots to ensure stability as the rule library grows.

Summary

  • Cross-platform desktop support is the primary hardware-facing goal, with Windows and Linux implementations following the macOS broker pattern.
  • WebAssembly API growth will enable dynamic dictionary editing and custom rule loading in browser environments.
  • Editor integration continues to expand through harper-ls with real-time UI features and performance improvements.
  • Weir DSL rule expansion focuses on domain-specific grammar checks, including style-guide enforcement like the RoadMap rule.
  • Documentation updates will provide clearer contributor guidance and a public roadmap interface.

Frequently Asked Questions

Is there an official public roadmap document for Harper?

No, Harper does not maintain a single static roadmap file. Instead, the project's direction is documented through inline code comments—such as the platform support note in packages/web/src/routes/desktop/+page.svelte—and architectural decisions recorded in ARCHITECTURE.md.

Which platforms will the Harper desktop highlighter support next?

Windows and Linux support is explicitly planned. The current implementation uses mac_broker.rs for macOS accessibility integration, and the roadmap involves building equivalent brokers for Windows and Linux that handle coordinate mapping and accessibility APIs on those platforms.

How does the RoadMap rule in Harper work?

The RoadMap rule is defined in harper-core/src/linting/weir_rules/RoadMap.weir using the Weir DSL. It detects when the word "roadmap" appears as a single token and generates a lint suggestion to replace it with the two-word form "road map," enforcing specific style-guide preferences.

What is the Weir DSL used for in Harper's development?

The Weir DSL is a domain-specific language for authoring grammar and style rules in Harper. Located in harper-core/src/linting/weir_rules/, it allows developers to declare pattern-matching rules that the core engine compiles into efficient linting logic, supporting everything from basic spell checking to complex style enforcement.

Have a question about this repo?

These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →