See what Claude Code actually costs you
Claude Code already writes down every token it spends. It just never adds it up. Pulse Code reads those records across all your machines and shows you which project, which MCP server and which scheduled job the money went to.
Pulse Code is a usage monitor for Claude Code, the command-line tool. A small agent reads the session transcripts Claude Code already writes to your disk and uploads only counts — tokens, tool names, timestamps — never your prompts or your code. You get cost per session, per project, per MCP server and per scheduled job, across every machine you work on. There is a free tier for one machine.
Six things you cannot see today
The cache split
Input, output, cache write and cache read, priced separately. Most spend is cache reads — one combined number hides that completely.
Cost per project
Taken from the working directory each session started in. No tagging, no setup, no way to forget.
Per-MCP-server cost
Which server fills your context, how big its results are, and how often it errors. A chatty server is paid for on every later turn.
Scheduled runs
Headless runs are separated automatically. Name them with cc-run and every job gets its own line.
Every machine, one view
Laptop, desktop, server. One account, one total, and a filter for any single machine.
Alerts before the bill
Tell it when spend passes what a normal day looks like — by project, machine, server or job.
Three steps, about a minute
Create a key
One click after you sign up. It is shown once.
Run one command
The installer checks its own download against a published checksum before it runs anything.
Watch it fill in
Your whole history imports, then it keeps up on its own. Nothing else to do.
Does it read my prompts or my code?
No. The agent opens every transcript read-only and writes nothing inside your Claude Code directory. It sends counts and names — never content. We measured this rather than claiming it: a full agent run across 29,558 files changed not one byte.
- Never sends your prompts or Claude's replies
- Never sends your file contents or tool arguments
- Never sends what your tools returned — only how many bytes it was
- Never writes to ~/.claude/
- Project paths can be hashed before upload with --redact-paths
Questions people actually ask
No. The agent sends token counts, model names, tool names, timestamps and the size of each tool result. It never sends your prompts, Claude's replies, your file contents, your tool arguments, or what your tools returned. It opens every transcript read-only and writes nothing inside your Claude Code directory.
Claude Code re-sends your conversation on every turn. Rather than charge full price each time, Anthropic caches it: the first send is a cache write, and every later turn that reuses it is a cache read. Cache reads are much cheaper than fresh input. On a real machine we measured, 97% of all tokens were cache reads — which is why one combined token number tells you almost nothing.
Far more than most people expect, because every turn re-sends the whole conversation. A long session can pass a billion tokens, most of them cache reads. Pulse Code shows the per-session total split into four buckets — input, output, cache write and cache read — so you can see where it went instead of guessing.
The MCP page ranks every server by the estimated context cost of its tool results, and ranks individual tools by cost per call. A chatty server is worse than it looks: whatever it returns goes into your context, and every later turn in that session re-sends it. One fat result is paid for many times over.
Install the agent on each machine with the same API key. Every machine reports to one account, and each session is tagged with the machine it ran on. You can filter any view by machine, or see the whole fleet together.
Yes. Claude Code marks headless runs itself, so scheduled work is separated from interactive work automatically. To attach a job name, wrap the command with cc-run: cc-run --job "nightly-audit" -- claude -p "...". The job name then appears on every cost breakdown.
Usually because something large went into it early and never left. A big file read, a verbose tool result, or a chatty MCP server all stay in context for the rest of the session and are re-sent on every turn. The session detail view has a context growth chart that makes this visible: a line that climbs and never comes down is the thing worth fixing.
Yes. One machine and seven days of history, free, with no card required. Pro is $9 a month for five machines, a year of history, alerts and digests. Team is $29 for unlimited machines and two years of history.
Claude Pulse is a Chrome extension that tracks your usage on claude.ai, the website. Pulse Code tracks Claude Code, the command-line tool. Same people, same approach to privacy, different surface. Many people use both.
Other things worth knowing
How much does Claude Code cost per day?
It depends entirely on how you use it, and the honest answer is that most people have no idea until they measure. A light day of interactive work looks very different from a day with a scheduled job running every hour. The point of measuring is that the answer stops being a guess.
Does Claude Code show token usage by itself?
Claude Code writes detailed usage data to disk for every session, but it does not add it up for you across sessions, projects or machines. The numbers are already there — they just need reading, deduplicating and totalling.
Can I see which project costs the most?
Yes. Every session records the working directory it started in, so cost is attributed per project automatically. No tagging, no configuration.
What happens if I stop paying?
Your account drops to the free tier. Nothing is deleted immediately — you keep one machine and seven days of detail, and your longer-term daily totals stay intact, so your history does not vanish.
Do I have to send my data anywhere?
The counts, yes — that is what makes the dashboard work. The content, never. If even project paths are sensitive, the agent has a --redact-paths flag that hashes them before upload, so you still get per-project totals without the names.