skillpack.co
All solutions

LanguageTool

active

Open-source multilingual grammar and style checker supporting 30+ languages. Self-hostable, SOC 2 compliant, GDPR-friendly. Free tier + Premium from $4.99/mo. Written in Java. 14,184 GitHub stars — highest in content-writing category.

Score 84
LanguageTool in action

Where it wins

30+ languages — unmatched multilingual support in category

14,184 GitHub stars — highest stars of any tool in content-writing

HN: 370pts/75 comments — strong developer adoption signal

Self-hostable with SOC 2 and GDPR compliance — enterprise-grade privacy

Free tier (generous) + Premium from $4.99/mo — accessible pricing

Where to be skeptical

Java-based — heavier runtime than Rust-based Harper

2,097 open issues — significant maintenance load

Less developer-focused than Vale or Harper — broader consumer audience

Premium features require subscription — not fully OSS for all features

Editorial verdict

Best for multilingual teams and self-hosted deployments. 14,184 stars (highest in category), HN 370pts. 30+ languages — unmatched. Self-hostable with SOC 2 and GDPR compliance. The go-to for non-English support or on-premise deployment.

Related

Public evidence

strong2026
Multilingual advantage — unmatched in category

LanguageTool supports over 30 languages, which immediately puts it miles ahead of Grammarly's English-first approach. Only serious contender for non-English content governance.

Academic writing platform comparisonScribbr (academic writing platform)
moderate2026
Self-hostable for privacy-sensitive organizations

LanguageTool enables self-hosting. SOC 2 compliance and GDPR-friendly data handling added in 2026. Enterprise-grade privacy story + open source.

Privacy advocacy guidePrivacyTools (independent privacy advocacy)

Raw GitHub source

GitHub README peek

Constrained peek so you can sanity-check the source material without leaving the site.

LanguageTool

LanguageTool is open-source proofreading software for English, Spanish, French, German, Portuguese, Polish, Dutch, and more than 20 other languages. It finds many errors that a simple spell checker cannot detect.

  • LanguageTool Forum

  • How to run your own LanguageTool server

  • HTTP API documentation

  • How to use our public server via HTTP

  • How to use LanguageTool from Java (Javadoc)

For more information, please see our homepage, at languagetool.org, this README, and CHANGES.

The LanguageTool core (this repo) is freely available under the LGPL 2.1 or later.

Docker

Try one of the following projects for a community-contributed Docker file:

github.comhub.docker.com/r
meyayl/docker-languagetoolmeyay/languagetool
Erikvl87/docker-languagetoolerikvl87/languagetool
silvio/docker-languagetoolsilviof/docker-languagetool

Contributions

The development overview describes how you can contribute error detection rules.

For more technical details, see our dev pages.

Scripted installation and building

To install or build using a script, simply type:

#!/usr/bin/env sh
curl -L https://raw.githubusercontent.com/languagetool-org/languagetool/master/install.sh | sudo bash $options

If you wish to have more options, download the install.sh script. Usage options follow:

<blockquote>
sudo bash install.sh <options>

Usage: install.sh <option> <package>
Options:
   -h --help                   Show help
   -b --build                  Builds packages from the bleeding edge development copy of LanguageTool
   -c --command <command>      Specifies post-installation command to run (default gui when screen is detected)
   -q --quiet                  Shut up LanguageTool installer! Only tell me important stuff!
   -t --text <file>            Specifies what text to be spellchecked by LanguageTool command line (default spellcheck.txt)
   -d --depth <value>          Specifies the depth to clone when building LanguageTool yourself (default 1).
   -p --package <package>      Specifies package to install when building (default all)
   -o --override <OS>          Override automatic OS detection with <OS>
   -a --accept                 Accept the oracle license at http://java.com/license. Only run this if you have seen the license and agree to its terms!
   -r --remove <all/partial>   Removes LanguageTool install. <all> uninstalls the dependencies that were auto-installed. (default partial)

Packages(only if -b is specified):
   standalone                  Installs standalone package
   wikipedia                   Installs Wikipedia package
   office-extension            Installs the LibreOffice/OpenOffice extension package

Commands:
   GUI                         Runs GUI version of LanguageTool
   commandline                 Runs command line version of LanguageTool
   server                      Runs server version of LanguageTool
</blockquote>

Alternate way to build from source

Before start: you will need to clone from GitHub and install Java 17 and Apache Maven.

Warning: a complete clone requires downloading more than 500 MiB and needs more than 1 500 MiB on disk. This can be reduced, if you only need the last few revisions of the master branch by creating a shallow clone:

#!/usr/bin/env sh
git clone --depth 5 https://github.com/languagetool-org/languagetool.git

A shallow clone downloads less than 60 MiB, and needs less than 200 MiB on disk.

In the root project folder, run:

#!/usr/bin/env sh
mvn clean test

(Sometimes, you can skip Maven step for repeated builds.)

#!/usr/bin/env sh
./build.sh languagetool-standalone package -DskipTests

Test the result in languagetool-standalone/target/.

#!/usr/bin/env sh
./build.sh languagetool-wikipedia package -DskipTests

Test the result in languagetool-wikipedia/target.

Now, you can use the bleeding edge development copy of LanguageTool *.jar files, be aware that it might contain regressions.

How to run under Mac M1 or M2
  1. Install Brew for Rosetta:

    #!/usr/bin/env sh
    arch -x86_64 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
    
  2. Install OpenJDK for Rosetta:

    #!/usr/bin/env sh
    arch -x86_64 brew install openjdk
    
  3. Install Maven for Rosetta:

View on GitHub →