claude.gf.cx cockpit v2 features parked · spike causes, model identification, open-MCP detection (2026-05-30)

DARE.CO.UK · PARKED SKETCH · 2026-05-30

Mirrored from ~/.claude/.../memory/parked_sketch_claude_cockpit_v2_features_2026-05-30.md. This is a design sketch parked for future build — read for context, not as a current deliverable.

Dan parked the cockpit task 2026-05-30 with explicit future-scope items: ‘what’s causing the spikes in burn, what model are we running, what open MCP is running.’ V1 ships with gap-based session detection + calibration anchors aligning to the Anthropic mobile app values. V2 should answer the ‘WHY am I burning fast right now’ question that v1 doesn’t.


Dan 2026-05-30 after aligning cockpit numbers with the Anthropic mobile app: “If the data can align, we can park this task - future scope: what’s causing the spikes in burn, what model are we running, what open MCP is running”. V1 (gap-based session detection + calibration anchors) shipped at https://claude.gf.cx/. V2 features parked for when the spike-cause question becomes actionable.

V1 shipped today

V2 parked — three features

1. Spike-cause attribution (“WHY am I burning fast”)

Show a recent-window breakdown that ranks which messages/tools/prompts caused the steepest USD burn in the last hour. The ‘expected to run out in N min’ headline already exists; v2 says WHICH calls drove the rate.

Approach: - Walk last-hour messages, compute per-message cost - Group by message-type / tool-call-type / file-edit-target - Surface top 5 by cumulative cost with timestamp + project + sample prompt - Mark spikes: messages > 3x median cost

UI: ‘Spike attribution’ card in the LIVE band (between session-hero and weekly).

2. Active model identification (“what model is running NOW”)

The cockpit aggregates by tier (opus / sonnet / haiku) but doesn’t say “you’re currently on Opus 4.7” in real time. v2 reads the most recent message’s model field and shows it prominently. Useful because Max plan tier matters per model (Opus is the constrained tier).

Approach: - Last message in the current session → model field - Display as a chip: ‘Currently: Opus 4.7 (1M context)’ in the LIVE band - Show ‘last switched from Sonnet at 3:42 PM’ if there was a model change mid-session

3. Open MCP server detection

Dan wants to see which MCP servers are connected for the current session — because some MCPs are token-hungry (chrome-devtools, large tool surfaces). Helps explain spikes that aren’t from his prompts.

Approach: - Parse ~/.claude/projects/<project>/<session>.jsonl for system messages that announce MCP servers - OR read ~/.claude/mcp.json (or wherever Claude Code stores MCP config) - Show ‘Active MCPs: chrome-devtools, playwright, resend’ chips - Optionally: per-MCP token consumption rollup

Resume conditions

Pick this up when ANY of these fire:

  1. Dan asks ‘why is my burn so high right now?’ and the cockpit can’t answer
  2. Dan accidentally burns past the weekly cap because he didn’t notice a model switch
  3. A new MCP gets added and Dan wants confirmation it’s the burn cause
  4. Dan opens this topic explicitly

Pre-resume audit

When this picks up: - Re-run the calibration (compare cockpit % to mobile app %, update anchors) - Verify ~/.claude/projects/ data shape hasn’t shifted under a Claude Code update - Check that the gap-based session detector still matches Anthropic’s actual session behavior

Cross-references

Source: parked_sketch_claude_cockpit_v2_features_2026-05-30.md · Rendered 2026-05-30 14:32