When your agents get complex
Simulation-based AI agent testing and evaluation that turns unpredictable agents into reliable production systems.
This is the 4th launch from LangWatch. View more
Claude Code usage tracking by LangWatch
Launched this week
Track Claude Code usage: cost, cache, session replay. Run `npx langwatch claude` once. Every session gets cost with cache reads/writes as separate token classes, every bash and MCP call as a span, theoretical vs billed for your Max plan, and a full terminal replay in the UI. Works for Codex too.









Free
Launch Team





LangWatch
Hey Product Hunt, Manouk here, founder of LangWatch.
We built this because we run a fleet of coding agents ourselves and had no idea what they actually cost: subscriptions hide the number, and local trackers only see one machine.
You know what Claude Code costs you per seat. What you probably can't answer is which sessions burned the budget, which model did the work, or whether your cache was earning its keep. Today's token prices are heavily subsidised, and the teams who find out what they actually consume after prices move are the ones who get surprised.
This week we've added a new launch in LangWatch, which our dev-team is using day-in, day-out. You can now track your full Claude Code usage on LangWatch: every session, tokens spent throughout the month, cache hit analysis, bash commands, skills and MCP tool calls, with a full reproduction of your terminal right in the UI.
Getting started is one command:
npx langwatch claude
From there, every session lands in LangWatch automatically:
Where the tokens go: cost per session and per model, with cache reads and writes accounted separately.
Theoretical vs billed: on a Max plan, see what your usage would have cost at API prices.
Every tool call: bash commands, file edits, skills, and MCP calls, each as a span with duration.
Terminal replay: step through the whole session in the UI, as it happened.
Works the same for Codex, Gemini CLI, and opencode.
Free for individual use.
Start tracking your own sessions
I'll be here all day, happy to answer anything, and genuinely curious what you'd want to see next in it.
Cluing (formerly Collabwriting)
Congrats on the launch @manouk_dr !
LangWatch
@sandra_idjoski thanks!!
@manouk_dr How are you keeping secrets out of the terminal replay when commands and environment output can expose tokens before the session reaches the dashboard?
LangWatch
hey @flavio_riper, LangWatch has automatic PII and secret redaction of all the data, so api keys, tokens, private keys, db urls, all get redacted. Plus you can add custom patterns for you and your team to scrub. It's redacted before getting stored on LangWatch side.
Theoretical vs billed is the number that decides whether you stay on Max or move to the API, so I'd put that one on the front of the dashboard rather than three clicks in. The part that will bite you is the price table itself. If you reprice historical sessions when a model's cache read rate changes, last month's report quietly changes too, and that's a number people build budgets on. Stamp each session with the rates that were in force when it ran.
LangWatch
@asadmalik901 let us know what your outcome is! ;) thanks for sharing.
@manouk_dr Will do. I'm putting it on a week of real work next, and the number I actually want out of it is whether the cache is earning anything, because right now I have no feel for that at all.
LangWatch
@asadmalik901 oh that is in the front actually, on the home of the app! I just skipped on the demo video. But it works as you expected, rates are stamped and immutable as the sessions arrive, so you can compare month over month
indeed companies and even the engineers themselves are "feeling" the pricing dynamics under them, but without really having any visibility as it's all hidden under a plan and evolving model behavior, which is dangerous liability to have when token sponsoring ends
@asadmalik901 @rogerio_chaves The stamped-immutable-rate answer covers the common case well. Curious about a session that straddles a price change though, one that starts before a rate update and keeps running after it takes effect. Does the whole session get stamped with whichever rate was active at the start, or does it end up split across two rate periods internally?
@asadmalik901 @rogerio_chaves @raffay_sajjad this is the one I'd want nailed before I trusted a month-over-month chart. The stamped-immutable-rate answer is right for the common case, but a long session that starts before a rate change and keeps running after it — single rate stamped at session start, or split internally across two rate periods? On one session that's rounding. On a fleet running overnight it isn't.
Ryan's "cost per outcome, not cost per session" point below is the other half of this for me, coming at it from a different angle. I route deliberately by model — cheaper models to gather context, expensive ones to judge. What I've never been able to answer is whether that routing actually pays for itself, because the win shows up as output quality and the cost shows up in tokens, and I've never had both in one view.
So the thing I'd want: can sessions be tagged or grouped, so I can compare two routing strategies against each other rather than comparing this month to last month? Per-model cost gets me halfway there. That comparison is the report I'd actually open every week.
@rogerio_chaves @raffay_sajjad My instinct is the rate should attach to each call as it lands, not to the session wrapper. Then a straddling session is just a sum of calls at two rates and it stops being a special case at all. Whichever way it actually works, it needs writing down, because people will assume the version that flatters their number.
@rogerio_chaves Good, that's the right call. The liability point is the real one, most teams are running on a price they never negotiated and can't see, so the first honest number they get is going to sting. At least with the history stamped the sting is measurable instead of a vibe.
Good to note that individual developers can use it for free before rolling it out to larger teams. The pricing that I see on the top nav is for LangWatch or for this specific tool?
LangWatch
@divya_kothari1 it's for the whole platform, so you get LLMOps + Gateway + Governance on a single place ;)
FuseBase
Congrats! How much overhead does the tracking introduce during long-running Claude Code sessions?
LangWatch
hey @kate_ramakaieva Good question, we don't sit in the request path, so nothing is added to the model call latency. We read the session data Claude Code already writes locally and ship it in the background in batches, so the overhead is a small background process rather than anything you feel per turn. It stays flat over long sessions since we tail incrementally instead of re-reading the whole transcript.
LangWatch
@tihomiropacic it's after installed, moving forward.
Looking back to previous session data could allow you to estimate tokens and cost and capture the inputs and outputs for sure, but LangWatch hooks up on the actual api return and telemetry of claude code (or codex etc) so we get the actual token spent and a lot other metadata information directly from anthropic (or other providers) which is perfectly accurate
we are thinking of making a utility to help with retroactive imports though! Let me know how valuable would that be for you vs just going forward
does the terminal replay work for headless/CI runs with no TTY, or does capturing the replay need an actual interactive session? we run a chunk of our agent work in CI and cost visibility there is usually the blind spot
LangWatch
@sabber_ahamed for sure! we don't actually capture the TTY so it doesn't play a role, we just capture the telemetry behind and fully reconstruct on the frontend to look like a terminal, it's not a capture from the real terminal, so that's an actual great use case for it!
We've had the same problem trying to reconstruct Claude Code usage after the fact, mostly guesswork from Slack messages. Seeing session-level cost against which model actually did useful work vs. burned budget is the piece that's been missing. Does it break this down per project, or account-wide?
LangWatch
@rohanmanthani yes absolutely, LangWatch has three level divisions: projects, teams and org, plus departments which can work cross those for setting up budgets