Dashboard + Proxy · Open Source

Your Claude Code bill,
explained line by line.

Every tool call. Every repeated read. Every bloated response. Priced to the cent, per task, live in your terminal. Then claude-turbo blocks the waste — 60–90% gone before it ever hits your context window.

Tokens saved this session: 0 |
terminal
$ curl -fsSL https://claude-turbo.xyz/install.sh | sh
Downloading claude-turbo v0.3.0...
Hooks: added for Read, Bash, Grep, Glob
Proxy: 7 heuristics + 3 filters, self-tuning
$ claude-turbo dashboard # live view of every tool call, priced per task
$ claude # savings start automatically

Your Claude Code session,
x-rayed in real time.

A local TUI that tails your active session and tells you, to the cent, what each task is costing you. No telemetry. No cloud. Your logs never leave your machine.

claude-turbo  dashboard ·  tailing ~/.claude/projects/myapp/session-4f2a.jsonl ·  claude-opus-4-6
01 Top tasks by cost · this session
refactor auth middleware
$2.91
migrate session store to Redis
$1.81
add rate-limit to /v1/telemetry
$1.08
fix stale proxy connections
$0.34
bump ratatui to 0.28
$0.09
session total: $6.23 · 1,847k tokens · 312 tool calls · 47 min
02 Tokens by tool
Read
642k
Bash
518k
Grep
249k
Edit
151k
Glob
104k
Write
61k
Read alone = 35% of this session · 4 files read more than twice
03 Activity pulse · tool intensity over session
toolhits
Read
128
Bash
94
Grep
51
Edit
39
Glob
18
intensity  peak 7/bucket · 5 tools × 24 buckets
04 Live stream ● tailing
14:23:07 Read src/proxy.rs +$0.04
14:23:09 Read src/proxy.rs H1 · blocked · 2nd read
14:23:11 Grep "pool_idle" +$0.02
14:23:18 Edit src/proxy.rs:41 +$0.01
14:23:24 Bash cargo build --release P1 · 847 heartbeats stripped
14:23:51 Bash cargo test proxy:: +$0.08
14:24:02 Bash cargo test proxy:: H4 · blocked · duplicate
·14:24:04 heartbeat
14:24:05 Read server/src/main.rs +$0.11
14:24:08 proxy /v1/messages · 214kb → 38kb −$0.47 saved
14:24:12 Edit server/src/main.rs:124 +$0.02
q quit · ←/→ scroll · 1–4 focus panel · s pick session · e export html
$6.23
this session
−$3.91
saved by proxy + hooks
38.5%
heartbeats blocked
$/task
Live cost per Claude Code task
60-90%
Savings on repeated ops
<5ms
Per-call proxy overhead
0 config
Dashboard + proxy, one binary

First you see it.
Then it stops happening.

Every other Claude Code tool is a black box. claude-turbo opens the box — live, locally — and then closes the leaks.

📈

Live local dashboard

A terminal TUI that tails your active Claude Code session. Timeline of every tool call, token breakdown per tool, waste heatmap, and cost-per-task in dollars. Export to HTML to share.

claude-turbo dashboard → 4 panels → live tail

Pre-execution interception

Hooks fire before the tool call runs. A blocked redundant read costs zero tokens. Other tools can only trim after the damage is done.

PreToolUse hook → deny/rewrite → 0 tokens wasted
🌐

Wire-level response filtering

A local proxy strips SSE heartbeats, base64 images, and bloated tool results before they hit your context window. Self-tunes from aggregate usage data.

SSE stream filter → ~2KB keep → rest dropped

Every override makes it smarter

Most tools are static. claude-turbo has a feedback loop that tunes itself from aggregate usage data across all clients.

CLIENT Your machine

1

Deny a tool call (e.g., redundant file read)

2

Detect override — Claude retries same args within 60s? That's a false positive.

3

Record override count per heuristic in cumulative stats

7

Apply new model params — thresholds shift, weights change, bad heuristics get disabled

sync telemetry
pull params

SERVER Ingest + Retune

4

Aggregate fires + overrides across all clients

5

Compute FP rate per heuristic. >30% = penalize, <5% = boost.

6

Retune — adjust weights AND thresholds. High FP on H1? Allow 2 re-reads instead of 1.

Three layers of savings

Hook layer blocks waste upfront. Proxy layer filters the wire. Model layer tunes everything from evidence.

your tools
Claude Code
PreToolUse
Hook Layer
SSE filter
Proxy Layer
upstream
Anthropic API
↓ telemetry
retune
Ingest Server
updated
Model Params
~2,000 lines · <5ms per call · file-based state · no daemon required · MIT licensed

10 interception points

7 hook heuristics block waste upfront. 3 proxy filters clean the wire. All thresholds tunable from the server.

H1
Redundant file readSame file read twice in a session? Denied with context. Threshold: tunable (default 1).
H2
Large file read>300 lines without offset/limit? Denied. Tells Claude to use Grep or specify a range.
H3
Unscoped test runBare cargo test / pytest? Rewrites to scope to the active test.
H4
Duplicate bash commandSame go build / cargo check twice? Denied. Output hasn't changed.
H5
Redundant searchSame Grep/Glob pattern+path in one session? Denied with context pointer.
H6
Unscoped git logNo bounds? Rewrites to --oneline -20. Limit tunable from server.
H7
Recursive listingls -R / unbounded find? Pipes through head -50.
P1
SSE heartbeat stripEmpty bash_progress events dropped at the wire. Zero tokens.
P2
Base64 image stripdata:image/... payloads replaced with placeholder. Saves 10K+ tokens per image.
P3
Large result truncationTool results >8KB truncated to 2KB + notice. Threshold tunable from server.

Built from real log analysis

Every heuristic was derived by analyzing actual Claude Code session logs — no guesses, no synthetic benchmarks.

1.8 GB

Raw Claude Code session logs processed through the analyzer to find repeat patterns and payload bloat.

Input corpus for heuristic design
5.5M

Saveable tokens identified across that corpus — repeated file reads, duplicate builds, unscoped tests, massive outputs.

Waste found by the analyzer
run it

Point claude-turbo analyze at your own ~/.claude/projects logs. See exactly where your tokens went before you install anything.

Reproducible on your machine

Open source. Auditable.
Your code never leaves your machine.

claude-turbo runs locally and intercepts tool calls on your own machine. The only thing that ever goes to our server is a handful of counters — and even that you can turn off in one line.

What gets sent telemetry

  • A random 128-bit client ID generated on first run (not tied to email, IP, hostname, or OS user)
  • Version string and platform (macos, linux, windows)
  • Counters: tokens saved, tool calls intercepted, tool calls invoked
  • Per-heuristic fire counts and override counts (drives the retune loop)
  • Daily rollups of the above for the last 14 days
  • A boolean for whether the local proxy is running

What never leaves your machine never

  • File paths, file contents, or anything you Read
  • Prompts, conversations, or messages to/from Claude
  • Bash commands, their arguments, or their output
  • Grep / Glob patterns or search results
  • Your Anthropic API key, OAuth token, or any credential
  • Hostname, IP address, user name, working directory, git remote
The entire telemetry payload — nothing else is sent
// POST https://api.claude-turbo.xyz/v1/telemetry
{
  "client_id": "a3f2c8d19e4b7f60c1d8e2a5f9b4c7e1",   // random, local
  "version": "0.3.0",
  "platform": "macos",
  "days_active": 12,
  "total_tokens_saved": 184320,
  "total_interceptions": 247,
  "total_invocations": 1893,
  "heuristic_totals": { "H1_redundant_read": 94, "H4_duplicate_bash": 38, /* ... */ },
  "heuristic_overrides": { "H1_redundant_read": 2, /* ... */ },
  "daily": [ { "date": "2026-04-11", "tokens_saved": 12840, /* ... */ } ],
  "proxy_running": true
}
Turn telemetry off One line in ~/.claude-turbo/config.json: "telemetry_enabled": false
Run your own server The ingest server is in the same repo. Point the client at it: "telemetry_url": "https://your.host"
Read every line 100% MIT on GitHub. Client, server, heuristics, proxy filters — all of it. github.com/blasrodri/claude-turbo

See the leaks.
Then stop paying for them.

One binary. Dashboard + proxy + heuristics. No config. Gets smarter every session.

curl -fsSL https://claude-turbo.xyz/install.sh | sh
Grabs a prebuilt binary or falls back to building from source. Wires up hooks, starts the proxy. See README for details →