Probe0 vs Lunary
Lunary watches your LLM calls and shows you what happened. Probe0 sits in the request path on your own machine and changes what happens, by caching, routing to a local model, or refusing to spend past a cap. Different jobs, and the overlap is smaller than the category label suggests.
Open-source (Apache-2.0) LLM observability, analytics, and prompt-management platform for teams, available as hosted cloud or self-hosted Docker.
| Feature | Probe0 | Lunary | Edge |
|---|---|---|---|
| Primary job | Local proxy that reduces spend in-path | Observability and analytics layer | Even |
| Setup for one developer | One proxy plus one certificate; Claude Code, Codex, Cursor covered | SDK wrapping inside your own JS or Python code | Probe0 |
| Response caching | Exact disk cache plus local semantic cache | No built-in caching | Probe0 |
| Cache safety around tool calls | Semantic cache refuses any match carrying tool calls | No cache, so no reuse risk and no reuse saving | Probe0 |
| Routing and fallback | Local Ollama/LM Studio first, cloud retry on weak answers | Traces Ollama calls, does not route them | Probe0 |
| Budget enforcement | Spend Guard warns, then pauses at a hard cap | Reports cost, does not block requests | Probe0 |
| Cost attribution | Per call, down to the process that made it | Per project and end user, where the SDK is wired in | Probe0 |
| Where data lives | Only on your Mac; there is no Probe0 server | Hosted cloud, or self-hosted if you run the infrastructure | Probe0 |
| Trace UI, prompt versions, evals | Local ledger only: model, tokens, cost, latency, process | Trace views, chat replay, RAG and topic analytics, prompt versions, A/B tests, evals | Competitor |
Lunary owns one thing outright: it is the better tool if you need to see, replay and grade what your product's LLM calls did, with trace visualisation, conversation replay, RAG tracing, topic classification, prompt versioning and evals behind an Apache-2.0 licence. That is a different job from the one costing me money. My spend comes out of Claude Code, Codex and Cursor, and Probe0 is the tool that sits in front of those and changes the bill: one local proxy, one certificate installed once, every agent CLI on the machine covered with no per-tool configuration. Nothing leaves the Mac, because there is no Probe0 server to leave to.
Lunary is a sink, not a gateway. It does not route between models, it does not fall back, it does not cache, and it does not stop a request when the bill gets uncomfortable. The integration pattern is SDK instrumentation in JavaScript or Python, so you wrap a client you control, which is fine when the calls originate in code you wrote and useless against three closed CLIs with no import statement of yours anywhere in them. In practice Lunary is often pointed at a gateway like LiteLLM: the gateway routes, retries and enforces the budget, then forwards telemetry for the pretty view. That architecture says plainly which half of the problem each tool owns, and the half that lowers the invoice is the gateway half.
Inside Probe0 each module does one job and reports what it saved, so you can switch any of them off when the trade is bad. Local Routing sends work to a model already loaded in Ollama or LM Studio and retries weak answers on the cloud. Model Tiering tries the cheap model first. The Exact Cache is local disk, and a hit never touches the network at all. The Semantic Cache uses a local vector index with a strict similarity floor and refuses to match anything carrying tool calls, because a wrong hit there corrupts an agent run instead of saving money. Request Coalescing collapses simultaneous identical calls into one upstream request. Spend Guard warns and then pauses at a hard per-run or per-day cap. Recording keeps the full ledger, including which process made each call, and because it knows real usage it tells you when you are paying for a plan tier above what you use. The limits are real: macOS only, private beta, sign-in through Google or GitHub with a young account system, no team or multi-user gateway, and provider coverage that means what coding agents call rather than a 100-plus catalogue.
The verdict
Pick Probe0 if you are one developer on a Mac and Claude Code, Codex or Cursor are eating your credits. It is the only one of the two that caches, routes to a local model, attributes cost per process and stops the spend at a hard cap, and it does all of it without sending your traffic to anyone's server. Lunary is the better pick in one case: a team shipping an LLM product that needs shared traces, prompt versioning, evals and a compliance story, with the calls originating in code they can instrument. If that is not you, install the proxy and the certificate once and let Probe0 take the bill down.
Questions
- Is Probe0 a Lunary alternative?
- Only for cost control, not for observability. Probe0 is an LLM proxy that caches, routes and caps spend in the request path, while Lunary is a monitoring platform that records and visualises calls your own code makes. If you want trace UIs, prompt versioning and evals, Probe0 does not replace Lunary.
- Can Lunary track my Claude Code or Cursor usage?
- Not directly. Lunary integrates by wrapping an LLM client in your JavaScript or Python code, and closed AI coding agent CLIs give you nowhere to add that wrapper. Probe0 intercepts the traffic at the machine level instead, so it records every agent call including which process made it.
- Does Lunary reduce my LLM costs?
- It reports cost, tokens and latency so you can see where money goes, but it has no caching, no routing and no budget enforcement, so it does not lower the bill by itself. Probe0 applies LLM cost control in-path with an exact and semantic cache, model tiering, request coalescing and a Spend Guard that pauses at a hard cap.
- Both mention Ollama. Is that the same feature?
- No. Lunary auto-instruments Ollama calls for tracing, so you can see local model activity alongside cloud calls. Probe0 does local LLM routing, meaning it decides to send the work to a model already running in Ollama or LM Studio and automatically retries on the cloud when the local answer looks weak.