Skip to content

Releases: huynextlevel/notchmon

Release list

v0.2.0

Choose a tag to compare

@huynextlevel huynextlevel released this 11 Sep 15:02

notchmon has always answered "how much quota is left, and what did today cost". It now also answers "how long have I been sitting here" — and, because it is the only thing on the machine that knows both, "what did those hours spend".

Time at the desk

Presence is sensed, not assumed, and with no permission prompt of any kind — no Accessibility, no Screen Recording, no Full Disk Access. It reads how long the keyboard and mouse have been idle, whether the screen is locked, and whether the display is even awake. An agent working buys you a longer think before you count as gone.

Each tick is treated as evidence that somebody was there rather than as a span to be measured, and a gap between ticks is an absence whether or not the machine said it was sleeping — which is what stops a lid closed overnight from reading as a nine-hour sit.

The new Time tab draws today by clock hour, then a bar per day over 7 or 30, then a weekday-by-hour grid for the question a month of data is actually for: which hours of which days the work happens in. Hover anything for the figure. Underneath: longest unbroken stretch, how many separate sits, first at the desk, last seen. The strip carries the same figure all day, so the third hour is not a surprise at the end of it.

Break reminders

Thirteen pixel sprites on the same 11×11 grid as everything else in the notch — coffee, water, a snack, a walk, a stretch, an eye, a book, a handheld.

The interval follows the evidence and the cost of the interruption follows the risk. Thirty minutes changes the mark on the strip and opens nothing. Sixty and ninety open the notch itself for half a minute. Two hours drops the panel once, onto the Time tab — a panel that opens by itself should show its evidence. Five minutes away resets all of it.

Those numbers are not taste. Five minutes of walking every 30 was the only pattern that moved both blood pressure and post-meal glucose in Diaz's 2023 trial; the 2015 sedentary office statement asks for a change of posture on the same half hour; Directive 90/270 requires screen work to be broken up and the working benchmark is 5–10 minutes away every 50–60; and breaks of ten minutes or less were enough to cut fatigue across the 22 studies in Albulescu's 2022 meta-analysis. Pomodoro's 25/5 and the 52/17 rule were read and deliberately not used.

Also new: a block that ended is summarised when you come back, not when you leave — writing it at the end would be writing it to an empty chair. A figure for the day if you set one, off by default, because a number the app chose would be the app having an opinion about your working day. And it stands down while the microphone is in use, which is the only "bad moment" macOS will report without being asked for a permission.

One switch in Settings turns all of it off, and it is on by default. It changes nothing else: the Time tab still counts and the strip still says how long you have been sitting. Measuring and interrupting are two different consents, and only the second one is annoying.

Hours by project

The scan knows what was spent and the presence clock knows who was there. Only together do they say what an hour of work cost, and the Projects tab now says it.

It needs no new permission and no new watcher: every client puts the workspace in or beside the session file the app already watches. A tick with no agent writing anywhere is left unattributed rather than filed under a guess, which is why the parts never sum to the day.

And two CSVs, so ninety days of your own time can leave the app that recorded it.

Fixed

  • A project worked on by two agents showed as two rows, each wearing one agent's mark and reporting a fraction of the work. Claude and Codex spell the same directory differently — -Users-you-code-thing against /Users/you/code/thing — and the fold was keyed by the label those spellings produce. It is keyed by the path now.
  • Worktree merging gave up for the whole session on its first timeout. That timeout lands at launch, against a cold cache; warm, it answers in about a second. It backs off for ten minutes instead.

Install

Download the .dmg, open it, drag notchmon to Applications. Signed with a Developer ID certificate and notarised by Apple, so it opens with a double-click — no right-click-Open, no Gatekeeper warning.

macOS 14 or later, on a MacBook with a notch. Universal: Apple silicon and Intel, and so is the tokscale binary inside it.

An installed 0.1.1 will offer this as an update on its own.

Notes

  • The clock starts when you install it. There is no desk-time history before that, and none can be reconstructed — nothing was recording.
  • notchmon is now MIT licensed.