@boringspinner/cli
v0.1.3
Published
BoringSpinner CLI wrapper — run `bs wrap` instead of `claude` and a single sponsored line appears in the spinner while the model works; your share of each validated view is credited to your account. No editor extension, no changes to your Claude install.
Readme
@boringspinner/cli
A wrapper command for the Claude CLI. Run boringspinner wrap (or bs wrap)
instead of claude, and while Claude is thinking, BoringSpinner places one
sponsored line in the spinner row for a few seconds and credits your account
a 50% share of the auction price for each validated view. No editor extension
required, and your Claude install is never modified.
⠋ Sponsored · Linear — issue tracking built for speed https://linear.appInstall
Three ways — pick one:
1. Global (npm)
npm install -g @boringspinner/cli
boringspinner login
boringspinner wrap # wraps `claude`2. No install (npx)
npx @boringspinner/cli login
npx @boringspinner/cli wrap -- claude3. VS Code / Cursor extension (if you'd rather not wrap your terminal): https://marketplace.visualstudio.com/items?itemName=boringspinner.boringspinner
Commands
| Command | What it does |
|---|---|
| boringspinner login | Sign in with Google (opens your browser; token saved to ~/.coads/auth.json). |
| boringspinner logout | Delete the saved token. |
| boringspinner wrap [-- <cmd>] | Run <cmd> (default claude) and show ads in its spinner. bs is an alias. |
| boringspinner status | Show sign-in + today/lifetime earnings. |
| boringspinner uninstall | Clear local state (~/.coads) and remove the global command. Nothing to "restore" — the CLI never patches your files. |
boringspinner wrap # = boringspinner wrap claude
boringspinner wrap -- claude --resume
bs wrap -- npm run dev # any long-running CLI with a Claude-style spinnerHow it works
- Runs your command in a PTY and passes everything through unchanged.
- Detects Claude Code's spinner line (the braille/sparkle glyph + "… esc to interrupt").
- At most once per minute per session, fetches one ad and shows it on the spinner line for ~5s, then records a billable impression.
- Billing is on the
claude-cli-spinnersurface; you earn a 50% split, subject to the per-account fraud caps ($20/day). Clicking the ad's link (a terminal hyperlink) credits a click.
Privacy
BoringSpinner reads none of your code, prompts, conversations, files, or screen. It only sees its own child process's spinner line (to know when to show an ad), and sends ad telemetry (which ad, view time) + basic host info (OS, editor) to bill the impression. See https://boringspinner.com.
Config
BORINGSPINNER_API overrides the backend (default https://api.boringspinner.com) —
e.g. BORINGSPINNER_API=http://localhost:8787 for local development.
BORINGSPINNER_WINDOW_MS overrides the 5s ad window.
