Skip to content

Install

Each of these pays you 60% of what the slot clears. There is no token to copy. Run the client, a browser opens, you press one button, and it connects itself. If you are already signed in that is a single click.

Browser extension

Chrome, Edge, Brave, Arc

Shows one sponsored line while a web AI chat is generating. Works on ChatGPT, Claude, Gemini and Perplexity.

1
Download and unzip

Grab openspinner-extension.zip and unzip it anywhere you will not delete by accident — Chrome loads it from that folder every launch.

2
Load it

Open chrome://extensions, turn on Developer mode (top right), then Load unpacked and pick the unzipped folder.

3
Connect your account

The settings page opens by itself. Paste your device token, leave the ad server as it is, and press Save. Chrome will ask for access to the ad server — approve it, or the extension cannot fetch anything.

4
Turn on the sites you use

One button, one Chrome prompt. This is the only step you ever repeat, and only if you add a site later.

The slot is drawn in an isolated container over the page. Nothing on the page is moved, hidden, restyled or read.

Nothing to open or start after that — the slot appears on its own while a model is working. There is also a side panel surface, opened from the toolbar icon or Ctrl+Shift+S, which needs no site access at all.

Terminal

Claude Code

One line in the Claude Code status bar, using its documented statusLine setting. No patching, no extension, and no ad blocker can touch it.

1
Download and unzip

Grab openspinner-cli.zip and unzip it anywhere. It is a plain Node script with no dependencies — nothing is installed globally.

2
Run it from that folder
node openspinner.mjs install

It prints a short code, opens your browser at the approval page and waits. Approve it and the install finishes on its own — nothing to paste. It backs up ~/.claude/settings.json before touching it, and refuses to write at all if that file will not parse.

On a machine with no browser — a box over SSH — the code is printed too, so you can approve it from your phone at /link.

node openspinner.mjs status
balance and today’s earnings
node openspinner.mjs doctor
checks every link in the chain when nothing shows
node openspinner.mjs uninstall
restores your previous status line exactly

There is deliberately no npx openspinner. We have not published that name to npm, and telling you to run a package we do not control would hand whoever registers it first a way onto your machine. Run the file you downloaded.

Try it against a sandbox first if you would rather not touch your real config: OPENSPINNER_HOME=/tmp/sandbox node openspinner.mjs install

VS Code

build it yourself for now

A status bar line, drawn with the editor’s own StatusBarItem API. Not on the Marketplace yet, so you package it locally.

cd clients/vscode
npx @vscode/vsce package
code --install-extension openspinner-vscode-0.1.0.vsix

Then run OpenSpinner: Connect account from the command palette. Your token goes into VS Code’s SecretStorage, not settings.json — a bearer token that syncs across machines is a bearer token that ends up committed.

It knows whether the editor actually has focus, so an editor sitting behind a browser earns nothing. Honest — and better than the terminal client, which can only infer that.

JetBrains

not built

No plugin exists. If you find one calling itself OpenSpinner, it is not ours.

It is buildable — JetBrains has a status bar widget equivalent to VS Code’s — but it means a Kotlin plugin and a separate toolchain, so it is waiting on someone actually asking for it.

What we will not build, on any editor, is an injection into another extension’s webview. That is what got the product this one is modelled on removed from the VS Code Marketplace, and the Content Security Policy it relaxed stayed relaxed after uninstall.

Before you install anything

An ad has to be on screen for 5 seconds before anyone is billed, and dwell stops accruing the moment the tab is hidden, the window is idle or the slot is covered. Short answers pay nothing at all.

Which is to say: you are paid for attention that actually happened, not for uptime. The calculator gives you a real number before you spend five minutes on it.