By rapita
Background English grammar coach. A single async UserPromptSubmit hook runs the check while your prompt submits, then writes up to 3 corrections to /tmp/grammar-<session>.txt for your statusline tool to render. Never enters the model's conversation context.
Background English grammar coach for Claude Code, packaged as a native plugin. Runs on every prompt you submit, finds up to 3 grammar issues (ordered A1 → C1+ by CEFR level), and shows them in your statusline — never in Claude's context.
Claude Code-native: a single UserPromptSubmit hook, plain bash, no third-party services. The bundled /claude-grammar:setup command wires it into your statusline (ccstatusline, native statusLine, or a custom script).
Type a message with errors, hit enter — your prompt submits immediately. ~1–2 seconds later, the corrections appear in your statusline as a tree:
EN(2)
├ i has → I have
└ he go → he goes
Originals are colored red, fixes green; the badge and tree glyphs are dim. Suggestions go from lower to higher CEFR level (A1 → C1+). When your message is fine, the statusline stays clean.
Corrections are written for you, not for Claude. They live in a per-session file under /tmp/, never enter the model's context window, and won't influence its next response.
claude plugin marketplace add rapita/claude-grammar
claude plugin install claude-grammar@rapita-claude-grammar
Then run the setup command in Claude Code:
/claude-grammar:setup
It copies the statusline widget into ~/.claude/grammar-status.sh and wires it into whatever statusline you already use. Re-run any time — it's idempotent and creates timestamped backups before any write.
Restart Claude Code, and the next message you submit will be checked.
jq (brew install jq / apt install jq)statusLine for youA claude -p call with Haiku fires on every prompt that passes the gates (non-empty, doesn't start with /, ≥10 chars). A few hundred input tokens and ~50 output tokens per check — negligible on the Pro/Team plans.
/claude-grammar:setup again. It'll detect what's missing and either fix it or print exact instructions. If it reports everything is wired, restart Claude Code.Not logged in · Please run /login → the hook uses the same auth as your shell claude. If something is stripping Claude's environment, restore it.claude plugin disable claude-grammar@rapita-claude-grammar (re-enable with enable).MIT. See CONTRIBUTING.md for design rationale, source install, tests, and everything else you'd touch when hacking on the plugin.
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
npx claudepluginhub rapita/claude-grammar --plugin claude-grammarMulti-model consensus engine integrating OpenAI Codex CLI, Gemini CLI, and Claude CLI for collaborative code review and problem-solving.
Easily create hooks to prevent unwanted behaviors by analyzing conversation patterns
Harness-native ECC operator layer - 67 agents, 271 skills, 92 legacy command shims, reusable hooks, rules, selective install profiles, and production-ready workflows for Claude Code, Codex, OpenCode, Cursor, and related agent harnesses
Complete collection of battle-tested Claude Code configs from an Anthropic hackathon winner - agents, skills, hooks, and rules evolved over 10+ months of intensive daily use
Complete AI coding workflow system. Self-correcting memory + persistent FTS5-indexed research wikis + auto-research loop + multi-LLM council on a single SQLite store. 33 skills, 8 agents, 22 commands, 37 hook scripts across 24 events. Cross-agent via SkillKit.