skills/cost/SKILL.md
Deep cost exploration and transparency. Shows real token usage, session costs, campaign spend, burn rates, and model breakdown. Reads Claude Code's native session data for exact numbers. Complements /dashboard with focused cost views.
npx skillsauth add SethGammon/Citadel costInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
/cost -- current session cost and burn rate/cost today -- today's total spend/cost week -- this week's spend/cost campaign {slug} -- total spend for a specific campaign/cost all -- lifetime cost summaryOptional arguments parsed from user message:
today -- filter to today's sessionsweek -- filter to last 7 dayscampaign {slug} -- filter to a specific campaignall -- show all-time dataRun the session-tokens.js script to get real token data:
node scripts/session-tokens.js # current/latest session
node scripts/session-tokens.js --today # today's sessions
node scripts/session-tokens.js --all # all sessions (use for week/all/campaign)
Also read:
.planning/telemetry/cost-tracker-state.json for live burn rate.planning/telemetry/session-costs.jsonl for campaign attributionscripts/pricing.json to show which pricing is being usedIf session-tokens.js is not available or fails, fall back to session-costs.jsonl
data and clearly mark output as "(estimated)".
Current session (/cost with no args):
=== Session Cost Report ===
Session: {sessionId (first 8 chars)}
Started: {relative time} ({absolute time})
Duration: {minutes} min
Tokens:
Input: {N} tokens
Output: {N} tokens
Cache creation: {N} tokens
Cache read: {N} tokens
Total: {N} tokens
Cost: ${total}
Burn rate: ${rate}/min
Messages: {N} ({N} main + {N} across {N} subagents)
Model breakdown:
claude-opus-4-6: {N} messages (${cost}, {pct}% of spend)
claude-haiku-4-5: {N} messages (${cost}, {pct}% of spend)
Cache efficiency: {pct}% of input tokens served from cache
(Higher = more cost-efficient. Cache reads cost 10x less than fresh input.)
Pricing source: scripts/pricing.json (version {version})
Today / Week / All (/cost today, /cost week, /cost all):
=== Cost Report: {Today / This Week / All Time} ===
Summary:
Sessions: {N}
Total cost: ${total}
Subagents spawned: {N}
Total messages: {N}
Top 5 sessions by cost:
${cost} {duration}min {agents} agents {msgs} msgs {date}
${cost} {duration}min {agents} agents {msgs} msgs {date}
...
By campaign (from session-costs.jsonl):
{slug}: ${cost} across {N} sessions
_unattached: ${cost} across {N} sessions
Average session: ${avg_cost} | ${avg_rate}/min | {avg_duration} min
For historical charts and billing-window views: npx ccusage
Campaign (/cost campaign {slug}):
=== Campaign Cost: {slug} ===
Total: ${cost} across {N} sessions ({N} agents, {N} min)
Average session: ${avg}
Sessions:
{date}: ${cost} ({duration} min, {agents} agents, {msgs} msgs)
{date}: ${cost} ({duration} min, {agents} agents, {msgs} msgs)
...
After the cost data, add one of these contextual lines based on the numbers:
If scripts/session-tokens.js does not exist: Fall back to session-costs.jsonl data. Show estimated costs with "(est)" marker.
If no session data exists:
No session data found. Cost tracking requires Claude Code session files
at ~/.claude/projects/. These are created automatically by Claude Code.
If pricing.json is missing or unreadable: Use hardcoded pricing in session-tokens.js. Note: "Using built-in pricing (pricing.json not found)."
If user asks about Pro/Max subscription costs:
Note: Pro/Max subscribers pay a flat monthly fee, not per-token.
The token counts shown here represent your usage volume, not billing.
For rate limit awareness, token throughput matters more than dollar cost.
.planning/telemetry/ does not exist — output: "No telemetry data found. Run any skill first to generate session data, then re-run /cost."session-*.json file fails to parse — output: "Telemetry file is corrupted. Delete .planning/telemetry/session-*.json and re-run the skill that generated it." Skip the bad file and continue with the rest.Disclosure: "Reading telemetry and session data. No files modified." Reversibility: green — read-only; no files modified Trust gates:
/cost does not produce a HANDOFF block. It is a read-only cost exploration tool. After displaying the report, wait for the next user command.
development
First-run experience for the harness. Three modes: Recommended (guided, ~3 min), Full Tour (guided + skill walkthrough, ~8 min), and Express (zero questions, ~30 sec). Installs hooks first, detects stack, configures harness.json, runs a live demo on real code, and prints a reference card.
development
Knowledge compiler. Extracts patterns, decisions, and anti-patterns from completed campaigns and evolve cycles, then compiles them into structured wiki pages that integrate with existing knowledge rather than appending isolated files. Implements flush→compile→lint pipeline. Auto-triggered by /postmortem and /evolve Phase 6.
tools
Unified router that auto-routes user intent to the right orchestrator or skill. Classifies input by scope, complexity, persistence needs, and parallelism, then dispatches to the cheapest path that can handle it: direct command, skill, marshal, archon, or fleet. Single entry point for all work.
data-ai
Real-time harness observability dashboard. Reads campaigns, fleet sessions, telemetry, and pending queues to present a snapshot of harness state at a glance. Invoked by /dashboard, /do status, or phrases like "what's happening" and "show activity".