LIVEReading: Run Your Own Grammar Checker Server in MinutesTotal time: 8 minSteps: 5Worked first time: 65% LIVEReading: Run Your Own Grammar Checker Server in MinutesTotal time: 8 minSteps: 5Worked first time: 65%
CBW
Run Your Own Grammar Checker Server in Minutes
Mediumgithub.com/languagetool-org/languagetool2026-07-07

Run Your Own Grammar Checker Server in Minutes

Self-host LanguageTool to get a private, ad-free grammar and style checker for 25+ languages. No coding required — one install script handles everything.

// Build stats

  • Total time8 min
  • Number of steps5
  • DifficultyMedium
  • Worked first time65%
// Before you start

What you need

  • Linux or macOS (Windows users need WSL2)
  • Java 17 installed (or let the install script handle it)
  • sudo / admin access on your machine
  • At least 2 GB free disk space
  • Stable internet connection for the initial download
01
Step 1 of 5

Run the one-line installer

5 min

LanguageTool ships an official install script that downloads the software, sets up Java if needed, and puts everything in the right place. The command below fetches that script directly from GitHub and runs it with admin rights. It will detect your OS automatically.

Terminal · mac
$ curl -L https://raw.githubusercontent.com/languagetool-org/languagetool/master/install.sh | sudo bash
What you should see
You should see download progress lines followed by 'Installation complete' or a similar success message. The script may also open a GUI window if you have a desktop environment.
This might happen

The script asks for your password and you see 'sudo: command not found'

You may be on a system without sudo. Try running the command as root: log in as root and drop the 'sudo' from the command.

02
Step 2 of 5

Start LanguageTool as a local HTTP server

2 min

Instead of using the GUI, you can run LanguageTool as a small web server on your own machine. This lets any app, browser extension, or script send text to it and get grammar feedback back. The server listens on port 8081 by default.

Terminal · mac
$ curl -L https://raw.githubusercontent.com/languagetool-org/languagetool/master/install.sh | sudo bash -s -- -c server
What you should see
You should see a line like: 'Server started on port 8081' or 'Listening on http://localhost:8081'. The terminal will stay open — that is normal, the server is running.
This might happen

Port 8081 is already in use and the server fails to start

Find what is using the port with: sudo lsof -i :8081 — then stop that process, or consult the LanguageTool docs to change the port.

03
Step 3 of 5

Test the server with a sample sentence

1 min

Open a second terminal window (leave the server running in the first). This command sends a sentence with a deliberate error to your local server and prints back the JSON response, which lists every grammar issue found.

Terminal · mac
$ curl -s --data 'language=en-US&text=This+are+a+test+sentence.' http://localhost:8081/v2/check
What you should see
A block of JSON text that includes a 'matches' section. You should see at least one match pointing out the 'This are' subject-verb agreement error, with a suggested correction.
This might happen

You get 'Connection refused' or no output

The server is not running yet. Go back to your first terminal and make sure the server started successfully before running this test.

04
Step 4 of 5

Install the browser extension to use it while you type

3 min

The most practical way to use your self-hosted server is through the official LanguageTool browser extension. After installing it, you point it at your local server instead of the cloud, so your text never leaves your machine.

Terminal · mac
$ echo 'Install the extension from: https://languagetool.org/services#browser Then in the extension settings, set the server URL to: http://localhost:8081/v2'
What you should see
The extension icon appears in your browser toolbar. When you type in any text box on any website, underlines appear for grammar and style issues.
This might happen

The extension shows 'Could not connect to server'

Make sure your local server is still running in the terminal. Also check that the URL in the extension settings is exactly: http://localhost:8081/v2 (no trailing slash, correct port).

05
Step 5 of 5

Keep the server running after you close the terminal (optional)

2 min

By default the server stops when you close the terminal. To keep it running in the background permanently, use this command. It runs the server as a background process and saves its log to a file called lt-server.log in your home folder.

Terminal · mac
$ nohup curl -L https://raw.githubusercontent.com/languagetool-org/languagetool/master/install.sh | sudo bash -s -- -c server > ~/lt-server.log 2>&1 &
What you should see
You get your terminal prompt back immediately. Check the log with: tail ~/lt-server.log — you should see the 'Server started' message after a few seconds.
This might happen

The server does not appear in the log after 30 seconds

Read the full log with: cat ~/lt-server.log — it will show any Java or permission errors. The most common cause is Java not being installed or being the wrong version (needs Java 17+).

// Status

cooked. baked. worked.

A grammar and style checking server running on your own machine at http://localhost:8081, usable from your browser via the LanguageTool extension, checking text in 25+ languages without sending data to any third-party cloud.

// the honest bit

The honest part

This guide uses the community install script, which works well on most Linux systems but can behave differently on macOS (especially Apple Silicon M1/M2 — see the README for Rosetta workarounds) and is not officially supported on Windows without WSL2. The free self-hosted version does not include the premium AI-powered suggestions that the paid cloud service offers. Large documents may be slow on machines with less than 4 GB of RAM. The server has no authentication by default — do not expose port 8081 to the public internet.