Open-source Grammarly alternative: grammar and spell checking, tone rewrite, paraphrasing, and AI text generation — local-first on your Mac or Windows PC. Works in Gmail, Google Docs, LinkedIn, Slack, and most text fields on the web.
Privacy-first writing assistant — drafts stay on your machine by default (Ollama + LanguageTool). Optional Groq/OpenAI for faster rewrite and generate.
Chrome extension (public): Install Thoth from the Chrome Web Store
Find this repo: search GitHub for grammar checker chrome extension, local grammarly alternative, ollama writing assistant, text humanizer open source, or offline AI writing tool.
Follow the guide for your computer. Each guide is written as simple numbered steps.
| Platform | Full step-by-step guide | Download |
|---|---|---|
| Chrome extension | Chrome Web Store | Add to Chrome |
| Windows | Install on Windows | Start Thoth.bat tray app or Releases |
| macOS | Install on Mac | Thoth.app |
Mac users: download Thoth-macOS.zip from the latest release, drag Thoth.app into Applications, and open it once. No Terminal required.
Step 1: Download these apps
- Chrome
- Python 3.10+ (check Add python.exe to PATH)
- Ollama (open it once after install)
- Java 11+
Step 2: Download Thoth
- Open https://github.com/Eshan-khan1/Thoth
- Click Code, then Download ZIP
- Unzip the folder (example:
C:\Users\YourName\Thoth)
Step 3: Paste this into Command Prompt
Open Command Prompt, go into the Thoth folder, then paste:
scripts\install.batIf needed (Ollama is open):
scripts\setup_models.batStep 4: Start the server
Double-click Start Thoth.bat, or paste:
start_server.batKeep that window open.
Recommended: Install from the Chrome Web Store (click Add to Chrome).
Or double-click Start Thoth.bat for the tray app (like Mac Thoth.app), then install the extension from the link above.
Or load unpacked (developers):
- Go to
chrome://extensions - Turn on Developer mode
- Click Load unpacked
- Select the
extensionfolder
More detail: docs/INSTALL_WINDOWS.md
Step 1: Download these apps
- Chrome
- Python 3.10+ (or
brew install python) - Ollama (open it once after install)
- Java 11+ (Adoptium or
brew install openjdk@17)
Step 2: Download Thoth.app
Open the latest GitHub release and download the Mac app:
- Download
Thoth-macOS.zipfrom Assets - Unzip the file
Step 3: Install the app (no Terminal)
- Drag Thoth.app into Applications
- Open it once (if macOS blocks it: right-click → Open → Open)
- Look for the Thoth diamond icon in the menu bar (top-right) — there is no Dock icon
- It quietly starts the server and sets itself to reopen after login or restart
Step 4: Install the Chrome extension
Install Thoth from the Chrome Web Store (click Add to Chrome). Keep Thoth.app running so the local server stays online.
Developers only — load unpacked:
- In Thoth, use Connect Chrome Extension… (or follow the one-time setup sheet)
- Open Chrome →
chrome://extensions - Turn on Developer mode
- Click Load unpacked
- Select the folder the app opened/copied (usually
~/Library/Application Support/Thoth/ChromeExtension)
More detail: docs/INSTALL_MAC.md
Open http://127.0.0.1:8000/health
You should see "ok": true.
- Type in any text box to see underlines on mistakes
- Select text to use Rewrite or Generate
- Click the Thoth toolbar icon for Settings
Thoth is an open-source Grammarly alternative — a local grammar checker and AI writing assistant with a Chrome extension for real-time spell check, punctuation fixes, tone rewrite, paraphrasing, and content generation.
It runs a small API server on your computer (localhost) and pairs it with a browser extension that works on Gmail, Google Docs, search bars, and most editable fields on the web.
| Feature | What it does |
|---|---|
| Grammar & spelling | Pink underlines on mistakes; click to accept a fix |
| Auto-fix | Optionally correct all issues as you type |
| Rewrite | Select text → change tone (friendly, formal, simpler, etc.) |
| Generate | Turn short notes into emails, messages, or essays |
| Humanize | Make AI-generated text sound more natural (local Ollama pipeline) |
Everything can run fully offline with local Ollama models. Cloud AI (Groq / OpenAI) is optional for faster rewrite and generate.
| Thoth | Typical cloud writing tools | |
|---|---|---|
| Where text is processed | Your machine (127.0.0.1) |
Vendor cloud servers |
| Offline grammar check | Yes (LanguageTool + Java) | Usually requires internet |
| Local LLM rewrite | Ollama (thoth-writing) |
Subscription cloud models |
| Chrome extension | Gmail, Docs, LinkedIn, Slack, etc. | Similar coverage |
| Account required | No | Often yes |
| Open source | Yes — inspect and fork | Closed source |
Good fit if you search for: grammar checker chrome extension, spell checker browser extension, local AI writing assistant, Ollama grammar tool, privacy-first Grammarly alternative, text humanizer offline, or open-source paraphrasing tool.
Thoth is two parts that talk over localhost:
┌─────────────────────────────────────────────────────────────────┐
│ Chrome (any website) │
│ ┌───────────────────────────────────────────────────────────┐ │
│ │ extension/content.js │ │
│ │ • Mirrors text fields, draws grammar underlines │ │
│ │ • Rewrite / Generate UI on text selection │ │
│ └───────────────────────────┬───────────────────────────────┘ │
│ │ chrome.runtime.sendMessage │
│ ┌───────────────────────────▼───────────────────────────────┐ │
│ │ extension/background.js → fetch(127.0.0.1:8000) │ │
│ └───────────────────────────────────────────────────────────┘ │
└──────────────────────────────┬──────────────────────────────────┘
│ HTTP (localhost only)
┌──────────────────────────────▼──────────────────────────────────┐
│ server.py (FastAPI + uvicorn, port 8000) │
│ ┌─────────────┐ ┌──────────────┐ ┌─────────────────────────┐ │
│ │ LanguageTool│ │ Ollama │ │ writing_agent.py │ │
│ │ (Java) │ │ :11434 │ │ prompts + hard filters │ │
│ │ grammar │ │ local LLMs │ │ rewrite / generate │ │
│ └─────────────┘ └──────────────┘ └─────────────────────────┘ │
│ Optional: cloud_ai.py → Groq / OpenAI (keys from extension only) │
└───────────────────────────────────────────────────────────────────┘
- You type in a text field (Gmail compose, Docs, etc.).
content.jsdebounces input and sends text toPOST /grammar.- The server runs LanguageTool (and optionally a local grammar model).
- Matches return as offsets; the extension draws underlines on mistakes.
- Click an underline → suggestion card → accept replaces the text in-place.
- Select text → floating ↗ button → pick Rewrite.
- Enter a tone (e.g. “more formal”) →
POST /rewrite. writing_agent.pybuilds a prompt, calls Ollama or cloud AI, applies hard filters (no extra greetings, same length, etc.).- Selection is replaced with the rewritten text.
- Select seed text → Generate icon
- Chooses format (email / essay), optional one-time note
- Settings from popup: length, tone, complexity, profile (auto-applied every time)
POST /generateexpands the note using saved defaults from the extension popup
Full Generate rules: docs/GENERATE_RULES.md
Thoth/
├── extension/ # Chrome extension (Manifest V3)
├── macos/ # Thoth.app launcher + menu-bar helpers
├── server.py # FastAPI app — all HTTP endpoints
├── writing_agent.py # Rewrite/Generate prompts & filters
├── thoth.py # Standalone humanization library
├── ui.json # Active Uber-dark UI tokens
├── Start Thoth.command/.bat # Double-click launchers
├── scripts/
│ ├── build_macos_app.sh # Build dist/Thoth.app
│ ├── setup_models.sh/.bat # Register thoth-grammar / thoth-writing
│ └── create_release.sh # Publish Mac app to GitHub Releases
└── docs/
├── INSTALL_MAC.md
├── INSTALL_WINDOWS.md
└── PROJECT.md
Base URL: http://127.0.0.1:8000
| Method | Path | Purpose |
|---|---|---|
GET |
/health |
Server + dependency check |
POST |
/grammar |
Full grammar check |
POST |
/grammar/quick |
Fast path for typing |
POST |
/humanize |
Legacy humanize endpoint |
POST |
/rewrite |
Tone/style rewrite |
POST |
/generate |
Expand notes to email/essay/etc. |
Optional header when auth is enabled:
Authorization: Bearer <THOTH_API_TOKEN>
Rewrite/Generate bodies may include optional cloud AI:
{
"text": "...",
"tone": "friendly",
"ai": { "provider": "groq", "apiKey": "..." }
}Keys are sent from the extension to your local server only; they are not stored server-side.
- Check writing while I type — grammar on/off
- Fix all mistakes automatically — auto-apply corrections
- Rewrite in search bars — enable rewrite on search inputs
- AI & API keys — Local Ollama, Groq, or OpenAI
- Generate — profile fields, length, tone, complexity, permanent note
| Variable | Effect |
|---|---|
THOTH_REQUIRE_AUTH=1 |
Require Bearer token on all requests |
THOTH_API_TOKEN |
Token value (auto-generated if unset) |
THOTH_DEBUG=1 |
Verbose server errors |
Example:
THOTH_REQUIRE_AUTH=1 ./start_server.shPaste the printed token into the extension → Settings → AI & API keys → Local server token.
./scripts/install.sh # once
./start_server.sh # terminal 1
# Chrome extension: https://chromewebstore.google.com/detail/begfbbjincimcjcimpfpkoilbhjphppn?utm_source=item-share-cb
# Developers: load unpacked from extension/
# Optional: ./scripts/dev_chrome.sh (macOS test profile)./scripts/create_release.shWith the server running:
# benchmark_tests.json defines rewrite/generate cases
python scripts/benchmark_rewrite.py # if presentscripts/finetune_grammar_lora.py— MLX LoRA for grammar modelprepare_data.py— training pair preparationrequirements-finetune.txt— extra training deps
Thoth expects these Ollama models (created by scripts/setup_models.sh):
| Model | Used for |
|---|---|
thoth-grammar |
Optional grammar assistance |
thoth-writing |
Rewrite & Generate (local) |
If local Modelfiles exist under models/, setup uses them. Otherwise setup pulls small Qwen2.5 bases from Ollama Hub.
Model weights are not committed to git (too large). Each user downloads via Ollama.
Active UI tokens are in ui.json (Uber-inspired dark theme used by the extension and Mac settings).
- Near-black surfaces (
#000/#141414) with white primary actions - Green / gold accents for status and highlights
- Legacy Claude-style palette kept in
Thoth ui theme.jsonfor reference
See docs/PRIVACY.md and docs/POLICY.md. In Thoth.app: Settings → Privacy & Policy.
- Default: text is processed on your machine via localhost.
- Grammar uses LanguageTool locally (Java).
- Rewrite/Generate use local Ollama unless you opt into Groq/OpenAI in settings.
- API keys and profile fields live in Chrome local storage on your device and are only sent to
127.0.0.1:8000. - No Thoth account, telemetry, or central server.
- The popup asks for consent before the extension reads text in page fields.
| Problem | Solution |
|---|---|
| Server offline in popup | Run start_server.bat (Windows) or ./start_server.sh (Mac); check /health |
| No underlines | Enable “Check writing while I type”; ensure Java is installed |
| Rewrite/Generate error | Start Ollama; run scripts\setup_models.bat or ./scripts/setup_models.sh |
thoth-grammar missing |
ollama list then setup_models script for your OS |
| Extension not updating | chrome://extensions → Reload |
| Port 8000 in use | Starter scripts free the port; or close the other process |
Windows: python not found |
Reinstall Python with Add to PATH, open a new terminal |
Contributions are welcome.
- Fork the repo
- Create a branch (
git checkout -b feature/my-change) - Commit with a clear message
- Open a Pull Request on GitHub
Ideas for contributors:
- More language support
- Additional Generate formats
- Benchmark coverage
Open source — use, study, and modify on your own machine. See the repository for license details.
- Repository: https://github.com/Eshan-khan1/Thoth
- Chrome Web Store (extension): https://chromewebstore.google.com/detail/begfbbjincimcjcimpfpkoilbhjphppn?utm_source=item-share-cb
- Download Mac app: https://github.com/Eshan-khan1/Thoth/releases/latest
- Releases: https://github.com/Eshan-khan1/Thoth/releases
- Issues: https://github.com/Eshan-khan1/Thoth/issues
grammar-checker · chrome-extension · writing-assistant · grammarly-alternative · ollama · local-ai · humanizer · spell-checker · language-tool · fastapi · open-source · privacy · ai-writing · text-rewriter · offline-ai