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

> Explore the Automattic harper roadmap for desktop expansion on Windows/Linux, WebAssembly API growth, and rule enhancement via Weir DSL. Unlock new capabilities today.

- Repository: [Automattic/harper](https://github.com/Automattic/harper)
- Tags: roadmap
- Published: 2026-07-27

---

**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`](https://github.com/Automattic/harper/blob/main/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`](https://github.com/Automattic/harper/blob/main/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.

```typescript
// 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.

```rust
// 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`](https://github.com/Automattic/harper/blob/main/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`](https://github.com/Automattic/harper/blob/main/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`](https://github.com/Automattic/harper/blob/main/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.