Never interrupts
Hooks always exit 0. No modals, no stolen turns. Interventions exist only in seams — after a turn completes, never mid-agent.
Tempo is a load-aware companion for people who work long hours with Claude — chat, Cowork, Claude in Chrome, or Claude Code. It reads the shape of your session — never your words — and when the pattern says your nervous system has left the building, it offers exactly one thing: a 40-second reset, at a pause, never interrupting your work.
free while in beta macOS · Linux · WSL needs python 3 no account no network calls
Tempo works immediately — hours actually spent in Claude, unbroken stretches, retry spirals and late-night urgency are visible with zero training. And in Claude Code it also keeps measuring in the background, so every day it runs, analyze.py shows a richer picture from your own logs: what actually happens to your prompts and error rates after hour three. If your data ever says it isn't helping, it will show you that too — and you delete one folder. In chat and Cowork, the same rules ride along as a skill Claude applies itself.
Hooks always exit 0. No modals, no stolen turns. Interventions exist only in seams — after a turn completes, never mid-agent.
Two families of signal. Friction — retry spirals, error rates above your own normal, prompts collapsing to fragments — spikes and fades. Dose — hours actually in Claude today, minutes since a real break, how many codebases you are holding, days running without a lighter one — accumulates. A day can go badly without a single error in it.
Every offer cites the signal that earned it: "3 retries on the same test in 9 minutes." Max two a day. Declines silence it.
20 nervous-system practices from The 40-Second Reset — breathwork, grounding, movement, fuel, reframes — rotated so it's never the same reset twice in a row. Compact card, breath-paced countdown, no streaks, no praise.
The Tempo skill teaches Claude itself to notice load signals — retry loops, terse rapid-fire messages, late hours — and offer a reset at a pause. Works in any conversation, and because the Claude in Chrome side panel now runs as a Cowork session, a skill you save once shows up in the browser too.
Then in Claude: open Settings → Capabilities/Skills and add the file — or just attach it in a chat and ask Claude to save it as a skill. From then on: type /tempo, or let it notice on its own — in chat, in Cowork, and in the Chrome side panel.
The full version, live from minute one: a statusline that warms as your session degrades, reset offers when the signals earn one, and silent local measurement that turns into your own data story over time.
Install is one line in Terminal:
curl -fsSL https://trytempo.net/install.sh | bashPiping to bash deserves a look first — read the script (it backs up your Claude settings before touching them), or download the zip and install by hand.
Needs macOS, Linux, or Windows via WSL, plus Python 3.
curl -fsSL https://trytempo.net/install.sh | bashtempo ● glyph in the statusline means it's running — that glyph is the proof, always. Past an hour it also shows the running total for the day, so a calm dot is visibly a measured calm dot.python3 ~/.tempo/doctor.py checks every link in the chain — hooks, signals, scoring, offers — and, if Tempo is being quiet, tells you exactly why.
python3 ~/.tempo/doctor.pypython3 ~/.tempo/week.py — your week in tempo: best hour, worst hour, and whether resets measurably helped, from your own logs. Pause everything with rm ~/.tempo/enabled.Want a preview first? python3 tempo/demo.py plays the whole product in a sandbox on synthetic data, right now.
Nothing to pay, and there is no card field anywhere on this site. Tempo is free through the beta, and the core — statusline, load scoring, the resets, your local data story — stays free afterwards. What comes after that is genuinely undecided: both the price and what you would get for it. Click the price you would actually pay and tell us what it would need to include. That is the whole mechanism.
Everything in the demo above — the whole working product, on your machine.
When the 1am retry spiral is a standing feature of the job, not a bad week.
When the 2am pattern belongs to the team, not to one person.
No prompt text. No file contents. No paths. No command strings. No tool outputs. Tempo logs derived shapes only — word counts, error flags, salted hashes — to a plain-text file you can read (~/.tempo/events.jsonl). There is no network call anywhere in the codebase, no account, no telemetry. rm -rf ~/.tempo is a complete erasure. Open the source — it's short on purpose: read the installer, or the whole bundle.
Probably not, but there is now a command that tells you for certain: python3 ~/.tempo/doctor.py. It walks the whole chain — hooks registered, signals arriving, scoring running, offers permitted — and if Tempo is being quiet it names the reason. The honest answer is that Tempo is designed to be quiet: the glyph only warms past about three and a half hours of unbroken work, and it only ever speaks at the top of the scale, at most twice a day. Past an hour the statusline also shows your running total for the day, so you can see it measuring even when it has nothing to say.
Both, and they are weighted separately. Friction signals — retry spirals, error rates above your own normal, prompts collapsing into fragments — spike when something is going wrong. Dose signals accumulate whether or not anything is wrong: hours actually spent in Claude today (idle gaps of fifteen minutes or more are not counted), minutes since your last real break, how fast you are prompting against your own baseline, how many separate codebases you are holding at once, and how many days you have run without a lighter one. Enough dose on its own is enough to earn an offer — an eight-hour day, most of it unbroken, does not need to have gone badly to have cost you something.
Yes, through the skill. The Claude in Chrome side panel now runs as a Cowork session, so the skills you have saved are available in the browser with nothing extra to set up — add tempo.skill once and it rides along in chat, Cowork and Chrome. What Chrome cannot give you is the measured version: the statusline glyph, the load index and your local data story all depend on Claude Code's hook system, which browsers have no equivalent for. In Chrome, Tempo is Claude watching the shape of the conversation; in Claude Code, it is instrumented.
No. There is no network call anywhere in Tempo's codebase — no account, no telemetry, no server. It writes derived signals (word counts, error flags, salted hashes) to a plain-text file on your own machine at ~/.tempo/events.jsonl, and never stores prompt text, file contents, paths, or command strings.
No. Tempo's hooks always exit 0, and it only ever speaks in a seam — after a turn has completed, when nothing is running. No modals, no stolen turns, at most two offers a day, and a single decline silences it for the rest of the session.
macOS or Linux (or Windows via WSL), Python 3, and Claude Code for the measured version. The Claude chat, Cowork and Chrome version is a single skill file with no requirements at all.
It downloads Tempo's bundle to ~/.tempo, backs up your existing ~/.claude/settings.json with a timestamp, then merges in the hooks and a statusline. If you already have a statusline it is neither discarded nor silently skipped: your command is saved to ~/.tempo/wrapped.json and runs first, unmodified, with the glyph appended after it. You can read the whole script at trytempo.net/install before you run it.
Tempo is free while it is in beta, and the core — the statusline, the load scoring, the resets and your local data story — stays free. Paid tiers are being considered, but neither the price nor what they would contain is settled; the pricing section is where you can weigh in on both.
Pause it with rm ~/.tempo/enabled. Remove it with rm -rf ~/.tempo — that is a complete erasure, because everything Tempo ever recorded lives in that one folder.
Not yet. Tempo is built on Claude Code's hook system and Claude's skills, so today it covers Claude Code, Claude chat, Cowork and Claude in Chrome.
Tempo exists because of an argument, and the argument is written down. Two kinds of writing: what a long agentic session does to a person, and how the machinery under Claude Code actually works — since that is what Tempo is built out of.
Agentic coding removed the compiles, the waits and the walls that used to break up a day, and shifted the work from producing to judging. Why a productive day can leave you emptier than an unproductive one.
Three retries on the same test in nine minutes is not persistence. It is a state with a measurable signature and an exit that feels like losing — which is why nobody takes it.
Not meditation, not a wellness break, no streaks. The five families of practice, three you can do at your desk right now, and why the length is the whole design.
How statusLine works, what the payload gives you, what earns a place on
one line — and how to add to a statusline you already have instead of clobbering it.
Every event and what it is for, why exit code 2 will ruin your afternoon, and the pattern for observing a session without ever interrupting it.
No newsletter and no popup. If something in there is useful, it is useful on its own.
Two minutes. Every submission gets read by a human (Pen).