โš™๏ธ Technical Explainer

The 4-step loop that turns
dead build time into income.

Transparent, opt-in, open source. Here's exactly what happens inside your editor.

Four steps. Zero friction.

01

๐Ÿ“ฆ Install the extension

One click from the VS Code Marketplace โ€” or paste ext install devcut.devcut in the command palette. The extension is open source (MIT), zero telemetry beyond impression counting, and stores nothing on your local machine beyond a pseudonymous user ID.

02

โš™๏ธ Run your tasks normally

Build, test, install โ€” exactly as you do today. DevCut hooks into the VS Code Tasks API (onDidStartTask / onDidEndTask events). When a task runs for longer than 3 seconds, the extension makes a single HTTP call to fetch an ad line โ€” nothing is sent before that threshold. No background polling. No always-on connection.

03

๐Ÿ“ˆ Impressions = earnings

Every 30-second slot where an ad is visible is one impression. At the end of the slot, a lightweight POST records the impression ID and your pseudonymous user ID โ€” no task content, no code, no keystrokes, nothing personal. Clicks earn more: when you click an ad, a click event is recorded (again, just the ad ID and your user ID). Your running balance is visible in the Command Palette at any time via DevCut: Show Earnings.

04

๐Ÿ’ธ Withdraw to UPI

Set your UPI ID once in the extension settings (devcut.upiId). When your balance crosses โ‚น50, we trigger a Razorpay X payout automatically โ€” weekly. You get a GPay / PhonePe / Paytm notification within 48h. No bank forms. No SWIFT codes. No waiting 14 days.

Exactly what leaves your machine.

Nothing about your code, teammates, or projects ever leaves your editor. Here is the complete list.

Data Why it's needed Sent to server?
Pseudonymous user ID (random UUID, generated locally on first install) Associate impressions and earnings with your account without requiring an email or login Yes โ€” every request
Task event type (build / test / install โ€” derived from task name regex) Fetch the right ad category for the slot type Yes โ€” on task start
Impression duration (seconds the ad was visible) Validate the impression and calculate earnings Yes โ€” on task end
UPI ID (only if you set one) Route your payout to the right account Yes โ€” on payout trigger only
Code content, file names, or repo names โ€” Never
Keystrokes or editor activity โ€” Never
Team members, Git commits, or PR data โ€” Never
IP address (stored) โ€” Received but not logged
Zero-trust option: The entire server is open source. You can fork it, plug in your own Razorpay keys, and run a self-hosted instance. The extension accepts a custom server URL via devcut.backendUrl in settings.

For the curious

Does the extension slow down VS Code?

No. It only makes a single lightweight HTTP call when a task starts (to fetch the ad line) and another when it ends (to record the impression). No background polling, no analytics SDK, no always-on WebSocket.

Can I turn it off during focus time?

Yes. One command โ€” DevCut: Toggle โ€” or flip devcut.enabled to false in settings. Earnings pause instantly and resume when you re-enable. The status bar item disappears completely while disabled.

How does the second-price auction work?

At each impression, the server ranks all active bids for the matching slot type. The highest bidder wins and pays โ‚น0.01 above the second-highest bid โ€” never more than their stated max. This prevents advertisers from overpaying and encourages honest bidding.

What task types trigger a slot?

Any VS Code task that fires onDidStartTask and runs for >3 seconds. This includes npm run build, cargo build, jest, pytest, docker pull, npm install, and any custom task in your tasks.json. You can whitelist or blacklist specific task names in settings.

How are impressions verified?

The server issues a signed token with each ad fetch. The extension sends that token back when recording the impression, along with the measured slot duration. The server verifies the signature and rejects impressions that were never fetched or that arrive outside the valid time window.

Can I audit the payout math?

Yes โ€” the impression counter, earnings tally, and Razorpay payout trigger are all in the open-source server repo. You can also run DevCut: Show Earnings Breakdown in the Command Palette to see a per-day log of slots, impressions, clicks, and accrued balance.

Ready to try it?

Open VS Code, press โŒ˜P, paste the install command.

ext install devcut.devcut

Or join the early access list โ†’