โš™๏ธ Technical

Why WaitJI AI Doesn't Patch Your Editor

๐Ÿ‘ค Rajamuddin, CTO at QivaLabs ๐Ÿ“… September 4, 2026 โฑ 7 min read

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.

The two approaches, concretely

Documented settingsPatching 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 updatedAnthropic can ship any update at any time that silently breaks โ€” or is deliberately hardened against โ€” the patch
One clearly reversible action: delete the settings keyRequires re-patching after every Claude Code update, typically via a recurring auto-update mechanism
No changes to security policy of the official extensionCan 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.

What we actually do

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.

What independent reviewers found when they checked a competitor

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.

How to check any extension yourself

You don't have to trust a vendor's claim about which category their extension falls into โ€” you can check in a few minutes:

๐Ÿ’ก If you'd rather not do this yourself: our extension source is what ships โ€” 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.

Try the documented-settings version

Install WaitJI AI and see exactly what it touches โ€” three minutes, fully reversible.

Install WaitJI AI โ†’
R

Rajamuddin

CTO & Co-founder at QivaLabs LLP. Built the WaitJI AI backend, VS Code extension, and poller daemon from Udaipur, Rajasthan.

Related reading
The spinnerVerbs API: How WaitJI AI Works โ†’ How We Built Fraud Detection โ€” Without ML โ†’