One honest number.
α·task + β·switching + γ·duration + δ·vitals, fused into a single load score. When the camera isn't confident, the weights redistribute — and the gauge says so instead of pretending.
[ COGNITIVE LOAD — GRADED, NEVER GAMED ]You recompile your code. Never yourself.
It watches your vitals through the webcam and your work through the commits, fuses both into one honest load score — and only ever speaks at a natural boundary.
Your webcam becomes a contactless vitals monitor — pulse, breathing, HRV — through Presage SmartSpectra. Consented stream by stream, processed locally. Raw video is never stored.
pulse +11 over baseline · 3h 41m without a boundary
same curve as last Tuesday — the one that ended at 1am
drafting: one sentence, direct, zero guilt
already lining up the recovery — a nearby park, the weather
A Sensor digests your telemetry, an Analyst reasons over days of memory through Gemini, a Voice Coach chooses the words, and a Concierge lines up the recovery — while a Companion takes your spoken commands. Five role-threads, one shared memory graph, one load score.
A nudge never lands mid-thought. It holds — tray dot breathing — until a commit, a merged PR, or a green test run says the thought is finished. Step away on your own and it says nothing at all.
Good boundary. Step away — the work will keep.
Sustained risk earns more than advice: a recovery block, written onto your actual Google Calendar with one tap of approval. Undoable for five minutes. Never booked on its own.
α·task + β·switching + γ·duration + δ·vitals, fused into a single load score. When the camera isn't confident, the weights redistribute — and the gauge says so instead of pretending.
[ COGNITIVE LOAD — GRADED, NEVER GAMED ]Load accrues rest debt; only real breaks pay it down — and a break taken at a boundary pays half again as much. The ring doesn't negotiate.
[ REST DEBT · BREAKS · MOOD ]Sessions, commits, context switches, recovered minutes — one honest calendar that shows the shape of the day instead of scoring a streak.
[ SESSIONS · COMMITS · BREAKS ]When the day runs hot enough, Recompile speaks — and listens. The waveform on screen is the actual audio, stick by stick, not a decoration.
[ ELEVENLABS IN · ELEVENLABS OUT ]When flow is real — steady input, no switching, calm pulse — the shield seals: notifications held, nudges silenced. It dissolves the moment you commit.
[ FLOW SHIELD — DISSOLVES AT THE BOUNDARY ]You watch your tests, your types, your diffs — Recompile watches the only runtime you can't restart.
Because the pauses are gone. Compile waits, doc lookups, the walk to a whiteboard — they were never breaks, but they worked like breaks. AI pair programmers erased them, and what's left is a flow state with no exits: hours that feel productive right up until they aren't.
We built Recompile because the tools that created this problem aren't going to solve it. Something has to sit outside the editor, watch the whole day, and know the difference between momentum and freefall.
A timer knows one thing: that time passed. It doesn't know you're forty minutes into finally understanding the bug, and it doesn't know your pulse has been ten beats above baseline since lunch. So it interrupts exactly wrong, gets muted by Wednesday, and uninstalled by Friday.
Recompile earns interruptions. It fuses real vitals with real telemetry — commits, context switches, session shape — and then holds every nudge until a natural boundary: the commit, the merge, the green run. Interrupting at a boundary isn't an interruption. It's punctuation.
Because burnout doesn't happen inside VS Code. An extension sleeps when the editor closes — which is precisely when the story gets interesting. Recompile is a background process with a tray icon: sensing, scoring, and scheduling continue whether the dashboard is open, the editor is open, or neither is.
The editor extension exists — as a thin client. It mirrors the same live state and forwards save-bursts and green test runs. It owns nothing, so closing it changes nothing.
Consent is a control panel, not a checkbox. Every stream — vitals, screen activity, calendar, voice, location — has its own toggle with a visible "on since" date, and nothing senses without a signed-in, consented session. Raw video never leaves your machine because it's never stored anywhere, including on your machine.
The rule holds wherever data moves. Webcam frames are read on-device and discarded frame by frame; your location is resolved inside the background process and never sent; and every cloud call has a local fallback, so the app keeps working — and stays honest — with no network at all.