Blog · October 6, 2026 · 7 min read · by Vilva Athiban P B

Why NotchFit's Done and Permission Alerts Wait Until Your Set Ends, When That Costs You, and How to Turn the Workout Off

Every notification product, including ours, is built on one idea: tell the developer the instant Claude Code or Codex is done. So it is a little strange that NotchFit, which exists to show you that exact event in your MacBook's notch, deliberately holds the "Claude is done" alert back when it arrives in the middle of a set of squats. This post explains why that delay is the most important design decision in the app, how the daily flow is built around it, where it costs you something, and how to turn the workout side off entirely when you just want a status panel.

What happens when Claude finishes mid-set

The mechanics first. When you give Claude Code or Codex a task, the NotchFit integration (a Claude Code plugin, or Codex skills and hooks, installed with one click from the app's Setup screen) tells the app that a run has started. The notch expands: on the left, a card with your next exercise; on the right, a feed of what the agent is doing. You tap Start set when you are ready, and a countdown ring tracks reps or seconds with Done, Skip and Pause underneath.

If the agent finishes, or stops to ask permission for a tool, while that ring is running, nothing interrupts you. The notification waits until the set ends, then shows, with Claude's summary of what it did. That is the behaviour the landing page sums up in one line: your "Claude is done" alert waits until your set ends. The same applies to the permission prompt: it is queued, not suppressed. You will see it; you will see it when the set ends rather than now.

Why a short delay is the right trade

The argument for interrupting immediately is obvious: the agent is idle and idle agent time is wasted. The argument against is less obvious and, in our experience, stronger.

Abandoned sets do not count. The point of a micro-workout during an agent run is that it actually happens. A set you drop at rep six to go read a diff is a set you did not do, and after a few of those the honest conclusion is that the workout is optional, at which point it stops happening at all. The whole case for desk movement, which we laid out in desk exercises for programmers, rests on short bouts that are completed and repeated, not on good intentions interrupted.

The agent does not mind. A finished run sits there. Claude's summary is still in the feed when your set ends; the permission prompt is still waiting; nothing times out in the time a set takes. The cost of the delay is measured in seconds of agent idle time, and the cost of the interruption is measured in whether you have a movement habit a month from now.

Reading a diff mid-rep is bad for the diff too. You come back to the keyboard out of breath and half-focused, skim the summary, and approve the next step. Finishing the set first means you read the result with your attention actually on it.

The sets start on your terms as well

The waiting alert is one half of a pair. The other half is that every set starts only when you tap Start set; the notch never launches a countdown on its own because an agent run began. That matters for the moments when you cannot move: you are on a call, you are mid-thought, someone is at your desk. The exercise card appears, and you ignore it, and nothing happens. Between sets there are rest timers, and the same rule applies: the next set waits for you.

Together those two rules describe a tool that is opinionated about not interrupting you in either direction: it will not break your set for the agent, and it will not break your work for the set. The earlier post on micro-workouts during Claude Code runs goes into how long a typical agent run leaves for movement; the short version is that most runs are longer than a set, so the alert rarely has to wait anyway.

Where the delay costs you

There are real cases where you want the alert now, and NotchFit is not the right tool for them.

  • You are babysitting a fragile run. If the agent is doing something you expect to go wrong, and you want to catch the first permission prompt instantly, do not start a set. Watch the feed, or use a plain notifier.
  • You run many sessions at once. With four agents in four terminals, one of them finishing mid-set is near certain, and the queue of waiting alerts starts to feel like a backlog. Keep the sets short, or lean on the hide-workout toggle below during those bursts.
  • You want a phone notification. NotchFit lives in the notch and the menu bar of the Mac running the agent. If you leave the desk, that is what phone notifications for Claude Code are for; the two can run side by side.

Turning the workout off: the Hide workout toggle

Some days you do not want to exercise and still want the notch to show the agent. The Hide workout toggle does exactly that: the exercise card goes away and the notch becomes a pure Claude Code and Codex status panel, with the live feed, the done summary and the permission alerts. Nothing is queued behind a set because there is no set. Flip it back when you want the workout again; your plan, your streak and your history are untouched.

The spoken alerts are a separate control. They use on-device macOS voices, never a cloud service, and there is a mute button in the notch for meetings. Muting the voice does not change the waiting rule; it only changes whether the alert is read aloud when it does arrive.

How this fits the rest of the app

The waiting alert, the manual Start set and the rest timers are the reason the streak and heatmap features work at all. A streak of completed sets is only meaningful if sets are completable, and they are only completable if the app refuses to cut them short. The plan that feeds those sets can be written for you by your agent, with /notchfit:plan in Claude Code or $notchfit-plan in Codex, using only the 239 exercises the notch can animate; our /notchfit:plan post covers that interview in detail.

Everything described here runs locally. The plugin's hooks are asynchronous, so Claude never waits on NotchFit; the app talks to them over localhost; there is no account, no telemetry and no microphone. It costs $20 once, on macOS 14 or later, Apple Silicon or Intel, and on a Mac without a notch the panel appears as a top-centre pill instead.

The one-line summary: NotchFit is a notifier that is willing to be a set late so that the thing it interrupts is never you. If that trade sounds wrong for your workflow, the hide-workout toggle makes it an ordinary, immediate status panel, and you have lost nothing by trying.

Keep reading

Desk Exercises for Programmers: 15 Moves to Do While Your AI Agent Codes

7 min read

Exercise While Coding: Turn Claude Code Wait Time Into Micro-Workouts

7 min read

Claude Code Notch Notifications on Mac: See When Claude Is Done Without Watching the Terminal

7 min read

Claude Code Tips and Tricks: 12 Ways to Use Claude Code Effectively

8 min read

Claude Code Multiple Sessions: How to Run Agents in Parallel Without Losing Track

6 min read

A Claude Code Workflow That Doesn't Involve Watching the Terminal

5 min read

Claude Code Hooks: A Practical Guide to Automating Your Agent Workflow

7 min read

Claude Code Auto Mode: Fewer Permission Prompts Without Living Dangerously

7 min read

Claude Code Subagents: How to Delegate Work to Specialized Agents

7 min read

Claude Code Context Management: Treat the Context Window Like a Budget

6 min read

Per-Subagent Model Selection: Route the Grunt Work Down, Keep the Judgment Up Top

7 min read

Skills and Plugins: How to Teach Claude Code Your Way of Working

7 min read

Claude Code Background Tasks: Run Long Commands Without Blocking Your Session

6 min read

Codex CLI Notifications: How to Get a Ding When Codex Is Done or Needs Input

7 min read

Cursor Notification When Done: Every Way to Get Notified When Cursor Finishes

6 min read

Claude Code Notifications: How to Get Notified When Claude Code Finishes or Needs Your Input

6 min read

Want to Be Notified When Claude Responds? How Claude Notifications Work on Web, Desktop, and Mobile

5 min read

Claude Code Notification Scripts: Copy-Paste Recipes for Every Platform

6 min read

Get a Ding the Moment Codex Needs Your Response

6 min read

Get Notified the Moment Claude Code Is Waiting for Your Input

6 min read

“Notifications Are Turned Off for Claude” — Here Is the Fix

6 min read

Codex Sound When Done: Make Codex CLI Play a Sound When It Finishes

6 min read

terminal-notifier + Claude Code: Native macOS Alerts When Your Agent Finishes

6 min read

Gemini CLI Notifications: How to Get a Sound or Alert When Gemini Finishes

6 min read

Get Claude Code Notifications on Your Phone

6 min read

Claude Code Remote Control, Explained

7 min read

preferredNotifChannel: Claude Code's Built-In Notification Setting

6 min read

Claude Code Notifications in tmux and Over SSH

7 min read

Claude Code Effort Levels: Why Your Setting Keeps Getting Ignored

8 min read

Codex vs Claude Code Notifications: How Each One Tells You It Is Done

8 min read

Claude Code Notifications Not Working: A Diagnostic Checklist

10 min read

Claude Code Notifications Inside Your Editor's Terminal

7 min read

CLAUDE_CODE_DISABLE_BACKGROUND_TASKS Explained

7 min read

CLAUDE_CODE_DISABLE_BG_SHELL_PRESSURE_REAP Explained

8 min read

Cursor Alerts Explained: Every Alert Cursor Raises, and How to Control Them

7 min read

Claude Code Environment Variables: The Groups That Actually Matter

10 min read

Claude Code Notifications on WSL and Windows

9 min read

Claude Code Checkpoints and /rewind

8 min read

Claude Remote Control: How It Works, Turning It Off, and Auto Mode

7 min read

Claude Code /loop: Poll a Deploy, Babysit a PR, and Get Told When It's Done

8 min read

Setting Up NotchFit With OpenAI Codex CLI: Hooks, $notchfit-plan, and the Daily Flow

7 min read

Claude Mods Explained: What the New Plugin Layer Can Do, and How to Turn On 'You Should Know'

9 min read

NotchFit vs Mac Break Reminder Apps: A Clock or a Signal From Your Coding Agent?

8 min read

Claude Code Headless Mode: Running claude -p in Scripts and CI, and the Three Signals That It Finished

10 min read

Building a Movement Habit at a Desk: Use the Agent Run as the Cue, One Set as the Unit, and Streaks Carefully

8 min read

Claude Code MCP Servers Explained: Adding Servers, Choosing a Scope, Handling Secrets, and Why Long Tool Calls Go to the Background

10 min read

/notchfit:plan Explained: How Claude Code or Codex Writes a Weekly Workout Plan the Notch Can Actually Run

8 min read

Claude Code Spinner Verbs Explained: What “Pondering” and “Brewing” Mean, How to Change Them, and Why You Should Stop Watching the Spinner

7 min read