Charm and self-hosted LanguageTool both keep your text private, but they get there very differently. Self-hosting LanguageTool means running the open-source LanguageTool server on your own machine so your text is checked locally instead of in LanguageTool's cloud. It is free and genuinely private, but it takes technical setup, still needs a separate client to use, and gives no system-wide coverage of native Mac apps. Charm is a native Mac app that corrects spelling and grammar and predicts your next word across every app, on-device, with no setup, for a one-time $9.99.
What does self-hosted LanguageTool actually mean?
LanguageTool is an open-source grammar and style checker. Normally its browser extension and apps send text to LanguageTool's cloud API. Self-hosting means you run the LanguageTool HTTP server yourself - from a Java jar or a Docker image - so checks happen on your own machine and text never reaches their cloud.
The important detail is that the server is an API, not a user interface. On its own it does nothing you can see. For good-quality detections you also download the optional n-gram data, which is around 8 gigabytes for English, and give the server more memory. Then you keep it running as a background service and update it yourself over time.
Does self-hosting give you correction in every Mac app?
No, and this is the key limitation. Once your server is running, you still need a client pointed at it. The official browser extension can target your local server, but it only works inside the browser. Some editor and office plugins can target a custom server, but each covers just that one app. There is no self-hosted client that injects corrections across all native macOS apps like Mail, Notes, Slack, Messages, and Pages.
Charm covers every text field on your Mac. It uses the macOS Accessibility API together with a keyboard-event tap, so the same correction works in native apps, browsers, code editors, and Terminal. There is no server to run and no client to configure.
How much setup and maintenance does it take?
Self-hosting LanguageTool is realistically a developer or homelab task. You need Java or Docker, the server download, and ideally the multi-gigabyte n-gram data, plus enough RAM to give the process a 1 to 2 gigabyte heap. Then you keep a background process alive, pull updates to get new rules, and manage the disk and memory footprint. Someone comfortable with Docker can get a basic server up in a few minutes; a tuned setup with n-gram data and a working client is meaningfully more involved.
Charm installs like any Mac app. You grant one Accessibility permission and it runs. There is no server, no data download, and no ongoing maintenance.
| Feature | Charm | Self-hosted LanguageTool |
|---|---|---|
| On-device and private | Yes | Yes |
| Setup | Install and grant one permission | Java or Docker, server, multi-GB n-gram data |
| Works in every native Mac app | Yes | No - needs a client, browser-only in practice |
| Real-time correction as you type | Yes | Depends on client; not system-wide |
| Word prediction | Yes - Oracle | No |
| Languages | English-focused | 30+ languages |
| Ongoing maintenance | None | Background service, updates, RAM and disk |
| Pricing | $9.99 once | Free and open-source |
Cost and privacy
The self-hosted server is free and open-source, and it is genuinely private: text stays on your machine as long as the client is pointed at your local server rather than the cloud. That privacy is a real strength, and it is one Charm shares. Note that LanguageTool's premium AI-based rules are cloud-only and are not part of the free self-hosted build, so self-hosting gives you the core rule engine rather than the full premium feature set.
Charm is $9.99 once and also fully on-device, with no cloud path in the app at all. You pay a small one-time price and skip all the setup.
Where does self-hosted LanguageTool have the edge?
For the right person, self-hosted LanguageTool is a legitimately great option. It is free, open-source, and private, it supports more than 30 languages, and it has a mature, powerful rule engine that many people trust. If you are a developer or privacy enthusiast who is comfortable running a Docker container and wants full control of your own grammar API - or you want an in-house checker for a team or a browser fleet - self-hosting is a strong, defensible choice, and its multilingual coverage is well beyond Charm's English focus.
Frequently asked questions
What is self-hosted LanguageTool?
It means running LanguageTool's open-source grammar server on your own machine, from a Java jar or Docker image, so your text is checked locally instead of in LanguageTool's cloud. It is free and private, but the server is an API that needs a separate client to use.
Does self-hosted LanguageTool work in every Mac app?
No. The server needs a client pointed at it, and the main client is the browser extension, which is browser-only. No self-hosted client covers all native Mac apps like Mail, Notes, and Slack. Charm covers every text field on your Mac via the Accessibility API.
Is self-hosted LanguageTool hard to set up?
It is realistically a developer task. You need Java or Docker, the server download, and ideally around 8 gigabytes of n-gram data plus extra memory, then you run and update it as a background service. Charm installs like any Mac app and needs one Accessibility permission.
Is self-hosted LanguageTool private?
Yes. When you run the server locally and point a client at it, your text stays on your machine and does not reach LanguageTool's cloud. Charm shares this on-device privacy and adds it across every Mac app with no server to run.
Does self-hosted LanguageTool do word prediction?
No. LanguageTool detects and corrects errors in text you have written; it does not predict your next word. Charm includes Oracle, a word-prediction feature you accept with the Tab key, alongside its spelling and grammar correction.