LIVE loading

Your agent is thinking.
You're earning.

Claude Code compiles. Cursor plans. Copilot waits on a response. That dead time is real human attention — you are looking at the screen — and right now nobody pays you for it.

Hafta puts one quiet sponsored line in your editor and gives you 55% of what it earns. Paid over UPI, every week.

WITHOUT HAFTA
Thinking
Read · 0.5s
18 seconds of nothing
main*Python 3.12₹0.00
WITH HAFTA
Thinking
Grep · 4.0s
18 seconds, now worth something
main* ₹0.0000

One line. No popups, nothing that moves your code around. The ring is the actual billing rule: ten continuous seconds on screen, measured by our clock, or the advertiser is not charged and you are not paid.

Install

One command. Nothing patched.

Works with Claude Code through its own supported statusLine and spinnerVerbs settings. We write two config keys and nothing else, which is why their updates never break us.

ANY OS · REQUIRES VS CODE OR CURSOR
curl -L https://hafta.axonatetech.com/vsix -o hafta.vsix && code --install-extension hafta.vsix --force

The extension covers Windows, macOS and Linux in one command, which is why it leads. The shell installers are for people who do not run VS Code — each covers only its own platform.

No Node needed on Unix

There is a pure sh + curl client for servers and slim containers. Requiring a Node install just to print one line rules out most of them.

Nothing is patched

Two supported Claude Code config keys, and nothing else. Their updates never break us because we never touched their code.

Installing twice earns the same

Every client shares one billing lease. A machine bills one impression at a time — two windows are still one pair of eyes.

How it works

The server owns the clock.

Your editor asks for a slot, displays it, and reports what happened. What that was worth is decided here — never by the client.

We never read your code

Impression IDs, timings, and a coarse device ID. Not file names, not prompts, not one line of source. The client has no code that could send them.

We never interrupt you

One line, in space that already exists. No modals, no notifications, no layout shift. One toggle stops every network call.

We never sit on your money

Weekly UPI transfer once you cross ₹50. UPI makes small payouts economical — the reason others batch monthly and we do not.

Two placements

Each surface runs its own auction.

They clear at different prices because they are different inventory. Pooling them would make the premium placement subsidise the ambient one and price both wrong.

EDITOR · PREMIUM

In the status bar

Read directly, in the window being worked in. Links clickable everywhere.

main*   loading a creative
clearing ₹00 · 0 live
TERMINAL · AMBIENT

Above the shell prompt

High volume at a lower clearing price. Clickable where the terminal supports it.

loading a creative
$
clearing ₹00 · 0 live
Bid market

Every price on this network is public.

An advertiser can see exactly what it costs to lead. A developer can check that the CPM we quote is the CPM the ledger uses. Both are uncomfortable, and both are the point.

₹00
Market CPM
₹00
To lead
000
Billable / hr
0000
Attention sec · 24h
#BrandCampaignSurfaceCPM
loading the board

Live from the auction. Floor is ₹25 CPM — below that a developer's whole day is worth a few rupees, and inventory nobody runs is worth nothing to any advertiser.

Earnings

Real numbers, before you install anything.

No range invented for a landing page. Everything below is computed from campaigns serving right now, and moves when they do.

Campaigns on the network clear at ₹00–00 per thousand impressions, and 55% of that is yours. A slot rotates every 12 seconds.

UsageAt today's prices
Casual — 2 hours a day₹000
Full-time, agent-heavy — 8 hours a day₹000

Computed live, not typed into this page. If prices fall, this table falls with them.

Now the part those numbers do not show. They assume a slot is filled every time. Today it often will not be — the network is new, and an empty slot pays ₹0 however high the CPM is. Your real earnings are the table above multiplied by fill rate, and fill rate is the one number nobody can promise you.

55%
Your share
10s
Min view
₹50
Payout floor
7 days
Payout cycle
Compatibility

Where it runs today.

What is shipped and tested, not a roadmap dressed up as a feature list. A dash means that combination does not exist.

SurfaceClaude CodeVS CodeCursorOther CLI
Status baryesyesyes
Thinking verbyes
Shell promptyesyesyesyes
Clickable linksmost terminalsyesyesmost terminals

The thinking verb uses Claude Code's own spinnerVerbs setting. Link clicking depends on OSC 8 support, which varies by terminal.

On fake impressions

Bots will try. Here is exactly how we catch them.

The server owns the clock

It issues the settle token and stamps the time. Whatever a client claims is an upper bound to be checked against elapsed real time.

Real work is messy

Genuine installs produce dismissals, sub-threshold views, long idle gaps. A stream of flawless views around the clock is the clearest bot signal there is.

A human reviews flags

No auto-bans. A false positive costs an honest developer real money, so a person looks before anything is suspended.

For advertisers

Indian developers, at the moment they are waiting.

No tracking pixels, no retargeting profiles, no third-party cookies. An impression, a timer, and a click.

You pay for attention

An impression bills only if it stayed on screen past the threshold — measured against our clock, not a number the client sends.

Every rupee is traceable

Append-only ledger. Reversals are compensating entries, never edits. Reconcile any charge to a single impression ID.

Bids start at ₹25 CPM

Every live bid is on this page. You are never guessing what it costs to compete.

Why this exists

A note on the split.

For most of the internet's history the deal has been the same: you supply the attention, a platform keeps the money. Hafta is a small attempt to change the arithmetic rather than complain about it. You keep 55%.

We do not set the price — advertisers bid, and every bid is on this page. We do not decide what an impression is worth either: it is worth ten continuous seconds on your screen, or it is worth nothing.

Built in India, paid in rupees, over UPI, weekly. UPI is what makes small transfers economical, and that is the whole reason this can work here at all.