Your day,
written down.
A small window in the corner of your screen that knows what you worked on, for how long, and why. Nothing leaves your machine.
- no account
- no server
- no telemetry
- no screenshots
- no keylogging
- no cloud model by default
- LAUNCH-241 landing page copy
- Q3 launch brief
- calls
- loose time
7h38m focused · 45m loose · 40m away · 12 switches. One Thursday, sorted while it was still happening. Hover a block.
The day, as it happened.
Every stretch of focus lands in the feed the moment it ends, with the task it belongs to and the reason. Drag the window out and the day runs in lanes, with any task open beside it.
The week, added up.
Deep work, longest block, switches, the hour that fragments, and how it compares with last week. Every task grouped by project with its share of the hours. Nothing to fill in.
How it works
One morning, from the first window to the standup line. Same data at every step.
-
Sees
Which window is in front, and when you step away. App name and title; no keystrokes, no screenshots, no clipboard.
Calls, calendar, ticket keys, the folder a terminal is in: noted beside each stretch. Five minutes away closes the batch.
focus events · one batch 09:02:14 focus Chrome Q3 launch brief – Google Docs 09:31:40 focus Slack #launch-planning 09:40:00 meeting Launch sync · calendar · 09:40–10:15 09:40:11 call microphone on 10:12:22 focus Chrome LAUNCH-241 Landing page copy – Jira anchor item LAUNCH-241 10:40:10 focus Figma Landing page v2 11:20:00 away 5m · batch closed · 5 spans -
Places
Every minute, plain rules: a ticket key in a branch or a tab, the project folder, a window you filed before. Provisional, marked to confirm.
When the batch closes, the local model reads a short digest and places the rest. Eight blocks at most, about two minutes on a laptop CPU.
rules, then the model rules 10:12–10:40 LAUNCH-241 landing page copy title has LAUNCH-241 · 0.50 · to confirm model 09:02–09:31 Q3 launch brief 0.90 09:31–10:12 launch sync · Q3 launch 0.85 10:12–11:15 LAUNCH-241 landing page copy 0.90 stored 3 blocks · replaces 1 provisional row -
Learns
It will be wrong sometimes. Rename, move or throw out a block; the correction is kept with the window it was made in and read first next time. Thrown out is a hard no.
Loose time folds into runs you file in one go, task pre-filled. Once a day, slivers tidy into their neighbours; one undo.
organize · unassigned time
-
Writes
Standup, timeline, task cards, reports, chat. One table; nothing worked out twice, nothing stored anywhere else.
same rows, four ways standup Yesterday: landing page copy and the launch brief (LAUNCH-241, 2h13m) · launch sync (32m) timeline 09:02 ──────────────── 11:15 Q3 launch report Q3 launch · LAUNCH-241 · 2.2 h chat "what did I do before the launch sync?" → same rows -
Shows its work
Settings keeps the pipeline in view: the model loaded, the worker, batches waiting, the last batch with its tokens. Two buttons: the digest the model read, the answer it gave.
settings › derivation
-
Your own key, if you want
Local until you paste an API key. Then pick what goes out: writing and chat, or everything. Two dollars a day, then local. The key sits in one file only you can read.
Storage & server keeps one line that says what left the machine today. With no key it ends in “nothing else”.
settings › model