Documentation
Install it, understand it, and know exactly what it does and does not do.
Install the Pulse Code agent with one command, give it the API key from your account, and it imports your whole Claude Code history and then keeps up on its own. To name a scheduled job, wrap the command with cc-run. Everything else happens in the dashboard.
Last updated 14 September 2026
Installing the agent
Linux and macOS:
Windows, in PowerShell:
Both scripts print exactly what they will do before doing it, check the download against a published SHA256, and refuse to install if it does not match. They are safe to run twice — re-running upgrades in place and keeps your config.
Where things live
| Binaries | /usr/local/bin/pulsecode-agent |
| Config | ~/.pulsecode/config.json |
| State | ~/.pulsecode/state.json |
| Job records | ~/.pulsecode/cron-runs.jsonl |
| Your transcripts | ~/.claude/projects/ |
The last row is the one the agent only ever reads. Nothing is written there.
Commands
| Command | What it does |
|---|---|
| pulsecode-agent enroll --key K | Registers this machine. |
| pulsecode-agent once | Reads anything new, uploads it, exits. |
| pulsecode-agent run | The same, on a loop. This is what the service runs. |
| pulsecode-agent status | What has been tracked so far. |
| pulsecode-agent doctor | Checks everything and explains any problem. |
Naming scheduled jobs
Claude Code already marks headless runs, so scheduled work is separated from interactive work with no setup. What it cannot know is what you call the job. Wrap the command:
Everything after -- runs unchanged, and cc-run exits with that command's own exit code — so dropping it into an existing crontab line changes nothing about how that line behaves.
Reading the dashboard
Overview
Totals, the daily burn split by token bucket, and where the money went. The cache-read band is usually the tall one, and it is the cheapest — which is exactly why a single number misleads.
Sessions
Every session, sortable. Open one for the turn-by-turn timeline and the context growth chart.
MCP servers
Per server: calls, errors, result sizes and estimated context cost. Plus the heaviest tools, ranked by cost per call — a chatty tool is paid for on every later turn of the session.
Scheduled
Per job: runs, cost, trend, and which runs matched which session.
If the agent goes quiet
It checks the Claude Code directory, counts the transcripts it can see, confirms its own state lives outside your Claude directory, tests the connection, and parses a real transcript so a broken format shows up here rather than silently.
On Linux, if the agent stops when you log out, the user service needs lingering enabled:
What is sent
The full field-by-field list is on the privacy page. The short version: counts, names and timestamps — never your prompts, your code, or what your tools returned.
How the numbers are worked out
Which figures are exact, which are estimates, and the two counting mistakes that make most token maths wrong: the methodology page.
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.