A checker for text you select or paste is quick to build: send it to LanguageTool or a language model and show suggestions with accept buttons. The weekend goes on being there where you write, underlining inside any text box in a browser without lag, coping with rich editors and keeping positions correct while you type. Google Docs, Word and phone keyboards stay out of reach. For English prose in a browser, an extension wired to your own LanguageTool server plus a rewrite command gets most of the value for the cost of a small server.
Before you buildGrammarly Free already catches spelling and grammar and shows tone. If that is all you use, you may not need to build anything.
Build me a personal writing checker to replace Grammarly. Requirements: - One repo, TypeScript throughout: a local server (Fastify, port 4700) and a Chrome extension (Manifest V3, built with Vite and `@crxjs/vite-plugin`). - Checker: the server forwards text to a LanguageTool server at LT_URL (default http://localhost:8010, started by `docker compose up` from the included compose file) and returns matches with offsets, message and suggested replacements. Detect the language automatically and fall back to English. - Rewrite: POST /rewrite takes text and a mode (fix, shorten, friendlier, more formal) and calls an OpenAI-compatible endpoint set in .env (LLM_BASE_URL, LLM_MODEL, LLM_API_KEY; Ollama works). Return only the rewritten text and refuse inputs over 6,000 characters. - Extension: a content script finds the focused textarea, input or contenteditable element, sends its text after 800 ms of silence and draws underlines in an overlay positioned over the field. Clicking an underline opens a popover with the message and the replacements; applying one edits the field and dispatches an `input` event. - Selection toolbar: highlight text, choose a rewrite mode, preview the result, press Replace. - Settings page: server URL, ignored sites, a personal dictionary kept in chrome.storage.local and a pause switch. - No accounts, no telemetry. Text goes only to your own server and from there to the LLM endpoint you configure. The server binds to 127.0.0.1. - Out of scope: Google Docs and Office, mobile keyboards, plagiarism and AI-text detection. - README: loading the unpacked extension, starting LanguageTool, and a list of sites where the overlay misplaces underlines.
Opens your agent with the prompt filled in, you press enter. Or copy it and paste it into an empty folder.
The first prompt builds the core. Run these one at a time in the same folder to grow it into your own Grammarly.
Add personal style rules to the writing checker in this folder. Requirements: - A rules.yaml file with entries of pattern (regex), message, optional replacement and severity (hint or warning). - The server runs the rules next to LanguageTool and merges both result lists, with offsets sorted and overlaps removed. - Rules reload when the file changes, with no restart. - Ship 10 sample rules (weak intensifiers, hedging, doubled spaces). - Update the README with the rule format.
Add a command-line mode to the writing checker in this folder. Requirements: - `npx check-writing <path...>` accepts files or folders and reads .md and .txt files. - Strip Markdown syntax and code blocks before sending the text, then map offsets back to line and column in the original file. - Print `file:line:col message (replacement)` per match, grouped by file, and exit with code 1 when anything was found. - A `--rewrite fix` flag prints the corrected text to stdout without changing the file. - Update the README.
Add a tone readout to the writing checker in this folder. Requirements: - A "Check tone" button in the selection toolbar sends the text to the configured LLM with a prompt that returns JSON: up to 3 tone labels (for example confident, formal, apologetic), one sentence on why, and the single sentence most responsible for the tone. - Validate the JSON before showing it and fall back to a plain message when it is malformed. - Highlight the flagged sentence in the field overlay. - Cache results by text hash for 10 minutes. - Update the README.
It sits in every place people write, in the browser, desktop apps and Office, under one account, so text gets corrected with no copy-paste step. Teams add style guides and tone rules, and employers accept it as a vetted tool.
Estimate · LanguageTool and a local model run for free on your machine; a hosted model costs a few cents a day at personal volume. The build is token usage on your agent plan.
| Plan | Monthly | Annual, per month | What you get |
|---|---|---|---|
| Free | $0/user | $0/user | Spelling and grammar checks, tone detection, 100 AI prompts a month. |
| Pro | $30 | $12 | Full-sentence rewrites, tone adjustment, plagiarism and AI-text detection, unlimited personalized suggestions, 2,000 AI prompts per member a month, one style guide and brand tone, snippets, team analytics; up to 149 seats. |
| Enterprise | custom | — | Unlimited prompts, SAML SSO, SCIM, bring-your-own-key encryption, data loss prevention, audit logs API, unlimited style guides. |
Free: spelling and grammar checks and a tone readout, with 100 AI prompts a month.
Kinda. The core is a weekend build with the prompt on this page, but real gaps remain: Checking inside Google Docs, Word, Outlook and phone keyboards, Underlines that stay accurate and fast across every site and editor.
About $30 a month on the Pro plan per seat, $360 a year (checked 2026-10-14).
Checking inside Google Docs, Word, Outlook and phone keyboards; Underlines that stay accurate and fast across every site and editor; Plagiarism and AI-text detection; Team style guides, brand tones and shared snippets; A vendor your employer has already reviewed, with a SOC 2 Type 2 report. If any of those matter to you, keep paying.
Yes: LanguageTool (open source), Harper (open source), Writing Tools (open source).