whoburnedmore 0.9.21 → 0.9.23
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.
- package/LICENSE +21 -0
- package/README.md +67 -102
- package/dist/index.js +6408 -6203
- 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,98 @@
|
|
|
1
1
|
# whoburnedmore
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
[](https://www.npmjs.com/package/whoburnedmore)
|
|
6
|
-
[](https://www.npmjs.com/package/whoburnedmore)
|
|
7
|
-
[](https://www.npmjs.com/package/whoburnedmore)
|
|
8
|
-
[](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
|
-
|
|
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
|
-
|
|
13
|
+
## What it does
|
|
24
14
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
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
|
-
|
|
32
|
-
|
|
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
|
-
|
|
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
|
-
**
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
npx whoburnedmore --
|
|
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
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
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
|
|
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`.
|
|
78
60
|
|
|
79
|
-
|
|
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.
|
|
80
66
|
|
|
81
|
-
|
|
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.
|
|
82
76
|
|
|
83
|
-
|
|
77
|
+
## Privacy & transparency
|
|
84
78
|
|
|
85
|
-
|
|
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.
|
|
86
81
|
|
|
87
|
-
|
|
82
|
+
## menubar-app/
|
|
88
83
|
|
|
89
|
-
|
|
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.
|
|
90
87
|
|
|
91
|
-
##
|
|
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:
|
|
88
|
+
## Build
|
|
101
89
|
|
|
102
90
|
```bash
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
91
|
+
npm install
|
|
92
|
+
npm run build # bundles src/index.ts -> dist/index.js
|
|
93
|
+
npm test
|
|
106
94
|
```
|
|
107
95
|
|
|
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
|
-
|
|
131
96
|
## License
|
|
132
97
|
|
|
133
|
-
MIT
|
|
98
|
+
MIT
|