
15k stars · LGPL-2.1 · v6.8 (2026-05-05) · Track this in Rising ↗
Grammarly you can run yourself — and one of the very few checkers that takes Russian as seriously as English.
Radar check
What we found when we opened it. Every bar is one fact, with its date.
Last code pushed 25 Oct 2026, 2 days before this check.
No releases published on GitHub; the code date above is the one to trust.
Public since August 2013, a little over 13 years.
15,197 stars and 1,593 forks.
472 commits and 23 new issues in the last 90 days.
278 contributors. 121 pull requests merged in 90 days.
No security policy file says how to report a problem. No published security advisories.
How the bars are scored
- Alive. Days since the last code push: a week or less 100, a month 90, three months 70, six months 50, a year 30, eighteen months 15, older 0.
- Releases. Age of the latest GitHub release, on a similar scale; no bar when the project publishes no releases.
- Maturity. Age of the project: eight years 100, five 90, three 70, two 55, one 40, six months 25, younger 10.
- Adoption. Stars on a log scale: 100,000 stars is 100, 10,000 is 80, 1,000 is 60, 100 is 40.
- Activity. Commits in the last 90 days: 300 or more 100, 100 85, 30 65, 10 45, any 25.
- Community. People who have contributed: 100 or more 100, 30 80, 10 60, 5 40, 2 25, one 10.
- Security. A published security policy 80, none 40; published advisories are listed, not scored.
Checked by Repo Radar on 26 Oct 2026 from the repository on GitHub. Covered in Edition 10.
▶Repo detailsthe review · specs · pros & cons · install
What it does
It reads a block of text and returns a list of findings. Each finding carries the position in the text, a short message, and one or more suggested replacements. The README names English, Spanish, French, German, Portuguese, Polish and Dutch, and says more than twenty other languages are covered too. There are three ways to use it: a desktop program, a browser add-on, and an HTTP server you run yourself. The server is the one that matters for anything automated, because any program can send text to it and read the findings back. Rules are written as XML files, so a house rule can be added without writing Java code. What it does not do is rewrite text on its own. It reports findings and offers replacements, and a person still chooses. It also publishes no releases on GitHub at all: the version number lives in a changelog file inside the repository, where 6.8 is dated 5 May 2026 and 6.9 is still marked unreleased.
Why it matters
Who it suits. Anyone publishing text in more than one language who cannot have a native reader check every page. It also suits anyone whose draft copy must not be pasted into a website run by someone else, because the whole thing runs locally. The breadth of languages is the reason to choose this one over a plain spell checker. Skip it if a commercial checker is already in place and only one language is involved.
Verdict. Worth an afternoon when the text matters and more than one language is in play. Two things to know first. It needs a Java runtime, and it behaves like a service rather than a single file you drop into place, so somebody has to run it and watch it. And the licence is LGPL-2.1, which is comfortable when the checker runs as a separate service and is worth reading closely before linking it into a program you distribute. If the goal is only spelling inside code and documentation, crate-ci/typos is much smaller at 4,200 stars. For house style rather than grammar, entry 2 on this page is the better tool, and the two are often run side by side.
Summary (Key Points)from the README
Key features
- Language coverage: Proofreads English, Spanish, French, German, Portuguese, Polish, Dutch, and more than 20 other languages.
- Beyond spell checking: Finds many errors that a simple spell checker cannot detect.
- Public server: Can be used over HTTP through the public server, with HTTP API documentation provided.
- Self-hosting: Documentation explains how to run your own LanguageTool server.
- Java library: Can be used from Java, with Javadoc available.
- Rule contributions: The development overview describes how to contribute error detection rules.
- Scripted install: A single script command installs or builds LanguageTool, and a fuller install.sh script offers more options.
- Open license: The core is freely available under the LGPL 2.1 or later.
Ways to install
| Platform or method | What it needs | Effort |
|---|---|---|
| Scripted installation | Running the install script named in the README; the install command is not reproduced in the text | Low |
| Community Docker images | Docker, plus one of the community-contributed Docker files listed in the README | Low |
| Build from source (full clone) | Git, Java 17, Apache Maven, and more than 500 MiB of download and over 1 500 MiB of disk | High |
| Build from source (shallow clone) | Git, Java 17, Apache Maven, and under 60 MiB of download and under 200 MiB of disk | Medium |
| Mac M1 or M2 build | Homebrew, OpenJDK and Maven installed for Rosetta, then the build scripts | Medium |
Important
- Large full clone: A complete clone needs more than 500 MiB to download and more than 1 500 MiB of disk space; a shallow clone of recent master revisions is much smaller.
- Java 17 required: Building from source requires Java 17 and Apache Maven.
- Development builds may regress: The bleeding-edge *.jar files built from master might contain regressions.
- Community Docker files: The Docker images are community-contributed, not official project releases.
- Rosetta on Apple Silicon: The M1/M2 route depends on installing Homebrew, OpenJDK and Maven for Rosetta.
- License scope: The LGPL applies to the core "unless otherwise noted," so check COPYING.txt for exceptions.
Written by an AI model from the project’s README; not part of the review, and it can be wrong.
- More than twenty-five languages, with grammar rules rather than only a word list.
- Runs as a service you control, so nothing is sent to a third party.
- Rules are plain XML files, so a local rule needs no Java.
- It needs Java installed, and it has to be run and kept running like any other service.
- It publishes no GitHub releases, so the current version has to be read out of a changelog file.
- No memory or processor figures are published anywhere, so a machine cannot be sized from the documentation.
git clone --depth 5 https://github.com/languagetool-org/languagetool.git cd languagetool ./build.sh languagetool-standalone package -DskipTests
