LanguageTool server

Multilingual grammar, style, and spell checker (API)

Office Suites ★ 15.1k stars Easy setup LGPL-2.1-only

LanguageTool is a multilingual grammar, style and spell checker with an HTTP API used by browser extensions and editor plugins. It targets users who want proofreading without sending text to a cloud service. It is deployed via Docker or a Java server.

Key features

  • Grammar and style rules
  • Dozens of languages
  • HTTP API for integrations
  • Optional n-gram data

Pros & cons

Strengths

  • Supports many languages
  • Editor integrations available
  • Runs fully offline

Trade-offs

  • Java runtime required
  • Premium rules excluded
  • N-gram data huge

LanguageTool server replaces

Last reviewed Sep 13, 2026 · 749 words

Self-hosting LanguageTool gets you the grammar and spelling engine behind the browser extension, in dozens of languages, on a server that never sees your text leave the house, for about 800 MB of RAM. It does not get you LanguageTool Premium: the paid rules, the AI rewrite features and a large share of the English style checks are not in the open-source server and will not be, since they are what funds the company. If you are leaving Grammarly, the open server catches spelling, agreement, punctuation and the common style slips, and misses the "sounds awkward, try this" suggestions that Grammarly and the premium tier make. That is the deal, and for most technical writing it is a good one.

The Java server, and the two flags that matter

It is a Java application, which is the first con on its catalogue entry and the reason for the memory floor: the JVM plus loaded language data sits at 500 to 800 MB before a single request. The community erikvl87/languagetool image is the usual container and exposes the heap as environment variables:

services:
  languagetool:
    image: erikvl87/languagetool:latest
    environment:
      - Java_Xms=512m
      - Java_Xmx=1g
      - langtool_languageModel=/ngrams
    volumes:
      - ./ngrams:/ngrams
    ports:
      - "8010:8010"
    restart: unless-stopped

Port 8010 is the server's default. Without a heap limit the JVM helps itself to a quarter of host RAM, so set Java_Xmx on any shared box. Verify it with one request: curl -d "language=en-US" -d "text=This are a test." http://localhost:8010/v2/check returns JSON with a single match suggesting "is". The API has no authentication of its own, so it belongs on the LAN or a tailnet, behind a reverse proxy with TLS if it must be reachable from outside; an open instance is free compute for anyone who scans for it.

N-grams: the optional download that doubles the budget

The base rules are pattern-based and know nothing about which words usually appear together. The n-gram data adds that context and lets the server catch "their" versus "there" and similar confusions statistically. The cost is size: the English set is measured in gigabytes, the project recommends an SSD because lookups are random reads, and the heap wants to grow toward 2 GB. It is optional and per-language, and for English it is the single biggest quality jump available in the open version. Download it once, unpack into the mounted folder, and the langtool_languageModel path does the rest.

Pointing the clients at it

The browser extension has an advanced setting for a local server; set it to http://your-host:8010/v2 and the extension checks against your server with no account. LibreOffice has an official add-on that takes a server URL. Editor support is where it gets good for developers: LTeX in VS Code and the ltex-ls language server for Neovim and Emacs speak the same API and check Markdown, LaTeX and code comments in place, and Obsidian has a community plugin that does the same. It slots in next to the office and notes apps you already run, checking text before it ever reaches them.

What the open rules catch and miss

Caught: spelling in every supported language, subject-verb agreement, doubled words, missing commas in the obvious places, wrong apostrophes, casing, many false friends, and a long list of language-specific grammar rules maintained by volunteers. Missed: the checks marked with a padlock in the company's rule list, rewriting for tone, and the pickier English style rules that live behind the paywall. On a technical blog post, in my experience, the open server flags most of what the premium web app would and nearly all of the errors that actually matter; what it skips is polish, not correctness.

What I'd do

The container with a 1 GB heap, English n-grams on an SSD if the box has the space, port 8010 reachable only on the LAN and tailnet, the browser extension and the editor plugin pointed at it, and nothing else. It replaces the free tier of Grammarly completely and the paid tier partially, at zero per month, with no text leaving the house. If a writer in the household genuinely needs the premium style suggestions, a LanguageTool Premium subscription pointed at the company's servers is still the honest answer, and the self-hosted server stays for everyone else.

Similar office suites apps