Skip to content

Commit 9a5c42e

Browse files
committed
disable cursor provider
1 parent 69a8cea commit 9a5c42e

2 files changed

Lines changed: 26 additions & 35 deletions

File tree

README.md

Lines changed: 20 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,6 @@
11
<h1 align="center">codeburn-rs</h1>
22

3-
like codeburn, but in rust and a lot faster.
4-
5-
## Performance
6-
7-
Benchmarked against the published JS version (`npx codeburn`) with hyperfine
8-
(20 runs / 10 warmup) on Apple Silicon. Command: `report --provider all --period week`.
9-
10-
| Scenario | Rust (`cburn`) | JS (`npx codeburn`) | Speedup |
11-
| ----------------- | -------------- | ------------------- | ------- |
12-
| Tier 1 cache hit | 6.5 ms | 3.63 s | ~557× |
13-
| Tier 2 cache hit | 11.1 ms | 4.33 s | ~390× |
14-
| Cold (no cache) | 162 ms | 7.22 s | ~44× |
15-
16-
**Tier 1** is the output cache — replays the prebuilt rendered report.
17-
**Tier 2** is the parse cache — skips the JSONL parse and classification step
18-
but rebuilds the output. **Cold** wipes cursor disk caches and forces a full
19-
SQLite scan through the parse pipeline.
20-
21-
### Data corpus on the test machine
22-
23-
| Provider | Storage | Size | Notes |
24-
| -------------- | -------------------- | ------- | ------------------------------------ |
25-
| Claude Code | 1,106 JSONL files | 439 MB | 71 projects, ~111k total lines |
26-
| Codex | 247 JSONL files | 98 MB | ~43k total lines |
27-
| Cursor | SQLite (`state.vscdb`)| 1.5 GB | full IDE state — selective scan |
28-
| OpenCode | SQLite (`opencode.db`)| 80 MB | (1.1 GB including blobs/attachments) |
29-
| Claude Desktop | session files | 3.9 MB | |
30-
| Pi | session files | 2.8 MB | |
31-
32-
The "Cold" run scans all of this from disk. The 154 ms total includes parsing
33-
~150k JSONL lines plus a targeted SQLite query against the 1.5 GB Cursor DB.
3+
See where your AI coding tokens go but **600x faster**
344

355
## Install
366

@@ -71,18 +41,22 @@ cburn report --period 30days
7141
Filter to one provider:
7242

7343
```sh
74-
cburn report --provider cursor
44+
cburn report --provider claude
7545
```
7646

77-
Supported providers: `all`, `claude`, `codex`, `cursor`, `opencode`.
47+
Supported providers: `all`, `claude`, `codex`, `opencode`.
48+
49+
> Cursor support is currently disabled: Cursor stopped writing per-call token
50+
> counts to its local `state.vscdb` in early 2026, so any parse of that DB
51+
> now reports $0 regardless of actual usage. The parser code is retained in
52+
> case the data layout is restored upstream.
7853
7954
### Other commands
8055

8156
```sh
8257
cburn status # compact terminal snapshot (today + week + month)
8358
cburn export --format csv # export usage data to CSV or JSON
8459
cburn currency GBP # change display currency
85-
cburn install-menubar # macOS menu bar widget (SwiftBar)
8660
```
8761

8862
For full options, see `cburn --help` or `cburn <subcommand> --help`.
@@ -93,3 +67,15 @@ If you don't have the npm version installed and prefer the full name, alias it:
9367
```sh
9468
alias codeburn=cburn
9569
```
70+
71+
## Performance
72+
73+
Benchmarked against the published JS version (`npx codeburn`) with hyperfine on MacBook Pro (M1 Pro, 16GB, 1TB).
74+
75+
| Rust Scenario | JS Scenario | Rust (`cburn`) | JS (`npx codeburn`) | Speedup |
76+
| ------------- | ----------- | -------------- | ------------------- | ------- |
77+
| fully cached | cache on | 6.0 ms | 3.66 s | ~610× |
78+
| normal cache | cache on | 10.9 ms | 3.66 s | ~335× |
79+
| cold | cold | 76 ms | 7.71 s | ~101× |
80+
81+
Original JS version: (https://github.com/AgentSeal/codeburn).

src/providers/mod.rs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,12 @@ pub fn get_all_providers() -> Vec<Box<dyn Provider>> {
141141
vec![
142142
Box::new(claude::ClaudeProvider),
143143
Box::new(codex::CodexProvider),
144-
Box::new(cursor::CursorProvider),
144+
// Cursor provider is disabled: Cursor no longer writes per-call token
145+
// counts to the local state.vscdb.
146+
// `tokenCount.inputTokens`/`outputTokens` = 0, so parsing it would
147+
// always report $0. Parser code in `providers::cursor` is kept for
148+
// reference and in case the data layout is restored upstream.
149+
// Box::new(cursor::CursorProvider),
145150
Box::new(opencode::OpenCodeProvider),
146151
Box::new(pi::PiProvider),
147152
Box::new(copilot::CopilotProvider),

0 commit comments

Comments
 (0)