Imagebacon
yes, it's an ad network. your prompts never leave your machine.

Get paid to code.

You're coding anyway. Bacon rides along, drops the occasional clearly-labeled ad next to a reply, and pays you 50%of the placement's base rate. Free to install, opt-in, and yours to throttle. Your prompt never leaves your machine — only a coarse intent signal does.

$npx @geturbacon/wizard@latest

guided setup · installs plugin + connects your account in ~30s

claude — ~/projects/app
>

Costs you nothing, asks for nothing. Set ad frequency to minimal anytime and watch your balance in real time from the dashboard.

// 01 · how it works, for devs

Install, code, get paid.

You're already running prompts all day. Bacon just lets a few of them earn — and you decide how few.

01

install

One command in Claude Code, then sign in to start earning. You stay anonymous to advertisers by default — they see only a coarse intent label.

02

code as usual

Once in a while, a labeled text ad shows up next to a reply. That's it. No popups, no autoplay, no tracking pixels.

03

get paid

You earn a share of every ad that fills. Cash out weekly via Stripe once you clear $10 — or ask Claude how much bacon you've made.

you set the dial

more ads = more earnings, but it's your call
100

heavy agentic sessions hit the high end fast

ad frequency
at this setting, you'd see about300labeled ads / month

Each one that fills pays you a share of its winning bid. We're not going to dangle a dollar figure — real pay depends on fill rate and demand, and most devs clear a few dollars a month (heavy users at full frequency, more). It's found money for work you were doing anyway, not a paycheck. Turn it down to minimal, or off, whenever.

// 02 · privacy & transparency

The part where we earn your trust.

An ad network you don't trust is spyware with extra steps. So here's the whole mechanism, no NDA required: what leaves your machine, what never does, and the dial you control.

what actually gets transmitted

you typed (stays local)

> the JWT refresh in auth.ts throws after the cookie expires, fix it for my Next.js app on Vercel

never transmitted

bacon receives (anonymous)

{ intent: "auth", os: "darwin", dep: "package.json", ext: ".ts" }

coarse signals + a derived label. never your prompt or code.

Consent tiers — you turn the dial

More context means more relevant ads, which means more earnings. You decide how far up the ladder to go. Every rung past zero is explicit and reversible.

0
anonymousdefault

sends → A coarse intent label only — e.g. auth, database, deploy.

keeps → Everything else. No identity sent to advertisers, no stack, no code.

1
stackopt-in

sends → Your languages & frameworks (TypeScript, Next.js…) for better-matched ads.

keeps → Identity, file contents, package names, prompts.

2
full contextopt-in

sends → Richer derived intent for the most relevant ads — and the most earnings.

keeps → Raw prompts. Always. They are never transmitted at any tier.

raw prompts never leave your machine

Intent is derived locally. We receive a label like “auth”, never the sentence you typed. Not at tier 0, not at tier 2.

every ad is labeled

No native ads, no disguised links, no “suggested by Claude.” If it’s an ad, it says ad. Every time.

anonymous by default

You create an account to earn, then by default you stay anonymous to advertisers — just a coarse intent label, never your identity. Higher consent tiers are opt-in and reversible.

leave anytime

Uninstall the plugin and the data stops, instantly. No retention games, no “contact us to delete.”

// 03 · the math

Where the money goes. All of it.

No dark-pattern accounting. Every filled impression is split the same way, every time — here's the whole formula.

advertiser pays

the bid

first-price auction, per filled impression

bacon keeps

the rest

infra, fraud detection, network costs

you keep (50%)

50%

of each placement's base rate

We quote a split, not a per-ad price, on purpose: winning bids move with demand and your profile, and unfilled slots pay nothing. So earnings track your usage — most devs make a few dollars a month, heavy users more. It's found money for coding you were doing anyway, not a paycheck.

your split

50%

of each placement's base rate. The network keeps the rest.

// 04 · ad formats

The ad is the product.

Five surfaces, least to most intrusive — spinner, statusline, strip, card, marquee — rendered exactly as the plugin prints them in your terminal. The spinner and statusline never touch the reply; the rest ride in context. Always labeled, always fake brands in the demo. Pick one and watch where it lands.

claude — ~/projects/app
>how do i add payments without a mess?
Use a payments API — a few lines to charge, one call to refund.
🥓 PayWave — payments in 4 lines, refunds in 1 Bacon $0.42 · $7.11
└─ the status bar · clickable · live · earnings: session · balance
surface: statusline·$3 CPM floor · ×0.4 bid · free to run·see pricing →

// every surface shares one constraint: the 🥓 Sponsored marker ships with the slot — no dark patterns, no bait-and-switch.

// 05 · for advertisers

Reach devs at the exact moment of intent.

Not "developers aged 25–34." Developers who are right now fighting an auth bug, picking a database, or shipping to prod — inside the tool they trust most. Targeting comes from real coding context, not cookies.

surfacefloor CPMunlocks at
spinner — brand flash in the thinking verb$1 CPMfree
statusline — clickable status-bar line · CPC$3 CPMfree
strip — single labeled line, in context$5 CPMfree
card — bordered block: logo, tagline, URL$8 CPM$100
marquee — prominent premium banner$12 CPM$100

// plus higher-intent context placements (inline mention $15, tool suggest $20 floors). Effective CPM = your bid × the surface multiplier, floored — never the raw bid.

Prepaid, not invoiced

Top up a wallet; it funds impressions directly. No monthly minimum, no plan — you spend what you fund.

First-price auction

Bid a CPM per campaign. Highest effective bid in the eligible pool wins the slot; you pay your bid.

Surfaces unlock by funding

Spinner, statusline, strip, and card run on any budget; $100 cumulative funding unlocks the premium surfaces. Effective CPM = your bid × the surface multiplier, never below its floor.

Intent targeting

Target real coding context — auth, database, deploy, payments — not cookies. Set a daily budget; pacing stops you at it.

Clean traffic

<5% invalid traffic via 4-layer detection + a 72h hold before payout. The developer keeps 50% of the surface's base rate.

Reach devs at the moment of intent

Prepay a wallet from $ 10, then launch campaigns — copy, targeting, surface, bid. No contracts, no minimums.

all surfaces & pricing
Fund your account

// 06 · faq

The questions you were already typing.