Usage & Cost deck: what your agent work costs, and what delegating to cheaper models saved you. A self-contained artifact — burn, savings, cost by app.
Scanned 9/3/2026
Install to Claude Code
npx -y skills add KevinZai/commander --skill ccc-usage --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Ccc Usage?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/kevinzai-ccc-usage)More formats (shields.io, HTML) on the badges page.
---
name: ccc-usage
description: "Usage & Cost deck: what your agent work costs, and what delegating to cheaper models saved you. A self-contained artifact — burn, savings, cost by app."
allowed-tools:
- Read
- Bash
- Write
- AskUserQuestion
argument-hint: "[open | status]"
---
# $ccc-usage — Usage & Cost
The money deck. CC Commander already logs your model routing to `~/.claude/commander/` — `savings.json` (what delegating to cheaper models saved vs an all-Opus baseline) and `mission-control/metrics.jsonl` (cost per app per day). This turns those into one page: cumulative savings, saved/day + cost/day trends, and a cost-by-app split.
> 🔒 Privacy: the numbers are read locally. Publishing the artifact uploads it (dollar figures, per-app split, dates) to your private claude.ai artifact URL — private to your account, but it leaves the machine. Always ask before publishing; never publish automatically.
> ⚠️ Honesty: these are **estimates** (rough per-model rates vs an all-Opus baseline, not your actual bill). Say so on the page. Never present them as billing.
## How it routes
On `$ccc-usage` with no argument, open a click-first picker:
```
AskUserQuestion:
question: "Usage & Cost — how do you want it?"
options:
- 🛰️ Publish the deck — a living Usage & Cost artifact you can keep beside your chat
- 🗣️ Plain-English status — narrate the headline numbers here, no jargon
```
`$ccc-usage open` (or `snapshot`) → publish the deck. `$ccc-usage status` → narrate.
**Zero-state:** if `savings.json` and `metrics.jsonl` are both missing/empty, say so plainly — "No cost data logged yet — run some agents (`$ccc-fleet`, `$ccc-spawn`) and this deck fills in." Never render an error for an empty deck.
### 🛰️ Publish the deck
**LIVING PATTERN:** always render to the SAME file path (`scratchpad/ccc-usage-live.html`), then republish that same path with the Artifact tool — same path means same URL, so it updates one living page instead of a trail of copies. **Do not change this path** — it is the identity of every bookmark anyone already has for this deck.
Since v7.4.0 this page is the **Usage tab of the Commander Console**, published on its own — one builder renders every deck and the console, so the numbers can't disagree:
```bash
mkdir -p scratchpad
if [ -f "${CLAUDE_PLUGIN_ROOT}/scripts/build-console.mjs" ]; then
node "${CLAUDE_PLUGIN_ROOT}/scripts/build-console.mjs" \
--surface artifact --tab usage --out scratchpad/ccc-usage-live.html
else
node commander/cowork-plugin/scripts/build-console.mjs \
--surface artifact --tab usage --out scratchpad/ccc-usage-live.html
fi
```
The page is unchanged apart from one added line pointing at `$ccc-console` (the inline all-in-one view).
**First publish this session** → ask before publishing ($ figures leave the machine for your private artifact URL). **Every later run of `$ccc-usage`** → invoking the skill again IS the refresh consent: republish the same file path to the same URL without re-asking. Publish `scratchpad/ccc-usage-live.html` with the Artifact tool (favicon 💰). End with the artifact title + the headline: "$X saved across N dispatches." To refresh later: run `$ccc-usage` again — same URL updates in place; viewers reload.
### 🗣️ Plain-English status
Run `readUsageModel({})` and read `model.totalSavedUsd` / `model.totalDispatches` / `model.costByApp`, then narrate caveman-simple: "You saved about $X by letting cheaper models do N jobs. Most of your spend is <app>." No jargon, no tables.
## The deck also links the others
The published artifact carries the shared **Commander decks** strip at the top — one click (copy) away from the Cockpit, Mission Control, and Safety decks. Users always know the other decks exist. It also carries one line pointing at `$ccc-console`, the inline console that shows all of these tabs at once (and has a prompt bar, which a published page cannot).
> **On Codex:** some panels may be empty on Codex today — Safety's failure hotspots, Mission Control's agent roster, and Usage's savings hero are fed from Claude-only hooks right now. A follow-up workstream wires the matching Codex telemetry.
---
> ⚙️ **Fable contract:** plan before build · verifier ≠ worker · prove before alarm · loops need gates · leave durable state — `rules/fable-method.md`
> (On Codex, present these options as a numbered list and ask the user to reply with a number — AskUserQuestion is Claude-only.)
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!