Repository navigation
Releases
Releases · jaklimoff/claude-grammar
v1.6.0
- Cowork tasks in the desktop app load the plugin but draw nothing from it, so no prompt was checked there (#3, thanks @ArnauMontagud). Now a Cowork prompt waits for its check, a second or two, and when it has mistakes Claude ends its reply with them: the fixes line and the native-speaker line as plain text. A clean prompt, another language or a failed check adds nothing; 3 failures in a row pause the checks.
- A Cowork task is told by no surface plus a
CLAUDE_CODE_ENTRYPOINTthat names Cowork, soclaude -pand the SDK still send nothing. - A
coworksetting (on by default) turns it off. Nothing from Cowork is kept in the history.
v1.5.0
/grammar ask [period] <question>: ask Sonnet anything about your English. One call with the question, the period's grouped fixes and this session's latest fixes; examples are drawn like a review's. No minimum of kept fixes. Falls back to yourmodelsetting when Sonnet isn't allowed or available, like the review.- Follow-ups: the session remembers the last 5 asks and reviews and sends them with each ask. The line under each answer says what was remembered.
/grammar ask listshows it,/grammar ask clearforgets it, and/grammar ask memory on|off(theask_memorysetting, on by default) switches it. A review says when an ask can follow up on it. - The review and the ask share one model call with the fallback.
v1.4.0
- A prompt with no mistakes gets a green check before it. From 3 clean prompts in a row, a line under it says how many (
3 in a row). A fix or a native-speaker line starts the count over; a failed check or another language leaves it as it is. The count is for the session. - In the desktop app the band shows
✓ No mistakes(and the count) for a clean prompt instead of going blank. Withdesktopset tolineit is a transcript line, withtoasta short toast;bandadds no transcript line for it. - A
cleansetting (on by default) turns it off.
v1.3.0
- The desktop app doesn't draw the line under the prompt, so a check's fixes never showed there. Now the newest check shows in color in a band above the prompt box, drawn like the line under the prompt in the terminal, but with plain icons and one row per fix. A small Hide button hides it until the next check finishes; a clean check shows nothing.
- Each check there also adds a dim line to the transcript, as the record of past checks. A failed check says why.
- A
desktopsetting:band(the default: the band plus the transcript line),linefor the transcript line alone,toastto show the fixes briefly as a toast instead, oroff. The terminal is unchanged.
v1.2.0
- Your mistakes over time. Each fix is kept in
grammar-history.jsonin your Claude Code folder, labeled with the kind of mistake (article, preposition, tense, ...). The history holds 90 days and up to 2000 fixes. Fixes that look like code or paths aren't kept, and neither are prompts or the native-speaker line. The first session that keeps fixes starts with a notice naming the file, once. A file cut short while it is written keeps the lines that still parse, the day counts first. /grammar statsand/grammar reviewtake a period:7d,30dorsince 2026-10-01; the trend compares it with the stretch before it of the same length./grammar stats: mistakes by kind, the fixes you repeat, and the share of prompts with a fix in the last 30 days against the 30 before. No model call./grammar review: a summary card (the period's prompts, share with a fix, trend, top kinds as bars, most repeated fix), then one Sonnet call's 3 to 5 habits to work on, with your own fixes as examples drawn like the fixes under a prompt. It needs 20 fixes in the period and falls back to yourmodelsetting when Sonnet isn't allowed or the API says it isn't available.tools/import-history.tsfills the history from the prompts in your past transcripts:--days N, the same days as the periodNd(default 7, up to 90), and--dry-run. It runs throughclaude -p --safe-modeon your own login, about 20 prompts per call, and never imports a day twice./grammar history on|off|clear, ahistorysetting, and"history": falsein a project'sgrammar.jsonto keep nothing from that project.- The check asks the model for each fix's kind while the history is on: 82 more input tokens per check (602 instead of 520 for a clean prompt, measured).
- PRIVACY.md and the README say what is kept on disk and what the review sends.
- The README opens with an animated tour of every feature (fixes, the native-speaker line, stats, review, ignore and settings, import) in light and dark, in place of the demo GIF.
docs/tour.htmlis its source anddocs/render-tour.tsrecords it; the VHS tape is gone.
v1.1.0
- Settings under
/config: model, effort, spelling (any, US, UK), minimum words, maximum characters, plain icons, and whether to show the reason for each fix. The two/grammarswitches are settings now; 1.0's saved switches move over on the first start. - Ignore and skip lists in
~/.claude/grammar.jsonand a project's.claude/grammar.json, plus/grammar ignore add|rm|list. - Checks pause after 3 failures in a row (a blocked model, an outage) instead of failing on every prompt;
/grammar onresumes. - Fixes for words the prompt doesn't contain are dropped.
- A prompt no longer shows the fixes of a shorter prompt it starts with.
- Long prompts are cut at a word boundary. The model no longer repeats the whole sentence for each fix, which leaves room in the reply and saves output tokens.
/grammar helplists the commands and shows what is on now;/grammarwith an unknown word prints the same list instead of toggling.- The privacy note says pasted text is sent too.