FAQ & Fraud Ground Rules
How earnings work, and the rules that keep every payout honest.
Last updated: July 2, 2026
Kickbacks pays real developers a share of ad revenue for the ad shown in their coding assistant's "thinking…" line. That only works if the impressions are real. This page explains how earnings are calculated and the ground rules our fraud systems enforce — so honest users always get paid and the people gaming the system never do.
- Which countries can get paid? (Stripe Connect supported countries)
- My country isn't supported (e.g. Indonesia) — what happens to my earnings?
- I installed it but no ads show / “incompatible (unknown)”
- Ads show but my earnings aren't going up
- Does it work in a plain terminal / without VS Code?
- Will it work in my editor (Cursor, OpenCode, …)?
- Is macOS supported?
- It keeps signing me out / sign-in fails
- My account is blocked — why do I still see ads?
- How do I fully uninstall it?
1. How do I earn?
Install the extension, sign in, and keep coding as normal. When your AI assistant (Claude Code and other supported assistants) is working, the "thinking…" verb is replaced by a short sponsored line. You accrue credit for the time that line is genuinely on screen. The current revenue split is an estimated 50% of the net ad revenue attributable to your impressions. You don't have to do anything differently — there is nothing to click, refresh, or run on a schedule.
Which editors and assistants are supported?
Officially supported today:
- The Claude Code extension for VS Code.
- The Claude Code CLI in the terminal, where the sponsored verb appears in the status line or spinner.
The Codex VS Code extension is also supported. OpenCode support is coming soon; Cursor is a maybe.
Sign in once and your earnings follow your account across every supported surface. We add more assistants over time.
2. What counts as a real impression?
An impression earns only when all of the following are true:
- The ad was actually visible on your screen for at least five seconds during a live wait-state.
- The wait-state came from a real, human-initiated coding request — not a script, bot, loop, or prompt run solely to spin the spinner.
- The extension is properly installed, signed in, and connected.
- You're within the applicable activity caps (see below).
- The activity isn't excluded by our fraud systems.
We apply per-user spacing rules and hourly/daily caps so that normal use is always covered and artificial bursts are not. We don't publish the exact cap values — they move with abuse patterns — but ordinary, genuine coding never comes close to them.
3. When do I get paid?
Earnings accrue to your balance and are paid out monthly via Stripe Connect once your balance is over the payout threshold (currently US $10) and you've completed Stripe onboarding (including any required tax forms). Balances are estimates until reconciled, and payouts can be held during a fraud review. See the Terms, §6 for the full payout mechanics.
Which countries can get paid? (Stripe Connect)
Stripe Connect is the only way we pay out. We do not offer payouts by crypto or stablecoins, PayPal, gift cards, wire, or any other method, and we won't unless we explicitly add it — see the Terms of Service, §6.5. Because every payout runs through Stripe Connect, you can be paid only if you're in a country where Stripe Connect supports accounts.
Stripe maintains that list and it can change, so the authoritative source is always stripe.com/global. As of this page's last update, the supported countries are:
- Australia
- Austria
- Belgium
- Brazil
- Bulgaria
- Canada
- Croatia
- Cyprus
- Czech Republic
- Denmark
- Estonia
- Finland
- France
- Germany
- Gibraltar
- Greece
- Hong Kong
- Hungary
- India
- Ireland
- Italy
- Japan
- Latvia
- Liechtenstein
- Lithuania
- Luxembourg
- Malaysia
- Malta
- Mexico
- Netherlands
- New Zealand
- Norway
- Poland
- Portugal
- Romania
- Singapore
- Slovakia
- Slovenia
- Spain
- Sweden
- Switzerland
- Thailand
- United Arab Emirates
- United Kingdom
- United States
Indonesia is in Stripe's “Preview” stage and is not yet available for payouts. Countries Stripe doesn't support at all — including Pakistan, Bangladesh, Nigeria, and Vietnam — can't be paid out to either.
What if my country isn't on the list (e.g. Indonesia)?
Your earnings are safe. You still earn normally and your balance keeps growing — we simply can't disburse it until Stripe Connect supports payouts in your country. Because we pay only through Stripe Connect, we can't substitute another method like crypto, PayPal, UPI, or gift cards (see Terms, §6.5). The moment Stripe adds your country, your accrued balance is ready to pay out. Your portal shows a notice if we detect you're in an unsupported region — that's inferred from your sign-in location, so if it's wrong just email us and we'll correct it.
Stripe onboarding shows the wrong country / only US banks / no IBAN
If you're in a supported country but Stripe's onboarding only offers US bank fields (routing and account number, no IBAN), the Connect account was started under the wrong country. A Stripe Connect account's country can't be changed after it's created, so the fix is to start over with the correct country selected at the very first step. If you're already stuck, email us to reset your payout setup and reconnect — your accrued earnings are unaffected.
4. Troubleshooting — ads, earnings & sign-in
The single most useful first step for almost anything below: open the command palette (Ctrl/Cmd + Shift + P) and run “Kickbacks: Diagnose”. It runs a self-check and tells you what Kickbacks found — whether it's signed in, whether it found a compatible Claude Code/Codex target to patch, and whether ads are being served. Most “it's not working” reports are answered in that one readout.
I don't see any ads in the spinner
Work through these in order — they're the usual causes, most common first:
- Is the Claude Code (or Codex) extension installed? Kickbacks works by patching the Claude Code VS Code extension — if that extension isn't installed there's nothing for it to patch, so you'll see no ads (and the status bar may read “incompatible (unknown)”). Install Claude Code first, then reload.
- Are you signed in? Run Kickbacks: Show status (or check the status-bar item). If it says signed out, run Kickbacks: Sign in. You'll see real sponsored lines even before signing in, but you only earn while signed in.
- Is Claude Code actually thinking? The ad only replaces the “thinking…” verb during a genuine wait-state. If a turn finishes instantly there's no spinner to sponsor.
- Is Kickbacks enabled? If the status bar reads “Kickbacks: Off”, click it and re-enable. After a VS Code or Claude Code update, run Kickbacks: Diagnose — a new editor version occasionally needs Kickbacks to re-apply its patch.
- Restart the window. A full reload of VS Code (or restarting your terminal session) clears most transient states.
If Diagnose reports it can't find a compatible target, Kickbacks is doing nothing on purpose — it never patches something it doesn't recognize, so it can't break your editor. See §5 for version requirements.
Status bar says “incompatible (unknown)”, or “Sign in” says “command not found”
This means Kickbacks half-loaded or can't find its target — not that your editor is broken. The usual fixes:
- Confirm the Claude Code (or Codex) VS Code extension is installed — Kickbacks patches it, so it has to be present.
- A Claude Code update can break compatibility. Reinstall the latest Kickbacks (Marketplace or kickbacks.ai/vsix), fully restart the editor, then run Kickbacks: Diagnose.
- Linux Flatpak/snap VS Code keeps extensions in a non-standard
path (e.g.
~/.var/app/…); if Diagnose can't find Claude Code there, symlink your real extensions directory into the expected location.
I'm coding but my earnings / event count isn't moving
First, this is usually a display lag, not lost money. A few things to know:
- Your portal balance can trail live serving by a few minutes. Reload your dashboard before assuming anything is stuck.
- Earnings are credited for charged five-second view-ticks, not for every flicker of the spinner — so the number moves in steps, not continuously. A counter that looks “frozen” for a short stretch of light usage is normal.
- If it's genuinely flat for a long active session, run Kickbacks: Diagnose to confirm you're signed in and ads are serving, then reload the dashboard. Still wrong after that? Email us your account email and we'll audit the ledger by hand.
How are my earnings counted? (and why the number can look small)
- You earn per ad you're shown — each counts as a five-second viewable impression. A single ad sitting on screen longer doesn't multiply; you accrue as new ads are served across your waits.
- Clicks are recorded for measurement and fraud screening, but they don't pay — all earnings come from viewable impressions.
- Only your own foreground waits count. Background sub-agent /
multi-agent waits, and sessions run under a custom
CLAUDE_CONFIG_DIRprofile (only the default~/.claudeis tracked), don't accrue. - There's no background earning — accrual pauses when your editor is closed.
I get a “no ads — please reload” popup
If you see this while you're reading code rather than actively prompting, it's almost always a false alarm — the ad system is fine and you're still earning; the check just fired during an idle stretch. It's safe to dismiss. If it persists during active coding, reload the window and run Kickbacks: Diagnose.
Ads stopped after I got my first payout
A payout doesn't change your earning status — your account keeps serving and accruing exactly as before. If ads stop around that time it's almost always unrelated and transient: update the extension to the latest version, reload the window, and confirm you're still signed in (and not showing an “Account blocked” indicator — see §9). If it sticks, contact support.
It keeps signing me out / asking me to re-authenticate
- Re-run Kickbacks: Sign in from the command palette. In the extension, sign-in is via Google; the website sign-in at /login also offers an emailed magic link.
- On Windows, the browser didn't open? Some setups don't auto-launch the sign-in page — copy the URL from the Kickbacks notification or output panel and paste it into your browser manually.
- The dashboard opened inside the editor (the webview) keeps its own session, separate from your normal browser. Signing in there once is expected; it isn't a bug.
- If you're bounced out repeatedly across restarts, send us your account email and roughly when it happens — that detail helps us pin it down fast.
The advertiser link in the spinner isn't clickable
Some terminals don't treat the sponsored line as a clickable link. You can always open the advertiser from the Kickbacks activity panel / your dashboard instead — the link is live there.
Running two editor windows at once
For the most reliable crediting, keep one signed-in window per account active at a time. Multiple windows on the same account can race on session state and occasionally drop credit or surface a spurious “no ads” popup. Real impressions to a real developer always count — this is just the safest setup while we harden concurrent-window handling.
“Prior activation didn't complete cleanly — skipping automatic patch”
This safety banner usually means a previous session (often a second editor window) didn't shut down cleanly, so Kickbacks skipped its automatic patch rather than act on an unstable state. Once your editor is stable, click the status-bar item to re-enable, or reload the window. Running a single signed-in window (above) avoids it.
5. Editors, CLIs & platforms
Compatibility matrix
Supported brands and surfaces
A dash means that brand does not have the matching surface type.
| Surface | Claude Code | Codex | OpenCode | Cursor |
|---|---|---|---|---|
| VS Code extension | ||||
| Terminal CLI | Soon | |||
| Desktop app | Maybe |
* Limited hyperlink support: some terminals show the sponsored line but do not make advertiser links clickable.
Kickbacks runs in two places — the editor panel and the terminal — across both Claude Code and Codex:
- VS Code — Claude Code panel. The spinner overlay. This is the primary, fully-supported surface.
- Claude Code terminal CLI. Supported. The status-bar line works on any Claude Code version; the sponsored spinner verb needs Claude Code 2.1.143 or newer. On older CLIs nothing breaks — you simply keep the stock verbs.
- Codex (VS Code panel and terminal CLI). Supported. In the Codex terminal the sponsored line shows as a startup banner, and terminal hyperlink behavior can vary.
Because the VS Code build is a standard extension, the same surfaces also load over Remote-SSH, WSL (install Claude Code and Kickbacks inside the WSL host via Remote-WSL — not on the Windows side), and in devcontainers. VS Code Insiders works too, but install it from the in-editor Extensions panel — the website's one-click link opens stable VS Code, not Insiders. If a remote/WSL/container setup shows nothing, confirm the extension is installed in that host (remote and local extension lists are separate), then run Kickbacks: Diagnose.
Where to install: the VS Code Marketplace or kickbacks.ai/vsix. It is not on Open VSX yet, so editors that pull from Open VSX (such as Cursor and VSCodium) can't find it in their built-in marketplace — that's why first-class OpenCode support is still coming soon, while Cursor support is still being evaluated.
Terminal-only setups: the VS Code extension is currently required even to earn from terminal Claude Code/Codex — it's the piece that reports impressions. A sponsored line may render in other standalone terminals (Warp, iTerm2, tmux, over SSH), but those don't earn yet, and there's no VS-Code-free installer.
KICKBACKS_CODEX=1 in your environment or creating the file
~/.kickbacks/codex.enabled, then reload. Kickbacks: Diagnose
shows your current detection and policy.
Is macOS supported?
Not officially yet. Kickbacks runs best today on Windows and Linux. On macOS some users hit repeated system Keychain prompts, because Kickbacks tries to store your sign-in token in the macOS keychain. We're actively working on first-class Mac support. In the meantime the extension still falls back to leaving your spinner unchanged, but expect rough edges — if the keychain prompts get noisy, signing out and back in, or reloading the window, usually settles them. If you're on a Mac and something's off, tell us — it helps us prioritize the fix.
6. Managing & uninstalling
You can manage or remove Kickbacks at three levels:
- Pause it. Click the Kickbacks item in the status bar and choose Disable Kickbacks. The spinner returns to normal and the bar reads “Kickbacks: Off” — click again to re-enable.
- Fully revert. Run Kickbacks: Restore Claude Code from the command palette. Every edit Kickbacks made is undone byte-for-byte, back to stock Claude Code.
- Uninstall. Run Kickbacks: Restore Claude Code first to revert the patch, then remove the extension from your editor's Extensions panel like any other.
Other handy commands (command palette → type “Kickbacks”): Sign in, Sign out, Show status, Menu, Edit Config, and Diagnose.
Can I use it on a work machine?
That's between you and your employer. If your company manages your dev environment, make sure you're allowed to install third-party extensions and run a sponsored line before you do. When in doubt, use a personal machine.
How do I delete my account and data?
Email support@kickbacks.ai from your account address and ask us to delete it. We'll close the account and erase your personal data. See §10 for exactly what we hold in the first place (it's deliberately very little, and never your raw code or prompts).
7. Fraud ground rules
These are the lines that, if crossed, make activity non-billable and can get an account blocked. They exist to protect the honest majority — every fake impression dilutes a real developer's share and overcharges an advertiser.
- One account per person. Creating or operating multiple earning accounts — alone or in coordination with others — is prohibited.
- Real usage only. No automated clicking, scripted prompts, bots, click farms, paid-to-click schemes, or any setup whose purpose is to manufacture impressions or clicks.
- No collusion or account networks. Pooling devices, machines, or identities to aggregate earnings is prohibited.
- No tampering. Don't modify, spoof, replay, or otherwise falsify the telemetry the extension reports.
- No circumvention. Don't try to evade caps, account limits, or other controls — including by rotating networks or devices.
These rules are part of your agreement with us. Under the Terms of Service, §9 (Fraud Prevention, Abuse & Enforcement) and §12 (Termination & Account Suspension), Kickbacks may withhold or void earnings, and suspend, restrict, or permanently bar any account, for violating these ground rules or otherwise breaching the Terms — including forfeiture of unpaid earnings tied to the abuse.
8. How fraud detection works
We run automated, continuously-tuned systems alongside human review. They look at the shape of activity, not the content of your work, and they catch coordinated abuse in both directions:
We enforce thresholds in both directions of the account ↔ network relationship:
- Many accounts behind one network. When more than a set number of distinct accounts earn from a single network fingerprint, that's treated as a farm.
- One account spread across many networks. When a single account earns from more than a set number of distinct networks — the signature of proxy or VPN rotation used to dodge the per-network rules — that's caught too.
We deliberately don't publish the exact thresholds, the windows they're measured over, or the other signals involved (timing patterns, device fan-out, account-creation bursts, and more). Honest use stays comfortably inside every limit; if you're a real developer coding normally — even from a laptop, a desktop, and the occasional coffee-shop Wi-Fi — you will never trip them. Established, long-standing accounts are given the benefit of the doubt and routed to a human rather than auto-actioned.
9. What happens if an account is flagged
Depending on confidence, our systems either flag an account for human review or block it automatically. A blocked account stops earning immediately, and credit accrued from the abusive activity is voided. Where money has already been paid out on fraudulent activity, we reserve the right to recover it. You'll see a clear "Account blocked" indicator in the extension if this happens. Full detail is in the Terms, §9.
10. What we collect (and never do)
We collect only what's needed to credit earnings, bill advertisers, and stop fraud: ad/event identifiers, on-screen visibility metrics, a per-install ID, extension/host versions, and — for signed-in users — an account ID. For abuse detection we process your IP address, but we store only a salted, one-way hash of it — never the raw IP. That hash is what lets us count "accounts per network" and "networks per account" without ever storing your actual address. Separately, when you open your earnings portal we do a quick, in-memory lookup of your IP's country (just the country, not a precise location) to check payout eligibility and show the notice described in §3 — that lookup happens on the spot and isn't stored.
By default we do not collect the content of your code, prompts, AI responses, files, or project contents, and the telemetry has no field capable of carrying them. If you opt into the optional data-sharing earn tier, we derive an abstracted interest signal from your coding session — filtered for secrets and personal data in our own systems — to match ads; we still never share your raw prompts, code, or files. See the Privacy Policy and Terms, §10.
11. Advertisers & refunds
Advertisers buy blocks of 1,000 five-second impressions and bid for placement priority. Because we aggressively exclude fraudulent traffic, you're billed for delivery to real developers. If our systems determine impressions weren't delivered as intended — or were tainted by fraud we caught after the fact — we can issue a credit or refund. Questions about a campaign's delivery? Email us and we'll send you a per-campaign delivery report.
12. Appeals & contact
If you believe your account was flagged in error, contact us — a human will review it. We weigh the evidence in good faith; established accounts in particular are reviewed by a person before any action sticks.
Email:
support@kickbacks.ai
More:
Terms of Service ·
Privacy Policy