cc-cream 0.3.3 → 0.3.4
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/CHANGELOG.md +14 -0
- package/README.md +54 -261
- package/package.json +8 -4
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,20 @@ All notable changes to cc-cream are documented here. Format follows
|
|
|
6
6
|
|
|
7
7
|
## [Unreleased]
|
|
8
8
|
|
|
9
|
+
## [0.3.4] — 2026-05-31
|
|
10
|
+
|
|
11
|
+
### Changed
|
|
12
|
+
- **Renamed the self-hosted marketplace from `cc-cream` to `bart-turczynski`.** The marketplace and the plugin previously shared the name `cc-cream`, producing the doubled reference `cc-cream@cc-cream`. Naming the marketplace after its owner makes it a suite container for future plugins and reads naturally as `cc-cream@bart-turczynski`. Only the marketplace's identity changes — the plugin name, the GitHub repo slug (`bart-turczynski/cc-cream`, still used in `/plugin marketplace add`), and the unqualified `/plugin install cc-cream` are unaffected. Existing installs must remove and re-add the marketplace to pick up the new identity.
|
|
13
|
+
- **Updated npm/plugin description and keywords** to reflect the actual feature set and improve discoverability. New description: "See cache health, context fill, token burn, rate limits, and peak hours in Claude Code CLI." Keywords updated across `package.json`, `plugin.json`, and `marketplace.json`.
|
|
14
|
+
|
|
15
|
+
### Documentation
|
|
16
|
+
- **Rewrote README** as a benefits-led, user-facing page. Added a real screenshot, an all-segments-on ASCII example, and short feature sections. Trimmed from ~350 lines to ~115 by extracting the full config reference and uninstall edge cases into dedicated files.
|
|
17
|
+
- **Added `CONFIGURATION.md`** — the complete configuration reference (JSON block, all segment docs, threshold keys, per-segment options) moved from the README.
|
|
18
|
+
- **Added `UNINSTALL.md`** — uninstall edge cases moved from the README: wrong-order recovery, cache-path fallback, npm safe-chain guard, `--status` footprint report.
|
|
19
|
+
- **Added `assets/screenshot.png`** — live screenshot of the default status bar.
|
|
20
|
+
- **Fixed stale version reference in `SECURITY.md`** — removed hardcoded `0.1.0` version pin from the supported-versions section.
|
|
21
|
+
- **Fixed `v1 supports` platform note in `README.md`** — replaced forward-looking "v1 supports macOS and Linux" with the present-tense "cc-cream supports macOS and Linux".
|
|
22
|
+
|
|
9
23
|
## [0.3.3] — 2026-05-30
|
|
10
24
|
|
|
11
25
|
### Changed
|
package/README.md
CHANGED
|
@@ -3,349 +3,142 @@
|
|
|
3
3
|
[](https://github.com/bart-turczynski/cc-cream/actions/workflows/ci.yml)
|
|
4
4
|
[](https://www.npmjs.com/package/cc-cream)
|
|
5
5
|
[](https://socket.dev/npm/package/cc-cream)
|
|
6
|
+
[](https://security.snyk.io/package/npm/cc-cream)
|
|
6
7
|
[](https://bundlephobia.com/package/cc-cream)
|
|
7
8
|
[](https://github.com/bart-turczynski/cc-cream/blob/main/LICENSE)
|
|
8
9
|
|
|
9
|
-
**
|
|
10
|
+
**The status bar Claude Code should have shipped with.**
|
|
10
11
|
|
|
11
|
-
A
|
|
12
|
-
that turns the JSON Claude Code pipes to its status line into a glanceable,
|
|
13
|
-
colored ≤3-row bar. The model **never sees the output** — it costs **zero tokens**.
|
|
12
|
+
*C.R.E.A.M. — Claude Code · Cache Rules Everything Around Me*
|
|
14
13
|
|
|
15
|
-
|
|
14
|
+

|
|
15
|
+
|
|
16
|
+
Keeps your cache health, context fill, rate-limit budgets, and session cost visible at all times — in a colored ≤3-row bar the model never sees. Zero tokens.
|
|
17
|
+
|
|
18
|
+
With all segments enabled:
|
|
16
19
|
|
|
17
20
|
```
|
|
18
|
-
ctx:
|
|
19
|
-
5h:
|
|
20
|
-
|
|
21
|
+
ctx:21% [43k] | cache:99% | write:2% | ttl:60 | effort:high | think:on | ∿ api:74% | ~$0.23
|
|
22
|
+
5h:13% ↺2h57m | ~3h12m | 7d:6% ↺Sat 21:00 | peak
|
|
23
|
+
Sonnet 4.6 | My project session
|
|
21
24
|
```
|
|
22
25
|
|
|
23
|
-
|
|
24
|
-
|
|
26
|
+
**Row 1 — this session:** context-window fill, cache hit rate, TTL countdown, session cost. Optional: cache write rate, effort level, thinking mode, API time ratio.
|
|
27
|
+
|
|
28
|
+
**Row 2 — rate-limit budgets:** 5h and 7d window usage with reset countdowns and a burn-rate projection. Hidden for API users.
|
|
29
|
+
|
|
30
|
+
**Row 3 — identity:** model name and session name.
|
|
31
|
+
|
|
32
|
+
## Features
|
|
25
33
|
|
|
26
|
-
|
|
27
|
-
- **Row 2** — rate-limit budget windows: 5h and 7d usage + reset countdown (subscribers only; API users get one row)
|
|
28
|
-
- **Row 3** — identity: model name and optional session name
|
|
34
|
+
**Cache health.** `cache` shows your hit rate each turn and turns red when it drops sharply — the only signal you'll get that a compaction, a far-back edit, or a large tool result just invalidated your cache prefix. `ttl` counts down to when the cache goes cold, turning amber then red as the window closes. Supports both 5-minute (API) and 60-minute (subscriber) TTLs, auto-detected.
|
|
29
35
|
|
|
30
|
-
|
|
31
|
-
before the model degrades — with cache economics as the organizing story.
|
|
36
|
+
**Rate-limit budgets.** `5h` and `7d` show how much of your rolling usage is gone and when each window resets. `burn` adds a live projection based on your current pace — useful before committing to a long agent run.
|
|
32
37
|
|
|
33
|
-
|
|
38
|
+
**Peak hours.** Anthropic's rate-limit drain accelerates Mon–Fri during Pacific business hours. The `peak` segment lights up when you're in that window so you can pace yourself accordingly. No other Claude Code status tool surfaces this.
|
|
34
39
|
|
|
35
|
-
-
|
|
36
|
-
opens a socket, fetches a URL, or calls home.
|
|
37
|
-
- **No telemetry.** Nothing is collected, reported, or logged anywhere.
|
|
38
|
-
- **No runtime dependencies.** Node built-ins only. `npm install` is for dev tools
|
|
39
|
-
(Cucumber, Biome) — nothing that runs at render time.
|
|
40
|
-
- **Zero tokens.** Claude Code reads the bar output to display it; the model never
|
|
41
|
-
receives it.
|
|
40
|
+
**Context window.** `ctx` shows occupancy and input-token magnitude. On large-context models where "50% of window" still means 500k tokens, you can set a fixed-token ceiling instead — warnings fire at the same absolute count regardless of window size.
|
|
42
41
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
42
|
+
**Session cost.** Cumulative spend including subagents, as estimated by Claude Code. Hidden when zero.
|
|
43
|
+
|
|
44
|
+
## Trust
|
|
45
|
+
|
|
46
|
+
No network calls, no telemetry, no runtime dependencies — Node built-ins only. The only output is a string written to stdout; the model never receives it. The only file written is `~/.claude/cc-cream-state.json` (session samples for the burn projection and drop detection). See [PRIVACY.md](PRIVACY.md) and [SECURITY.md](SECURITY.md).
|
|
46
47
|
|
|
47
48
|
## Requirements
|
|
48
49
|
|
|
49
50
|
- **Node.js** — already present; Claude Code is a Node app.
|
|
50
|
-
- **Claude Code ≥ 2.1.132** (released 2026-05-06). The cache figure requires
|
|
51
|
-
|
|
52
|
-
- The `effort` and `thinking` segments additionally require **Claude Code ≥ 2.1.145**;
|
|
53
|
-
they stay hidden below that version.
|
|
51
|
+
- **Claude Code ≥ 2.1.132** (released 2026-05-06). The cache figure requires `context_window.current_usage`, which landed in that release.
|
|
52
|
+
- `effort` and `thinking` segments additionally require **Claude Code ≥ 2.1.145**; they stay hidden on older versions.
|
|
54
53
|
|
|
55
54
|
## Platform support
|
|
56
55
|
|
|
57
|
-
|
|
58
|
-
engine is pure Node and the only blocker is the statusLine shell-command wiring.
|
|
56
|
+
macOS and Linux. Windows is a planned fast-follow.
|
|
59
57
|
|
|
60
58
|
## Install
|
|
61
59
|
|
|
62
|
-
### Option 1 — Claude Code plugin (
|
|
60
|
+
### Option 1 — Claude Code plugin (recommended)
|
|
63
61
|
|
|
64
|
-
If cc-cream is listed in the community catalog:
|
|
65
|
-
```bash
|
|
66
|
-
/plugin install cc-cream
|
|
67
|
-
```
|
|
68
|
-
|
|
69
|
-
To use the self-hosted marketplace directly:
|
|
70
62
|
```bash
|
|
71
63
|
/plugin marketplace add bart-turczynski/cc-cream
|
|
72
64
|
/plugin install cc-cream
|
|
73
65
|
```
|
|
74
66
|
|
|
75
|
-
|
|
76
|
-
**auto-wires** its `statusLine` into `~/.claude/settings.json` (you may need to
|
|
77
|
-
restart or trust the workspace for the bar to appear). It only does this when no
|
|
78
|
-
status line is configured — it never overwrites one you set for something else,
|
|
79
|
-
and it never re-adds the bar after you remove it.
|
|
67
|
+
On the first session after install cc-cream auto-wires its `statusLine` into `~/.claude/settings.json`. It only does this when the slot is free — it never overwrites a statusLine you set for something else, and it never re-adds the bar after you remove it.
|
|
80
68
|
|
|
81
|
-
If you already have a
|
|
69
|
+
If you already have a statusLine and want to replace it with cc-cream's:
|
|
82
70
|
```
|
|
83
71
|
/cc-cream:setup
|
|
84
72
|
```
|
|
85
73
|
|
|
86
|
-
|
|
87
|
-
`statusLine` block to `~/.claude/settings.json`. Updates are automatic: when
|
|
88
|
-
`/plugin update` drops a new version into the cache, the next render picks it up
|
|
89
|
-
without any further action.
|
|
74
|
+
Updates are automatic: `/plugin update` drops a new version into the cache; the next render picks it up.
|
|
90
75
|
|
|
91
76
|
### Option 2 — npm
|
|
92
77
|
|
|
93
78
|
```bash
|
|
94
79
|
npm install -g cc-cream
|
|
95
|
-
```
|
|
96
|
-
|
|
97
|
-
Then wire it into Claude Code with the bundled CLI:
|
|
98
|
-
```bash
|
|
99
80
|
cc-cream-setup
|
|
100
81
|
```
|
|
101
82
|
|
|
102
|
-
|
|
103
|
-
install you can run it through npx:
|
|
83
|
+
Or without a global install:
|
|
104
84
|
```bash
|
|
105
85
|
npx -y -p cc-cream cc-cream-setup
|
|
106
86
|
```
|
|
107
87
|
|
|
108
|
-
### Option 3 — Manual
|
|
88
|
+
### Option 3 — Manual
|
|
89
|
+
|
|
90
|
+
Download or clone the repository, then run the consent installer:
|
|
109
91
|
|
|
110
|
-
Download and install by cloning the repository, then run the consent installer:
|
|
111
92
|
```bash
|
|
112
93
|
git clone https://github.com/bart-turczynski/cc-cream.git
|
|
113
94
|
node cc-cream/src/install.js
|
|
114
95
|
```
|
|
115
96
|
|
|
116
|
-
The installer
|
|
117
|
-
- Detects an existing `statusLine` and **asks before replacing it**
|
|
118
|
-
- **Preserves any `padding`** you have set
|
|
119
|
-
- Is **idempotent** — re-running when cc-cream is already installed changes nothing
|
|
120
|
-
- States the trust and restart requirement
|
|
97
|
+
The installer detects an existing `statusLine` and asks before replacing it, preserves any `padding` you have set, and is idempotent.
|
|
121
98
|
|
|
122
|
-
After install, Claude Code must be **trusted** for the directory (if prompted)
|
|
123
|
-
and you may need to **restart** it for the bar to appear.
|
|
99
|
+
After install, Claude Code must be **trusted** for the directory (if prompted) and you may need to **restart** for the bar to appear.
|
|
124
100
|
|
|
125
|
-
> **Pick one install method.** If you wire cc-cream via npm/manual
|
|
126
|
-
> and *then* install the plugin, the plugin won't take over the existing wiring —
|
|
127
|
-
> it points at your home copy, so `/plugin update` won't auto-update the bar. To
|
|
128
|
-
> switch to the auto-updating plugin, run `/cc-cream:setup` (or `cc-cream-setup
|
|
129
|
-
> --uninstall` first). Nothing breaks either way; it just stays on whichever
|
|
130
|
-
> method wired it.
|
|
101
|
+
> **Pick one install method.** If you wire cc-cream via npm/manual and then install the plugin, run `/cc-cream:setup` to switch to the auto-updating plugin path. Nothing breaks either way — it just stays on whichever method wired it.
|
|
131
102
|
|
|
132
|
-
|
|
103
|
+
## Uninstall
|
|
133
104
|
|
|
134
|
-
Plugin users —
|
|
135
|
-
`settings.json` when a plugin is removed, so the wiring is cleared separately
|
|
136
|
-
from the cache):
|
|
105
|
+
Plugin users — run in this order:
|
|
137
106
|
```
|
|
138
|
-
/cc-cream:uninstall
|
|
139
|
-
/plugin uninstall cc-cream
|
|
107
|
+
/cc-cream:uninstall
|
|
108
|
+
/plugin uninstall cc-cream
|
|
140
109
|
```
|
|
141
|
-
`/cc-cream:uninstall` also auto-cleans cc-cream's regenerable scratch (the copied
|
|
142
|
-
runtime and session-state file); add `--purge` (`/cc-cream:uninstall --purge`) to
|
|
143
|
-
also delete your `~/.claude/cc-cream.json` config. The bar disappears on your next
|
|
144
|
-
message — restart an already-open session to drop it immediately.
|
|
145
|
-
|
|
146
|
-
> **Order matters — but you're covered if you get it wrong.** `/cc-cream:uninstall`
|
|
147
|
-
> lives inside the plugin, so once you run `/plugin uninstall` it's gone. Neither
|
|
148
|
-
> host command clears the `statusLine` block *or* the version cache. The renderer
|
|
149
|
-
> notices when it's running from a cache the host no longer lists as installed and
|
|
150
|
-
> **self-suppresses**, so the bar stops on the next session even though the inert
|
|
151
|
-
> `statusLine` line still lingers in `settings.json`.
|
|
152
|
-
>
|
|
153
|
-
> To clear that leftover line once the plugin is gone, the **guaranteed** route is
|
|
154
|
-
> the copy of the uninstaller still in the cache — npm-free and always present.
|
|
155
|
-
> `VERSION` is the single directory under that path (run the `ls` first to read it
|
|
156
|
-
> off); `/cc-cream:uninstall` also prints the fully-resolved command:
|
|
157
|
-
> ```bash
|
|
158
|
-
> ls ~/.claude/plugins/cache/cc-cream/cc-cream/ # e.g. 0.3.1
|
|
159
|
-
> node ~/.claude/plugins/cache/cc-cream/cc-cream/VERSION/src/install.js --uninstall
|
|
160
|
-
> # add --purge to also remove your config
|
|
161
|
-
> ```
|
|
162
|
-
> The npm bin does the same job, but **not always**: a *freshly published* version
|
|
163
|
-
> is blocked by npm's min-package-age safe-chain guard (it reports "No versions
|
|
164
|
-
> available") until it ages in, so use it only if the cache route isn't handy:
|
|
165
|
-
> ```bash
|
|
166
|
-
> npx -y -p cc-cream cc-cream-setup --uninstall
|
|
167
|
-
> ```
|
|
168
|
-
> You can always remove the `statusLine` key from `~/.claude/settings.json` by hand.
|
|
169
110
|
|
|
170
111
|
npm / manual users:
|
|
171
112
|
```bash
|
|
172
|
-
cc-cream-setup --uninstall
|
|
173
|
-
node cc-cream/src/install.js --uninstall # manual clone
|
|
113
|
+
cc-cream-setup --uninstall
|
|
174
114
|
```
|
|
175
115
|
|
|
176
|
-
|
|
177
|
-
statusLine you wired for something else is left untouched. It always cleans the
|
|
178
|
-
regenerable scratch (the copied runtime and session state, both recreated on a
|
|
179
|
-
reinstall); `--purge` additionally removes your `~/.claude/cc-cream.json` config.
|
|
180
|
-
The bar clears on your next message (restart an already-open session to drop it now).
|
|
181
|
-
|
|
182
|
-
Likewise, `cc-cream-setup` run non-interactively will overwrite an existing
|
|
183
|
-
*cc-cream* statusLine but never a foreign one — pass `--force` to replace
|
|
184
|
-
regardless.
|
|
185
|
-
|
|
186
|
-
Not sure what's left behind? `cc-cream-setup --status` prints a read-only
|
|
187
|
-
footprint report — the statusLine wiring, every cached plugin version (the host
|
|
188
|
-
never garbage-collects these), the marketplace clone + registration, the auto-wire
|
|
189
|
-
marker, session state, config, and the manual runtime copy — so you can confirm a
|
|
190
|
-
clean slate or see exactly what to remove.
|
|
116
|
+
Add `--purge` to either to also remove your `~/.claude/cc-cream.json` config. See [UNINSTALL.md](UNINSTALL.md) for edge cases and manual cleanup.
|
|
191
117
|
|
|
192
118
|
## Configuration
|
|
193
119
|
|
|
194
|
-
Every display decision is
|
|
195
|
-
or ask Claude to. It is strict JSON with no comments. **Every field falls back to
|
|
196
|
-
its built-in default if missing or malformed** — a typo degrades one value rather
|
|
197
|
-
than breaking the bar; a whole-file parse error falls back to all defaults.
|
|
198
|
-
|
|
199
|
-
Because unknown or out-of-range fields are silently ignored, run the doctor after
|
|
200
|
-
editing by hand to catch typos:
|
|
120
|
+
Every display decision is driven by `~/.claude/cc-cream.json`. You don't have to edit it by hand — just ask Claude to toggle segments, flip how percentages are counted, or adjust thresholds. The defaults are based on what the data and community experience suggest are reasonable starting points.
|
|
201
121
|
|
|
122
|
+
If you do edit by hand, run the doctor afterward to catch typos:
|
|
202
123
|
```bash
|
|
203
|
-
cc-cream-setup --check-config
|
|
124
|
+
cc-cream-setup --check-config
|
|
204
125
|
```
|
|
205
126
|
|
|
206
|
-
|
|
207
|
-
{
|
|
208
|
-
"numbers": "compact",
|
|
209
|
-
"ttl": "auto",
|
|
210
|
-
"percentage": "consumed",
|
|
211
|
-
"segments": {
|
|
212
|
-
"ctx": { "on": true, "row": 1, "order": 2, "amber": 30, "orange": 40, "red": 50, "basis": "window", "ceiling": 200000, "display": "basis" },
|
|
213
|
-
"cache": { "on": true, "row": 1, "order": 3, "drop": 20, "drop_recover": 80 },
|
|
214
|
-
"write": { "on": false, "row": 1, "order": 3.5 },
|
|
215
|
-
"ttl": { "on": true, "row": 1, "order": 4, "amber": 50, "red": 80 },
|
|
216
|
-
"cost": { "on": true, "row": 1, "order": 5 },
|
|
217
|
-
"effort": { "on": false, "row": 1, "order": 6 },
|
|
218
|
-
"thinking": { "on": false, "row": 1, "order": 7 },
|
|
219
|
-
"api_ratio": { "on": false, "row": 1, "order": 8 },
|
|
220
|
-
"5h": { "on": true, "row": 2, "order": 1, "amber": 75, "red": 90 },
|
|
221
|
-
"burn": { "on": true, "row": 2, "order": 1.5 },
|
|
222
|
-
"7d": { "on": true, "row": 2, "order": 2, "amber": 75, "red": 90 },
|
|
223
|
-
"peak": { "on": true, "row": 2, "order": 3, "start": 5, "end": 11 },
|
|
224
|
-
"model": { "on": true, "row": 3, "order": 0.5 },
|
|
225
|
-
"session_name": { "on": false, "row": 3, "order": 1 }
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
```
|
|
229
|
-
|
|
230
|
-
### Global keys
|
|
231
|
-
|
|
232
|
-
- `numbers`: `compact` (e.g. `38k`) or `exact` (`38000`) for token magnitudes.
|
|
233
|
-
- `ttl`: cache time-to-live used to color the `ttl` segment — `auto` (recommended),
|
|
234
|
-
`60`, or `5` minutes. `auto` infers from rate-limit data when available.
|
|
235
|
-
- `percentage`: `consumed` (default) counts up — `ctx:19%` means 19% of the window
|
|
236
|
-
is used, `5h:67%` means 67% of the 5h budget is gone. `remaining` flips the
|
|
237
|
-
budget/occupancy segments to count down (`ctx:81%`, `5h:33%`). Only `ctx`, `5h`
|
|
238
|
-
and `7d` flip; `cache%` (a hit-rate, not a budget) and `ttl` (a countdown) are
|
|
239
|
-
unaffected. **Thresholds are always expressed in consumed terms regardless of
|
|
240
|
-
this setting.**
|
|
241
|
-
|
|
242
|
-
### Per-segment keys
|
|
243
|
-
|
|
244
|
-
Every segment accepts:
|
|
245
|
-
- `on` (boolean) — whether to show the segment
|
|
246
|
-
- `row` (1, 2, or 3) — which row to place it on
|
|
247
|
-
- `order` (any number) — lower = further left within the row
|
|
248
|
-
|
|
249
|
-
Colored segments additionally accept threshold keys. Thresholds mark the
|
|
250
|
-
**lower bound** where that color begins.
|
|
251
|
-
|
|
252
|
-
### Segment catalog
|
|
253
|
-
|
|
254
|
-
| Segment | Default | Example | Meaning | Color |
|
|
255
|
-
|---|---|---|---|---|
|
|
256
|
-
| `ctx` | on, row 1 | `ctx:19% [38k]` | context-window occupancy + input-token magnitude | `<30` green · `30–40` amber · `40–50` orange · `≥50` red |
|
|
257
|
-
| `cache` | on, row 1 | `cache:95%` | last-turn cache hit rate (reads / total tokens) | neutral; **red** on a sharp drop (see below) |
|
|
258
|
-
| `write` | **off**, row 1 | `write:4%` | last-turn cache creation rate (new writes / total tokens) | neutral |
|
|
259
|
-
| `ttl` | on, row 1 | `ttl:00:52` | time remaining before cache expires (counts down to 00:00) | `<50%` green · `50–80%` amber · `≥80%` red |
|
|
260
|
-
| `cost` | on, row 1 | `~$4.50` | session cost incl. subagents; `~` = CC's estimate | neutral; hidden when zero |
|
|
261
|
-
| `effort` | **off**, row 1 | `effort:high` | reasoning effort level (requires CC ≥ 2.1.145) | neutral |
|
|
262
|
-
| `thinking` | **off**, row 1 | `think:on` | thinking mode indicator (requires CC ≥ 2.1.145) | neutral |
|
|
263
|
-
| `api_ratio` | **off**, row 1 | `∿ api:74%` | fraction of wall time spent on API calls | neutral |
|
|
264
|
-
| `5h` | on, row 2 | `5h:23% ↺ 2h14m` | 5-hour rate-limit window + reset countdown | `≥75` amber · `≥90` red |
|
|
265
|
-
| `burn` | on, row 2 | `~38m` | estimated minutes until 5h cap at current pace | neutral; hidden when ETA > 5h or no prior sample |
|
|
266
|
-
| `7d` | on, row 2 | `7d:41% ↺ 4d` | weekly rate-limit window + reset countdown | same as 5h |
|
|
267
|
-
| `peak` | on, row 2 | `peak` | weekday Pacific-time window where 5h drains faster | amber; hidden outside window |
|
|
268
|
-
| `model` | on, row 3 | `Sonnet 4.6` | current model name | none |
|
|
269
|
-
| `session_name` | **off**, row 3 | `My project session` | conversation name from CC | none |
|
|
270
|
-
|
|
271
|
-
Any segment hides cleanly when its source field is absent — API users have no
|
|
272
|
-
`rate_limits`; `current_usage` is null right after `/compact`; etc.
|
|
273
|
-
|
|
274
|
-
Row 2 is hidden entirely for API users (no `rate_limits` in stdin).
|
|
275
|
-
Row 3 suppresses itself when all its segments are hidden.
|
|
276
|
-
|
|
277
|
-
### Row 1 layout
|
|
278
|
-
|
|
279
|
-
Row 1 has two zones separated by ` | `:
|
|
280
|
-
|
|
281
|
-
```
|
|
282
|
-
[ctx · cache · write · ttl · effort · thinking · api_ratio] | [cost]
|
|
283
|
-
```
|
|
284
|
-
|
|
285
|
-
Segments within zone 1 are also separated by ` | `. Segments moved off their
|
|
286
|
-
default row via config must land in a zone to appear on row 1.
|
|
287
|
-
|
|
288
|
-
### `ctx`-specific keys
|
|
289
|
-
|
|
290
|
-
- `basis`: `window` (default) colors based on `used_percentage` of the real context
|
|
291
|
-
window. `ceiling` colors based on `total_input_tokens / ceiling`, so the warning
|
|
292
|
-
fires at the same absolute token count on any window size. On a 1M-context model
|
|
293
|
-
the window basis stays green well past where quality degrades — set `ceiling` if
|
|
294
|
-
you want an early warning that doesn't scale with the window.
|
|
295
|
-
- `ceiling`: token count the `ceiling` basis measures against. Default `200000`.
|
|
296
|
-
- `display`: with `basis: "ceiling"`, `basis` (default) shows the % toward the
|
|
297
|
-
ceiling so number and color agree; `window` pins it to CC's window figure but
|
|
298
|
-
still colors by the ceiling. No effect under `basis: "window"`.
|
|
299
|
-
|
|
300
|
-
### `ctx` thresholds
|
|
301
|
-
|
|
302
|
-
Default: `amber: 30`, `orange: 40`, `red: 50` (percent consumed).
|
|
303
|
-
|
|
304
|
-
### `cache` drop detection
|
|
305
|
-
|
|
306
|
-
The `cache` segment stays neutral while the hit rate is healthy, but turns **red**
|
|
307
|
-
when it falls sharply from one turn to the next — a cue that the prompt cache was
|
|
308
|
-
just invalidated (e.g. an edit far back in context forced a re-read). This relies
|
|
309
|
-
on per-session state, so it only fires when `session_id` is present in stdin.
|
|
310
|
-
|
|
311
|
-
- `drop`: percentage-point fall from the previous turn that trips red. Default `20`
|
|
312
|
-
(95% → 74% trips; 95% → 80% does not).
|
|
313
|
-
- `drop_recover`: once tripped, the segment stays red until the hit rate climbs
|
|
314
|
-
back to at least this value. Default `80`.
|
|
315
|
-
|
|
316
|
-
### `ttl` thresholds
|
|
317
|
-
|
|
318
|
-
Default: `amber: 50`, `red: 80` (percent of the resolved TTL consumed).
|
|
319
|
-
|
|
320
|
-
### `5h` / `7d` thresholds
|
|
321
|
-
|
|
322
|
-
Default: `amber: 75`, `red: 90` (absolute `used_percentage`).
|
|
323
|
-
|
|
324
|
-
### `peak`-specific keys
|
|
325
|
-
|
|
326
|
-
- `start` / `end`: hours in Pacific time (0–23, exclusive end) bounding
|
|
327
|
-
Anthropic's faster-drain window. Defaults `5`–`11`. Weekday-only (Mon–Fri) and
|
|
328
|
-
the `America/Los_Angeles` timezone are hardcoded policy facts, not config.
|
|
127
|
+
Full reference: [CONFIGURATION.md](CONFIGURATION.md).
|
|
329
128
|
|
|
330
129
|
## Troubleshooting
|
|
331
130
|
|
|
332
|
-
cc-cream
|
|
333
|
-
it just hides that segment rather than crashing. When the bar is unexpectedly
|
|
334
|
-
empty or shorter than you expect, turn on diagnostics:
|
|
131
|
+
cc-cream degrades silently — missing or malformed data hides the segment rather than crashing. When the bar is unexpectedly empty or shorter than expected:
|
|
335
132
|
|
|
336
133
|
```bash
|
|
337
134
|
export CC_CREAM_DEBUG=1 # then trigger a render in Claude Code
|
|
338
135
|
```
|
|
339
136
|
|
|
340
|
-
Each render appends a line to `~/.claude/cc-cream-debug.log` (override the
|
|
341
|
-
with `CC_CREAM_DEBUG_LOG`) listing which segments rendered, which were dropped,
|
|
342
|
-
the resolved TTL window, and the stdin size. It never writes to the status line
|
|
343
|
-
itself, so it costs zero tokens. Unset the variable to turn it off.
|
|
137
|
+
Each render appends a diagnostic line to `~/.claude/cc-cream-debug.log` (override with `CC_CREAM_DEBUG_LOG`) listing which segments rendered, which were dropped, the resolved TTL, and stdin size. Unset to turn off.
|
|
344
138
|
|
|
345
139
|
## Development
|
|
346
140
|
|
|
347
|
-
See [CONTRIBUTING.md](CONTRIBUTING.md)
|
|
348
|
-
uses only Node built-ins — no runtime dependencies.
|
|
141
|
+
See [CONTRIBUTING.md](CONTRIBUTING.md). The runtime uses only Node built-ins — no runtime dependencies.
|
|
349
142
|
|
|
350
143
|
## License
|
|
351
144
|
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "cc-cream",
|
|
3
|
-
"version": "0.3.
|
|
4
|
-
"description": "Claude Code
|
|
3
|
+
"version": "0.3.4",
|
|
4
|
+
"description": "See cache health, context fill, token burn, rate limits, and peak hours in Claude Code CLI. The status line for tokenminning - cache rules everything around me - dolla, dolla bill, y'all.",
|
|
5
5
|
"directories": {
|
|
6
6
|
"doc": "docs"
|
|
7
7
|
},
|
|
@@ -33,12 +33,16 @@
|
|
|
33
33
|
"CHANGELOG.md"
|
|
34
34
|
],
|
|
35
35
|
"keywords": [
|
|
36
|
+
"claude",
|
|
36
37
|
"claude-code",
|
|
37
38
|
"status-line",
|
|
38
39
|
"cache",
|
|
40
|
+
"tokens",
|
|
39
41
|
"context",
|
|
40
|
-
"
|
|
41
|
-
"
|
|
42
|
+
"engineering",
|
|
43
|
+
"monitoring",
|
|
44
|
+
"costs",
|
|
45
|
+
"tokenmaxxing"
|
|
42
46
|
],
|
|
43
47
|
"author": "Bart Turczynski <support@spoonkeyworks.com>",
|
|
44
48
|
"license": "MIT",
|