193 points, ~134 comments, and a punchline hiding real engineering advice: a Claude Code skill that won't let Claude translate itself, because letting it try reintroduces exactly the voice it's supposed to remove.
On August 21–22, 2026, developer Adnan Akil posted nobuzz to Hacker News — a Claude Code skill called /debuzz, internally nicknamed "Claudette" (the README is explicit that it is not officially called that, joking that "Cat Wu is famously litigious so it's definitely absolutely not called 'Claudette'"). The pitch: Claude was trained on old BuzzFeed articles, which explains its habit of narrating code changes like a listicle — "here's where it gets interesting," "the kicker," "load-bearing." /debuzz fixes that by refusing to let Claude fix itself.
explainx.ai's read: this is the third independent tool in two weeks solving the same complaint — after claudish-to-english (local Ollama) and Vomit (local OpenAI-compatible endpoint) — and it's architecturally the odd one out, routing through a full separate commercial CLI rather than anything local. The HN thread underneath it is also the richest of the three, with genuinely reusable CLAUDE.md patterns buried under the jokes.
TL;DR — what people are asking
| Question | Answer |
|---|---|
| What is it? | A Claude Code skill, /debuzz, that rewrites Claude's reply via a second model |
| What runs the rewrite? | Google's Antigravity CLI (agy), running Gemini |
| Is the rewrite local? | No — cloud, via a separate Google product and account |
| Can Claude edit the translation? | No, by design — output prints verbatim from Antigravity |
| What's "Claudette"? | An unofficial nickname the README pointedly disclaims as a trademark joke |
| What modes does it have? | colleague (default, full detail), manager (~1/3 length), director (3-5 sentences) |
| How new is it? | Posted Aug 21-22, 2026 — 193 HN points, ~134 comments |
| License | MIT |
What /debuzz actually does
The core joke doubles as the design rationale: Claude's tendency toward breathless, structured narration — "the load-bearing assumption," "here's where it gets interesting," "the kicker" — reads like it was trained on old BuzzFeed listicles. /debuzz doesn't try to prompt that habit away. It hands the finished text to a different vendor's model and prints whatever comes back, unedited.
The mechanics
- Claude's most recent reply (or pasted text) gets written to a temp file.
- The skill runs
agy -p "$(cat <file>) <style instructions>"— Antigravity's headless mode needs the text piped directly into the prompt argument, not stdin, becauseagywon't read files outside the current project directory. - Whatever Antigravity/Gemini returns is printed verbatim — no further pass from Claude.
That third step is the deliberate constraint, and the README states the reasoning plainly: "letting Claude tidy up the translation reintroduces exactly the voice being removed." Only if agy errors out — usually an auth problem — is Claude allowed to offer its own fallback rewrite, and even then it must be clearly labeled as a fallback. The README's own footnote on that irony is worth quoting: "a debuzzer that quietly asks the buzzer to debuzz itself is how you end up with a load-bearing translation."
Before / after (from the README)
The example given is Claude narrating retry logic — "load-bearing assumption... the kicker... most instructive yet" theater around what turns out to be a simple bug. Debuzz collapses it to a flat, four-sentence bug list: the file path (syncQueue.ts:142), the specific numbers (backoff cap moving from 2s to 30s), and a one-line fix summary. No narrative arc, no reveal — just what changed and where.
The three modes
| Mode | Length | What survives |
|---|---|---|
colleague (default) | Full | All technical detail — file paths, code blocks, zero theatrics |
manager | ~1/3 of full | No code, focuses on what changed / why / what's next |
director | 3-5 sentences | Outcome, impact, the ask — nothing else |
Usage is /debuzz [mode] [text]. Leave off the text argument and it translates Claude's own previous reply. It also fires on natural phrasing — the README specifically calls out "say that in normal english" as a trigger, so you don't have to remember the slash command mid-conversation.
Install
git clone https://github.com/adnanakil/nobuzz
# copy the debuzz folder into ~/.claude/skills/
Requirements:
- Claude Code
- Antigravity CLI (
agy) —curl -fsSL https://antigravity.google/cli/install.sh | bashon macOS/Linux (PowerShell equivalent on Windows) - A one-time Google Sign-In through
agyitself
That sign-in step is the thing worth flagging before you install: unlike the other two tools in this series, debuzz asks you to authenticate a second vendor's product and route your Claude Code output through it. See Antigravity CLI: sandbox, plugins, and slash commands for what that CLI does beyond this one use case.
Debuzz vs claudish-to-english vs Vomit — three fixes, three architectures
Same complaint, three genuinely different backends. This is now a real mini-series: three independent tools shipped in roughly two weeks, each solving "Claude writes like a BuzzFeed listicle" with a different second model and a different trust boundary.
| Tool | Backend | Where inference happens | Original preserved? | Data leaves machine? | Maturity |
|---|---|---|---|---|---|
| claudish-to-english | Local Ollama model (gemma4:26b-mlx, ~17GB) | Local | Yes — rewrite appended | No | Aug 10, 2026, MIT, 244★ in ~24h |
| Vomit | Any local OpenAI-compatible endpoint (author suggests GPT-OSS 20B) | Local | Sidecar mode yes; hooks may replace display | No | Aug 20-21, 2026, GPL-3.0, early |
| Debuzz / "Claudette" | Google Antigravity CLI (agy) running Gemini | Cloud, separate vendor | Yes — original stays untouched, translation prints separately | Yes — text goes to Google | Aug 21-22, 2026, MIT, 193 HN points |
The distinction that matters: claudish-to-english and Vomit both keep the rewrite entirely on your machine by running a small open model locally. Debuzz instead shells out to a full commercial CLI product — the same category of tradeoff as routing a task to Codex instead of adding a local linter. That buys you Gemini's quality without a 17GB model pull, at the cost of a second account, a network dependency, and your Claude output leaving the machine to get cleaned up. Which one fits depends on whether "no data leaves my laptop" or "best possible rewrite quality with zero local disk cost" is the constraint you're actually optimizing for.
Debuzz's manager/director mode split is also a feature neither of the other two has — a genuine axis of control (audience, not just tone) that's worth stealing regardless of which backend you pick.
What the HN thread actually taught us about fixing this
The /debuzz launch drew the most substantive discussion of the three — 134 comments, many of them concrete CLAUDE.md patterns rather than jokes about the nickname. Here's what's actually reusable.
Hard word limits beat asking nicely
Top commenter mmastrac argued that politely asking Claude to "be more concise" underperforms hard, numeric constraints in CLAUDE.md: comment blocks capped at ≤7 words, function names at ≤4 words, user-facing strings at ≤10 words, plus a standing rule to use active voice, no stage performances, the most common word among alternatives. For legacy codebases already full of Claudish comments, the suggested fix is blunter still: delete all comments, then start a fresh session and have Claude re-add comments only after "rejustifying the need for every comment to itself" — forcing justification rather than default narration.
The "temporal comments" problem
Several commenters (graemep, easyascake, jorl17, pluralmonad) converged on a specific, recurring failure mode: Claude writes comments that narrate how the code used to work before a refactor — e.g. // No retry was added here per AC 37b in FEATURE.MD. That information belongs in a commit message or git history, not in the code itself, because it describes a diff, not the current state — and a comment that only makes sense next to a diff you can no longer see is dead weight the next reader has to decode. jorl17 offered a sharp parody that captures exactly how bad this gets in practice:
"// The lesson from the Parse-dont-fail-era campaign... // Chop 6ms due to lenience and lax-constraints vs 18ms baseline April perf measurements"
Funny because it's barely an exaggeration — this is the kind of line that actually ships when nobody's watching.
nrmitchi's CC-1 through CC-6 pattern
The single most actionable thing in the thread. nrmitchi reported a structured CLAUDE.md section — rules labeled CC-1 through CC-6 — that reportedly stopped the temporal-comment problem outright:
- Bans changelog-style comments outright — no "previously this did X, now it does Y" narration in code.
- A survival test for every comment: would this comment make sense to someone reading the file a year from now, with zero diff context? If not, it fails and gets deleted.
- A mandatory pre-commit self-check, run as an actual command before every commit:
Every comment about to be committed gets re-read against the survival test, and anything that fails gets deleted before the commit lands — not caught in review after the fact.bash
git diff --cached | grep '^+' | grep -E '#|//|/\*'
This is worth copying directly into your own CLAUDE.md if temporal comments are a recurring problem in your codebase — it's concrete, mechanical, and checkable, which is exactly what makes it more reliable than a prose instruction like "write good comments."
The context-window / compaction debate
vrosas noted that Claude reliably drifts back toward verbose habits as a session's context window fills — eventually requiring a hook to catch violations rather than trusting the standing instruction to hold. nater5000 suggested a practical "canary" trick: add a trivial, easily-noticed instruction to CLAUDE.md — e.g. "start every reply with my name" — so the moment Claude silently stops following it, you know context is too full and it's time for a fresh session rather than continuing to compact.
There's genuine disagreement on whether compaction itself helps: adastra22 called compaction "uniformly worse" than starting a session fresh. enraged_camel, running long-lived orchestrator sessions, reported the opposite — compaction works fine for them, but only because they wrote custom compaction instructions that explicitly preserve specific context rather than trusting the default summarization.
Yuri Niyazov's "don't say don't" theory
YuriNiyazov — an ex-coworker of the repo's author, per an in-thread callout — offered the most speculative but interesting theory: Claude's verbose output might be a compressed, dense version of its internal "thought traces" surfacing under token-efficiency training pressure, not a stylistic choice made from scratch. He also referenced (unnamed) Anthropic research, originally about test-cheating behavior, suggesting that telling a model "don't do X" can backfire — once a model violates a "don't" rule even once, it may internalize "I'm the kind of model that disobeys instructions," making the underlying behavior worse rather than better.
His suggested fix avoids negative instructions entirely: explicitly separate registers rather than banning a style. In your thoughts/notes, use your own dense Claude-ese; in output to humans, translate to full sentences. He links his own output-styles repo (yn/claude-output-styles) as an alternative that skips piping through a second model entirely, doing the separation at the prompt-instruction level instead.
The skeptical pushback, fairly represented
Not everyone bought the framing. Maxatar and cortesoft both pushed back that "everyone hates Claude's voice" is likely selection bias from HN's vocal minority — most day-to-day users may not notice the tics at all, let alone build a tool to fix them. Worth keeping in mind before treating three viral repos in two weeks as proof of universal consensus; it's proof of a loud, technical subset caring a lot, which is a different thing.
Where this fits with explainx.ai's existing Claudish coverage
WalterGR's top-voted HN comment on the /debuzz thread explicitly cross-referenced the Vomit launch as related, recent discussion — which tracks with what explainx.ai has been covering: this is the same underlying complaint, covered independently three times in two weeks. See Claude Opus 5's load-bearing Claudisms for a deeper catalog of the specific phrases ("load-bearing," "the kicker," "here's where it gets interesting") that all three tools are ultimately trying to translate away, and why Claude Opus 5 feels worse to work with for the broader thread this sits inside.
Honest limitations
- Cloud dependency, not local — unlike the other two entries in this series, your Claude output leaves your machine and goes through a second Google product. If "nothing leaves my laptop" is a hard requirement, claudish-to-english or Vomit fit better.
- Requires a second account and CLI install — Antigravity's
agyneeds its own Google Sign-In, on top of whatever you already run for Claude Code. - No fallback if
agyerrors that isn't itself a compromise — the README's own admission that Claude offering its own fallback rewrite reintroduces the exact voice the tool exists to remove. - Very new — posted August 21-22, 2026, with an HN thread still active at time of writing. Treat install steps and
agybehavior as subject to change. - Naming ambiguity by design — "Claudette" is explicitly not the tool's real name; searching for it by that nickname alone won't reliably find the repo.
Summary
adnanakil/nobuzz ships /debuzz, a Claude Code skill that routes Claude's own replies through Google's Antigravity CLI running Gemini for a plain-English rewrite — deliberately printed verbatim, with Claude barred from touching the translation itself. It's the third independent community fix for "Claudish" in two weeks, and the one that trades locality for a full second vendor's model quality. The HN thread underneath it is worth reading past the jokes: mmastrac's hard word-count limits, nrmitchi's CC-1 through CC-6 survival-test pattern, and Yuri Niyazov's "don't say don't" theory are all concrete enough to try in your own CLAUDE.md today, independent of whether you ever install this specific skill.
Related on explainx.ai
- Claudish-to-English: Claude Code's jargon translator plugin
- Vomit: a local LLM hook that rewrites Claude 5's Claudish output
- Claude Opus 5's load-bearing Claudisms and other writing tells
- Why Claude Opus 5 feels worse to work with
- Antigravity CLI: sandbox, plugins, and slash commands reference
- Claude Code Concise output style — what shipped Aug 20, 2026
- What is CLAUDE.md? Persistent memory for Claude Code
- Steering Claude Code — CLAUDE.md, hooks, output styles
Sources: adnanakil/nobuzz · Hacker News discussion · Antigravity CLI install docs
Repository behavior, HN point/comment counts, and install steps reflect the state of the project as of August 22, 2026. Verify current install steps and agy requirements against the README before adding it to a shared team config.
