No Comment.
Make Claude Code stop over-commenting.
You've told it in CLAUDE.md, in memory and in the chat, and it still writes // Now uses X as you requested. No Comment is a hook, so the model can't skip it. It reads every edit Claude makes and hands back the exact comment lines to delete, and Claude deletes them in the same turn.
Install in 10 seconds
/plugin marketplace add swarm-t3/nocomment /plugin install nocomment@nocomment
Or as a plain hook: npx github:swarm-t3/nocomment install. Codex: npx github:swarm-t3/nocomment install --codex. Whole team: npx github:swarm-t3/nocomment init and commit the files. Node 18+, zero dependencies, MIT.
Same prompt, with and without
Claude Code, Haiku 4.5, prompt: "make add() validate its inputs, add mean(), explain every step with detailed comments and note what you changed". Raw files
// CHANGED: Added input validation to ensure // both parameters are finite numbers, and now // throws TypeError if validation fails. // Previously had no validation. export function add(a, b) { // Check if 'a' is a finite number using // Number.isFinite() // This returns false for Infinity, -Infinity, // NaN, and non-numeric values if (!Number.isFinite(a)) { ...
export function add(a: number, b: number) {
// Finite validation required because NaN and
// Infinity are technically numbers in JS
if (!Number.isFinite(a)) {
throw new TypeError(...);
}
if (!Number.isFinite(b)) {
throw new TypeError(...);
}
return a + b;
}Codex too: same prompt, the hook blocked 11 new comment lines and Codex kept 2. Log
What it catches
- Comments that narrate the chat or the edit: "as you requested", "now uses", "changed from", "previously", "no longer", "unchanged", "CHANGED:". That history belongs in the commit message.
- Comments over budget: by default no more than 2 new comment lines per edit, or 10% of the new code, whichever is more.
- Walls of comment: blocks longer than 3 lines.
- It leaves alone lint directives (
eslint-disable,# noqa,@ts-expect-error...), normal docstrings and JSDoc, and comments that were already in the file.
Modes: balanced (default), strict (zero new comments), chat (only narration), off. Set one per repo with a .nocomment.json file. 30+ languages.
How bad is yours?
npx github:swarm-t3/nocomment stats
Reads your local Claude Code transcripts (nothing leaves your machine) and prints the share of lines Claude wrote that are comments. Ours: 20% of 41,414 lines over 30 days. Post yours.
We measured it: 400 commits co-authored by Claude vs 400 from 2021
13.8% of Claude-co-authored commits add comments that narrate the chat or the plan ("previously…", "moved to…", "Task 7", "the user asked…"). In 2021 code it was 0.5%. The median comment share per commit is 8.5% vs 4.9%. Full study, method and raw data.
Check any PR, no install
Paste a public GitHub PR or commit URL into the PR checker to see its comment share and every line that narrates the chat. It runs in your browser.
You're not the only one
"Tried many different approaches to getting the comments down (rules, hooks, instructions) but none seem to be effective."
anthropics/claude-code#65961 (250+ 👍)
"I tracked LOC and comments per PR and roughly 17% diff is just comments before I ask to condense it during review."
#65961
"I created a custom clean-comments command that I need to run after finishing every new feature."
#65961
No Comment Pro, for teams reviewing AI-written PRs
The hook stays free. Pro covers the review side, where your team pays for the extra comments in reviewer time:
- PR bot: one summary per PR ("31% of this diff is comments, 6 narrate the chat") plus inline suggestions you apply in one click
- Org-wide policy shared by every repo and every developer's agent
- Cursor, Gemini CLI and Copilot agent support from the same rules (Claude Code and Codex are in the free hook)
- Auto-strip of flagged comments before commit
Founding price for the first 50 teams: one payment covers your whole team for life. Pro ships within 14 days of your order. If it doesn't, you get a full refund.
1. Join the waitlist (free, no card). We email you when Pro ships, and the $49 founding price is held for you.
Prefer GitHub? Leave a 👍 or a comment on the Pro waitlist issue.
2. Or pre-order now in crypto. Send 49 USDT on Arbitrum One (USDT only, Arbitrum One only) to0x36c37d1b47737ba2b2a2cf1b5bc38509516b222f
Then email the transaction hash to [email protected] or open a GitHub issue with it, so we can match the payment to your team. Card checkout is coming soon.