# Tempo > A load-aware companion for people who work long hours with Claude — chat, Cowork, Claude > in Chrome, or Claude Code. It tracks how long you have actually been in Claude and how > the session is going, reading the shape of the work and never its words. When the pattern > says the person's nervous system has left the building it offers exactly one thing: a > 40-second reset, at a pause, never interrupting the work. Tempo is made by PKJ Coaching. The resets come from the book *The 40-Second Reset*. ## What it does Scores session load from derived signals only, in two families. - **Friction** — something is going wrong. Error rates above the person's own baseline, clusters of retries on the same target, prompts collapsing from sentences into fragments, urgency and profanity markers, subagent churn. These spike and fade. - **Dose** — nothing is going wrong; they have simply been at it a long time. Active minutes in Claude today (idle gaps of 15 minutes or more are not counted), minutes since the last real break, prompt velocity against their own baseline rate, how many separate codebases are in play at once, and consecutive days without a lighter one. These accumulate. Enough dose alone will earn an offer: an eight-hour day, most of it unbroken, does not need to have gone badly to have cost something. - Warms a statusline glyph as load rises: steady (green) → elevated (amber) → depleted (red). Past an hour of engagement the glyph also shows the running total for the day, so a calm dot is visibly a measured calm dot rather than a broken one. - At the depleted threshold, and only in a seam — after a turn completes, when nothing is running — it offers one 40-second nervous-system practice, citing the signal that earned the offer. At most twice a day, with at least 90 minutes between offers. A single decline silences it for the day. - Builds a weekly data story from local logs: best hour, worst hour, and whether resets measurably helped. - `python3 ~/.tempo/doctor.py` verifies every link in the chain — hooks registered, signals arriving, scoring running, offers permitted — and when Tempo is quiet, says why. ## Surfaces - **Claude Code** — the measured version. Hooks, statusline glyph, load index, local data story. Needs Python 3. - **Claude chat, Cowork, and Claude in Chrome** — a single skill file, no requirements. The Chrome side panel runs as a Cowork session, so a saved skill is available in the browser with nothing extra to set up. The glyph and the load index are Claude Code only; browsers have no hook system equivalent. ## Privacy - No network calls anywhere in the codebase. No account, no telemetry, no server. - Never stores prompt text, file contents, paths, command strings, or tool outputs. - Writes derived shapes only, to a readable plain-text file at `~/.tempo/events.jsonl`. - Paths and commands are reduced to per-install salted hashes that are not portable between machines. - `rm -rf ~/.tempo` is a complete erasure. ## Requirements - macOS, Linux, or Windows via WSL. Python 3. - Claude Code for the measured version; Claude chat, Cowork and Claude in Chrome use a skill file with no requirements. ## Pricing Free during the beta. The core — statusline, load scoring, resets, and the local data story — stays free. Paid tiers are under consideration, but neither the prices nor what they would contain is settled, and nothing is on sale. ## Notes and guides Longer writing on the problem and on the machinery Tempo is built from. Free to quote with attribution to Tempo / PKJ Coaching. - [AI coding fatigue: why hour six with Claude feels different](https://trytempo.net/notes/ai-coding-fatigue) — why agentic coding tires people differently: it removed the compiles, waits and walls that used to break up a day, and shifted the work from producing to judging. Explains the dose/friction distinction and what to do at hour six. - [The retry spiral, and how to notice you're in one](https://trytempo.net/notes/retry-spiral) — the measurable signature of clustered retries on a single target (repetition, error rate above your own baseline, prompt collapse, urgency markers) and the exits that work. - [What a 40-second nervous-system reset actually is](https://trytempo.net/notes/40-second-reset) — the five families of practice (breath, grounding, movement, fuel, reframe), three you can do at a desk, and why the length is the design rather than a compromise. - [Building a Claude Code statusline worth looking at](https://trytempo.net/notes/claude-code-statusline) — how the statusLine setting works, the JSON payload on stdin, what earns a place on one line, and the wrapping pattern for composing with an existing statusline. - [Claude Code hooks: the ones that actually matter](https://trytempo.net/notes/claude-code-hooks) — every hook event and what it is for, why exit code 2 is dangerous on Stop, why plain stdout cannot talk to the user, and how to observe a session without interrupting it. ## Links - Landing page: https://trytempo.net/ - One-line install: `curl -fsSL https://trytempo.net/install.sh | bash` - Read the installer before running it: https://trytempo.net/install - Bundle: https://trytempo.net/tempo-beta.zip - Skill file for Claude chat, Cowork and Claude in Chrome: https://trytempo.net/skill - Questions: https://trytempo.net/faq - Notes and guides: https://trytempo.net/notes/ - Press kit and copy-paste blurbs: https://trytempo.net/press - Contact: pen@pkjcoaching.com - The 40-Second Reset: https://pkjcoaching.com/reset