whoburnedmore 0.9.20 → 0.9.22

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/LICENSE +21 -0
  2. package/README.md +52 -104
  3. package/dist/index.js +6678 -6049
  4. package/package.json +7 -10
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 whoburnedmore
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,133 +1,81 @@
1
1
  # whoburnedmore
2
2
 
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)
3
+ > Find out who burned more — submit your AI coding-agent token usage to the public
4
+ > leaderboard at [whoburnedmore.com](https://whoburnedmore.com).
9
5
 
10
6
  ```bash
11
7
  npx whoburnedmore
12
8
  ```
13
9
 
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.
15
-
16
- ---
17
-
18
- ## What you'll see
19
-
20
- ```text
21
- whoburnedmore · https://whoburnedmore.com
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.
22
12
 
23
- 🔥 your burn report
13
+ ## What it does
24
14
 
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
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.
30
19
 
31
- You burned 2.31B tokens. Your dashboard:
32
- https://whoburnedmore.com/u/<your-handle>
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.)
33
23
 
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.
24
+ ### What leaves your machine
38
25
 
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.
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.
40
30
 
41
- ## Privacy first
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.
42
33
 
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:
34
+ ## Commands
46
35
 
47
- ```bash
48
- npx whoburnedmore --dry-run
49
36
  ```
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
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
55
52
  ```
56
53
 
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
78
-
79
- Usage is read via [`ccusage`](https://www.npmjs.com/package/ccusage) from any of these agents you use locally:
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 latest published `whoburnedmore` package on each sync tick, so future CLI
57
+ fixes are picked up automatically after the next refresh. The server endpoint is
58
+ overridable with `WHOBURNEDMORE_API`.
80
59
 
81
- `claude` · `codex` · `gemini` · `copilot` · `opencode` · `amp` · `droid` · `goose` · `kimi` · `qwen` · `kilo` · `openclaw` · `hermes` · `pi` · `codebuff`
60
+ ## Privacy & transparency
82
61
 
83
- On top of those, the CLI reads a few agents that `ccusage` can't see, straight from their own local logs:
62
+ This repository exists so you can read exactly what the CLI does before you run it. It
63
+ contains no secrets and no server code — just the client that talks to the public API.
84
64
 
85
- `cursor` · `cline` · `roo` · `continue`
65
+ ## menubar-app/
86
66
 
87
- (Claude Code and Codex are also read natively for a more accurate count.) Whatever you have logs for is picked up automatically you don't pass any flags.
67
+ [`menubar-app/`](./menubar-app/) is the source for **BurnBar**, a native macOS menu bar
68
+ app that shows live token burn and remaining usage limits across your AI coding tools. See
69
+ [`menubar-app/README.md`](./menubar-app/README.md) for its architecture and build steps.
88
70
 
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.
90
-
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:
101
-
102
- ```bash
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)
106
- ```
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:
71
+ ## Build
115
72
 
116
73
  ```bash
117
- npx whoburnedmore link --token=TOKEN
74
+ npm install
75
+ npm run build # bundles src/index.ts -> dist/index.js
76
+ npm test
118
77
  ```
119
78
 
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
-
131
79
  ## License
132
80
 
133
- MIT © Arham Wani
81
+ MIT