One proxy under every coding agent you run.

I built this because I had four agents running and no idea which one was burning the money. Probe0 is a local proxy, so everything your CLIs send goes through it first. From there it can hand cheap work to a model you already run, reuse answers it has seen before, stop a run at a number you pick, and keep the receipts.

All traffic · this machine
Today / cap$18.44 / $25.00
  • claude-code · 41822sonnet-4.6 · $0.0732Upstream
  • codex · 41903qwen3:8b · local · $0.0000Local
  • cursor · 41940haiku-4.5 · $0.0000Cache hit
  • claude-code · 41847sonnet-4.6 · $0.0000Coalesced
  • claude-code · 42011opus-4.7 · blockedCapped

1proxy slot

Your machine only has one, and every tool here wants it. So you pick an inspector or a cache or a router, and live without the rest.

$47Kin three days

What one team ran up leaving agents going over a weekend. Plenty of tools would have caught it, but none were in the request path.

96%already cached

Of a coding agent's prompt tokens already come back from the provider's cache. That caps what more caching can win, so the rest is routing.

Four things happen between your agent and the invoice

It sits underneath the tools you already run, so there's nothing to remember to invoke. Any stage here can be switched off.

  1. 01

    Intercept

    A local proxy plus a certificate you install once. After that every agent CLI on the machine goes through it, Claude Code and Codex and Cursor included, and you don't have per-tool config drifting out of sync.

  2. 02

    Route

    Every request gets a decision. Summarising, classification, short completions, the boring stuff can go to whatever you're running in Ollama or LM Studio, while the real work stays on the frontier model. If a local answer comes back weak it gets retried upstream and you never see it.

  3. 03

    Reuse

    Requests you've already made come back from a local cache instead of the network, and calls fired at the same moment collapse into one. Both are on by default and both tell you what they saved.

  4. 04

    Account

    Every call gets written down: model, tokens, real cost, latency, which process made it. There's also a hard cap that pauses things before a run gets away from you.

Every part of it is a switch

Owning the proxy slot only matters if you can change what runs in it. Each one reports what it actually saved, and anything not worth its latency comes off.

Send fewer tokens

Strip Compression
Cuts the uncached tail of the prompt to a budget you set.
Caveman
Strips articles, copulas and hedges word by word.

Send them somewhere cheaper

Local Routing
Whole classes of work go to a model you already run. Weak answers retry upstream.
Cloud Routing
Simple turns drop a rung to a cheaper model in the same family.
Model Tiering
Cheap model first, expensive one only when the work needs it.

Don't send them at all

Exact Cache
Repeats answered from local disk. Never touch the network.
Semantic Cache
Close matches from a local vector index, strict floor.
Request Coalescing
Simultaneous identical calls collapse into one upstream.

Know what it cost

Spend Guard
A hard cap per run or per day. Warns, then pauses.
Recording
Every call, which agent made it, and cost math you can check line by line.

Caching only helps the second time

Compression works on the first. That 65% is one feature on its own. They stack, and they stack on top of routing and the caches underneath them.

Strip Compression~65% fewer tokens
Drops low-information lines from the part of the prompt your provider isn't already caching. How hard it cuts scales with how much there is to cut.
CavemanStrips grammar
Removes articles, copulas and hedges word by word. “The file needs to be updated” becomes “file needs update”.

One slot, open to everyone

Long term I'd rather this be the layer other people build on than a fixed list of features I happened to pick.

Only one thing can hold the slot
Your machine has one proxy position and everything wants it. Running an inspector and a cache and a router at once isn't possible, so today you pick one and give up whatever the others were good at.
So the slot should be programmable
Probe0 takes the position and then opens the pipeline up. A module is a function that sees a request and decides what happens to it next, through the same interface the built-in ones use.
It declares what it needs
A module says up front what it wants: read metadata, rewrite a body, reach the network. It runs sandboxed with nothing else available, and you approve that list when you install it.
Reviewed before it gets listed
Anything published gets reviewed first. The sandbox is what makes that review tractable, since I only have to check the capabilities a module asked for.

The cheapest call is the one that never leaves

Plenty of agent work doesn't need a frontier model, and Probe0 is sitting in the right place to tell the difference.

Your models, your hardware
Point Probe0 at a model you're already running in Ollama or LM Studio and it becomes another tier. It checks the connection with a real round trip before it routes anything there.
Or a cheaper cloud model
Not everything that doesn't need the frontier model belongs on a laptop. Simple turns can drop a rung to a cheaper model in the same family instead, which keeps a real model on the problem. Anything carrying tool calls takes the conservative step, never the aggressive one.
You set the share, not a rule
Both routes are a dial: what fraction of your own traffic may take the cheaper path. It's a share of what you actually do, so it keeps meaning the same thing when your work changes.
Nothing is relayed
The proxy, the ledger and the cache all run on your machine, writing to your own disk. I don't run a server for them to phone home to.

The month you didn't need that plan

Probe0 knows what you actually used, so it can tell you when you're paying for a tier above the one you need. That's usually worth more than any cache will ever save you, and it's not something your provider has any reason to mention.

It works the other way round too. If you're hitting limits every week it'll say so, rather than leaving you to guess.

Last 30 days · this machine
Requests recorded
12,408
Billed to provider
$96.20
Duplicate calls collapsed
1,842
Answered from cache
2,317
Current plan
Max 20x · $200
What you actually used
48% of it

You could drop to the tier below. Based on 30 days of real use, not a guess.

Try it on your own agents

Probe0 is in private beta on macOS. You install it, point your shell at it, and it starts keeping track the next time an agent runs. Nothing you run through it gets uploaded.

macOS · Apple silicon and Intel.

No spam. One email when the beta opens.

Ask an AI instead

Opens a chat that already knows what Probe0 is, including the parts that are still rough. Ask it anything you would have had to read this page to find out.