whoburnedmore 0.9.23 → 0.9.25

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (4) hide show
  1. package/README.md +102 -67
  2. package/dist/index.js +6025 -5848
  3. package/package.json +11 -8
  4. package/LICENSE +0 -21
package/README.md CHANGED
@@ -1,98 +1,133 @@
1
1
  # whoburnedmore
2
2
 
3
- > Find out who burned more — submit your AI coding-agent token usage to the public
4
- > leaderboard at [whoburnedmore.com](https://whoburnedmore.com).
3
+ **who burned more tokens — you or them?** One command reads your local AI coding-agent usage logs, adds up your burn, and puts you on the public leaderboard with a **shareable dashboard**.
4
+
5
+ [![npm version](https://img.shields.io/npm/v/whoburnedmore.svg?color=f97316)](https://www.npmjs.com/package/whoburnedmore)
6
+ [![npm downloads](https://img.shields.io/npm/dm/whoburnedmore.svg?color=f97316)](https://www.npmjs.com/package/whoburnedmore)
7
+ [![license](https://img.shields.io/npm/l/whoburnedmore.svg?color=f97316)](https://www.npmjs.com/package/whoburnedmore)
8
+ [![node](https://img.shields.io/node/v/whoburnedmore.svg?color=3c873a)](https://nodejs.org)
5
9
 
6
10
  ```bash
7
11
  npx whoburnedmore
8
12
  ```
9
13
 
10
- **This is the real, production CLI** — the exact code published to npm and run on users'
11
- machines. This repository is a public, always-in-sync mirror of it.
14
+ That's the whole thing. No install, no config. Your **first run signs you in** — the CLI opens a page, you approve a short code, and this machine is bound to your account.
12
15
 
13
- ## What it does
16
+ ---
14
17
 
15
- `whoburnedmore` reads your local AI coding-agent usage (Claude Code, Codex, Gemini CLI,
16
- Copilot, Cursor and more, via [ccusage](https://github.com/ryoppippi/ccusage)), adds up
17
- the tokens and estimated cost, and **submits your daily totals to the whoburnedmore.com
18
- server** so you land on the public leaderboard and get a shareable dashboard.
18
+ ## What you'll see
19
19
 
20
- Your **first run signs you in** — the CLI opens a page and you approve a short code — then
21
- binds this machine to your account so your usage lands on the leaderboard under your handle.
22
- (Prefer to stay fully offline? `--local` never signs in and never uploads.)
20
+ ```text
21
+ whoburnedmore · https://whoburnedmore.com
23
22
 
24
- ### What leaves your machine
23
+ 🔥 your burn report
25
24
 
26
- Only **daily aggregate numbers** — date, tool, model, token counts, and estimated cost
27
- (plus optional per-session / per-tool rollups). **Never** your prompts, your code, file
28
- contents, or file paths. Run `private` to drop off the board, `remove` to delete your
29
- dashboard and its data, or use `--local` to stay fully offline.
25
+ claude 2.26B tokens $2,640.07 19 days
26
+ codex 58.2M tokens $16.85 5 days
27
+ ──────────────────────────────────────────────
28
+ total 2.31B tokens $2,656.91
29
+ today 92.8M tokens
30
30
 
31
- > Want a 100%-local report that makes **no** network calls at all? Use `npx whoburnedmore
32
- > --local`, which builds an HTML dashboard on your machine and uploads nothing.
31
+ You burned 2.31B tokens. Your dashboard:
32
+ https://whoburnedmore.com/u/<your-handle>
33
33
 
34
- ## Commands
34
+ Re-run anytime to update it. Background sync keeps it fresh every 15 min.
35
+ ```
36
+
37
+ Once you're signed in, your usage lands on the leaderboard under your handle. Run the command again anytime to refresh — or let the background sync do it for you.
38
+
39
+ **Want to stay off the board?** Run `npx whoburnedmore private` to hide your dashboard, or `npx whoburnedmore --local` to never upload anything at all.
40
+
41
+ ## Privacy first
42
+
43
+ Only **daily aggregate numbers** ever leave your machine — date, tool, model, token counts, and estimated cost. **Never your prompts, your code, or your file names.**
44
+
45
+ See exactly what would be sent, and send nothing:
35
46
 
47
+ ```bash
48
+ npx whoburnedmore --dry-run
36
49
  ```
37
- npx whoburnedmore sign in, submit, land on the leaderboard, open your dashboard
38
- npx whoburnedmore --board=CODE compare with friends — sign in and join their board
39
- npx whoburnedmore --org=SLUG submit to your organization's board (companies/hackathons)
40
- npx whoburnedmore --local build the dashboard locally and open it (offline, no upload)
41
- npx whoburnedmore --dry-run print exactly what would be sent, send nothing
42
- npx whoburnedmore --no-submit collect locally, send nothing
43
- npx whoburnedmore link --token=TOKEN bind a server/VM to your account (token from your profile)
44
- npx whoburnedmore daemon keep syncing in the foreground (containers with no scheduler)
45
- npx whoburnedmore private hide your dashboard from the leaderboard
46
- npx whoburnedmore public put it back
47
- npx whoburnedmore remove delete your dashboard and its data
48
- npx whoburnedmore verify delisted? re-verify your usage to get back on
49
- npx whoburnedmore status check background-sync health (last sync, staleness)
50
- npx whoburnedmore install-sync turn on 15-minute background sync
51
- npx whoburnedmore uninstall-sync turn off the background sync
50
+
51
+ Or stay completely offline — `--local` builds the same dashboard as a self-contained HTML file on your machine and opens it in your browser, sending nothing anywhere and never signing you in:
52
+
53
+ ```bash
54
+ npx whoburnedmore --local
52
55
  ```
53
56
 
54
- After your first run, a background sync keeps your page fresh automatically
55
- every 15 minutes (`uninstall-sync` to stop). The installed background job runs
56
- the exact CLI version that installed it, with npm lifecycle scripts disabled.
57
- Run an updated CLI in the foreground to repair the job and advance its version;
58
- background jobs do not automatically download a newer release. The server endpoint is
59
- overridable with `WHOBURNEDMORE_API`.
57
+ ## Commands
58
+
59
+ | Command | What it does |
60
+ | --- | --- |
61
+ | `npx whoburnedmore` | Sign in, submit your burn, land on the leaderboard, open your dashboard |
62
+ | `npx whoburnedmore --board=CODE` | Compare with friends — sign in and join their board |
63
+ | `npx whoburnedmore --org=SLUG` | Submit to your organization's board (companies / hackathons) |
64
+ | `npx whoburnedmore --local` | Build the dashboard locally and open it (fully offline, no sign-in) |
65
+ | `npx whoburnedmore --dry-run` | Print exactly what would be sent, send nothing |
66
+ | `npx whoburnedmore --no-submit` | Print local stats only, send nothing |
67
+ | `npx whoburnedmore private` | Hide your dashboard from the leaderboard |
68
+ | `npx whoburnedmore public` | Put it back on the leaderboard |
69
+ | `npx whoburnedmore remove` | Delete your dashboard and all its data |
70
+ | `npx whoburnedmore verify` | Delisted? Re-verify your usage to get back on |
71
+ | `npx whoburnedmore link --token=TOKEN` | Bind a server / VM to your account (token from your profile) |
72
+ | `npx whoburnedmore daemon` | Keep syncing in the foreground (containers with no scheduler) |
73
+ | `npx whoburnedmore status` | Check background-sync health (last sync, staleness) |
74
+ | `npx whoburnedmore install-sync` | Turn the 15-minute background sync back on |
75
+ | `npx whoburnedmore uninstall-sync` | Turn the background sync off |
76
+
77
+ ## Supported tools
60
78
 
61
- On Windows, sync runs while you are signed in using a windowless Windows Script
62
- Host launcher. It keeps your normal user/network access and writes output and exit
63
- codes to `~/.config/whoburnedmore/sync.log` (or `WHOBURNEDMORE_CONFIG_DIR/sync.log`).
64
- The log rotates to `sync.log.1` after 256 KiB. Windows Script Host and Windows
65
- PowerShell must be available; managed machines may restrict them.
79
+ Usage is read via [`ccusage`](https://www.npmjs.com/package/ccusage) from any of these agents you use locally:
66
80
 
67
- To repair an older Windows task that opens a console, run `whoburnedmore install-sync`
68
- from an updated installation. `whoburnedmore status` reports stale definitions and
69
- the last successful upload. If a run still fails, inspect `sync.log` or run
70
- `whoburnedmore sync` in a terminal. A task result of `1` alone does not identify
71
- whether npm, collection, authentication, or an upload failed. Setting the task's
72
- `Hidden` property only hides it in Task Scheduler; changing its logon type to S4U
73
- can restrict network/encrypted-file access and is not the windowless-sync fix.
74
- Tasks explicitly disabled in Task Scheduler stay disabled during automatic repair;
75
- `install-sync` explicitly enables them again.
81
+ `claude` · `codex` · `gemini` · `copilot` · `opencode` · `amp` · `droid` · `goose` · `kimi` · `qwen` · `kilo` · `openclaw` · `hermes` · `pi` · `codebuff`
76
82
 
77
- ## Privacy & transparency
83
+ On top of those, the CLI reads a few agents that `ccusage` can't see, straight from their own local logs:
78
84
 
79
- This repository exists so you can read exactly what the CLI does before you run it. It
80
- contains no secrets and no server code — just the client that talks to the public API.
85
+ `cursor` · `cline` · `roo` · `continue`
81
86
 
82
- ## menubar-app/
87
+ Claude Code uses a native deduplicating reader. Codex totals come from the pinned replay-aware `ccusage` reader so forked/subagent rollouts do not repeat their parent history; the native Codex scan is diagnostics-only and fails closed. Whatever logs you have are picked up automatically — you don't pass any flags.
83
88
 
84
- [`menubar-app/`](./menubar-app/) is the source for **BurnBar**, a native macOS menu bar
85
- app that shows live token burn and remaining usage limits across your AI coding tools. See
86
- [`menubar-app/README.md`](./menubar-app/README.md) for its architecture and build steps.
89
+ **Google Antigravity** is detected but **can't be counted**: it stores no readable local usage (its conversation logs are encrypted and it bills flat-rate, so there are no per-request token counts on disk to tally). `npx whoburnedmore doctor` will tell you when it's detected.
87
90
 
88
- ## Build
91
+ ## Compete with friends and teams
92
+
93
+ - **Friends:** join someone's board with `npx whoburnedmore --board=CODE` (the code comes from their board's invite).
94
+ - **Companies / hackathons:** submit to an organization board with `npx whoburnedmore --org=SLUG` (add `--pass=CODE` if the org requires a join code).
95
+
96
+ Your submissions link to your handle at `whoburnedmore.com/u/<handle>`. You can delete your account and every row of data anytime from your profile.
97
+
98
+ ## Keep it live
99
+
100
+ Background sync is on by default after your first run, so your dashboard stays fresh without re-running by hand. To manage it:
89
101
 
90
102
  ```bash
91
- npm install
92
- npm run build # bundles src/index.ts -> dist/index.js
93
- npm test
103
+ npx whoburnedmore status # last sync + staleness
104
+ npx whoburnedmore uninstall-sync # turn the background sync off
105
+ npx whoburnedmore install-sync # turn it back on (launchd / cron / scheduled task)
94
106
  ```
95
107
 
108
+ The installed background job runs the latest published `whoburnedmore` package on
109
+ each sync tick, so future CLI fixes are picked up automatically after the next
110
+ 15-minute refresh.
111
+
112
+ ## Servers & VMs
113
+
114
+ Generate a one-time `link` command from your profile on whoburnedmore.com and run it inside the machine to bind it to your account:
115
+
116
+ ```bash
117
+ npx whoburnedmore link --token=TOKEN
118
+ ```
119
+
120
+ On a persistent VM, background sync uses cron or a systemd user timer automatically. In a container or any host without a scheduler, run `npx whoburnedmore daemon` under your process manager instead. Set `WHOBURNEDMORE_CONFIG_DIR` to a persistent path so the machine identity survives restarts.
121
+
122
+ ## Links
123
+
124
+ - 🏆 Leaderboard — **[whoburnedmore.com](https://whoburnedmore.com)**
125
+ - 📊 Your dashboard — printed in the terminal after your first run
126
+
127
+ ## Requirements
128
+
129
+ Node.js >= 20.
130
+
96
131
  ## License
97
132
 
98
- MIT
133
+ MIT © Arham Wani