There are two fundamentally different ways to build a Claude Code ad extension. One uses the settings Anthropic explicitly exposes for this kind of customisation. The other modifies files that belong to Anthropic's own Claude Code extension so it behaves differently than Anthropic shipped it. We've covered how our own approach works before. This post is about the distinction itself โ what it means technically, and why it matters to you even if you never think about it.
| Documented settings | Patching the bundle |
|---|---|
Writes to a config file Anthropic tells you exists (spinnerVerbs, statusLine in ~/.claude/settings.json) | Modifies files inside Anthropic's own installed extension so its behavior differs from what was shipped |
| Anthropic can change the config format in a release note; your extension just stops customising until updated | Anthropic can ship any update at any time that silently breaks โ or is deliberately hardened against โ the patch |
| One clearly reversible action: delete the settings key | Requires re-patching after every Claude Code update, typically via a recurring auto-update mechanism |
| No changes to security policy of the official extension | Can require weakening the official extension's own Content Security Policy to keep functioning |
Both approaches can technically get an ad in front of you. Only one of them leaves Anthropic's own extension exactly as Anthropic shipped it.
WaitJI AI's poller writes to two settings Anthropic documents for exactly this kind of customisation: spinnerVerbs (the words that cycle while Claude Code thinks) and statusLine (a command Claude Code runs to populate the terminal status bar). We covered the mechanics in detail in our spinnerVerbs deep-dive. Nothing in that flow touches a single file inside Anthropic's Claude Code extension.
We're not asking you to take our word for the distinction mattering โ several independent write-ups have looked at how Kickbacks.ai, a competing Claude Code ad product, is actually implemented, and published what they found:
southsidechisolutions.com published a code-level review titled "Kickbacks.ai Is Adware With a Payout Page", reporting that the extension patches Anthropic's official Claude Code extension bundle and weakens its Content Security Policy, reapplied on an interval via an unsigned auto-updater.
go-to-agency.com's review, "Kickbacks.ai: is it legit? We read the extension code", covers the same auto-update mechanism and notes Anthropic has previously stated that ads are incompatible with its brand.
gridinsoft.com, a URL/file trust-scoring service, lists a trust score for kickbacks-ai reflecting some of these same findings.
We haven't independently re-verified every technical claim in those write-ups ourselves โ we're citing them, not repeating them as our own audit. What we can tell you with certainty is how our own extension works, because we wrote it: no file inside Anthropic's Claude Code extension is ever read, written, or patched, by us, at any point.
You don't have to trust a vendor's claim about which category their extension falls into โ you can check in a few minutes:
~/.vscode/extensions/ on macOS/Linux) and look at the file modification timestamps inside Anthropic's Claude Code extension folder. A timestamp newer than when you last updated Claude Code itself is worth investigating.spinnerVerbs) versus references to modifying, patching, or rewriting another extension's shipped files.fetchAds() and the bundled poller only ever call our own API and write to ~/.claude/settings.json. There's nothing else in the request path to audit.Install WaitJI AI and see exactly what it touches โ three minutes, fully reversible.
Install WaitJI AI โ