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

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

Most of what we have written about NotchFit so far has used Claude Code as the example, because that is where the idea started: your MacBook notch expands while the agent works, shows a guided exercise on the left and the agent's live progress on the right, and tells you when it is done or needs permission. But a large share of the people who email us run OpenAI's Codex CLI instead, or alongside Claude Code. This post is for them: how the Codex integration is wired, what you have to do once, what the daily flow looks like, and where the rough edges are.

What NotchFit does with Codex, specifically

NotchFit talks to Codex CLI through two things it installs for you: skills and hooks. The hooks are how the notch learns what Codex is doing. They fire when Codex starts work, finishes, or needs your permission for a tool, and they post that state to the NotchFit app over localhost on your own Mac. The skills are how Codex talks back: the main one is $notchfit-plan, which has Codex write your weekly workout plan.

From the notch's point of view, Codex and Claude Code look the same. A task starts, the panel opens with your next exercise and an updates feed; the agent finishes, and you get a notification; the agent needs permission, and you get a different one. If you keep both agents installed, both feed the same notch.

One-time setup

  1. Install NotchFit. It is a $20 one-time purchase on Whop; you download the signed and notarized DMG from your Whop account, drag NotchFit to Applications and open it. It lives in the menu bar as a small figure icon with no Dock icon, and opens the Setup window the first time.
  2. Click Install / update integrations. This single button adds the Claude Code plugin and the Codex skills and hooks. You do not have to edit any config files by hand, and you can run it again later to update.
  3. Trust the hooks in Codex, once. Codex does not run hooks it has not been told to trust. Open Codex, run /hooks, and approve the NotchFit hooks. This is a one-time step; until you do it, the notch will not see Codex activity, which is the most common "it's not working" cause we hear about.
  4. Test it without a real task. The Setup tab has "Try it" simulate buttons that fake a start, a finish and a permission request so you can see the notch react before you commit to a long run.

The hooks run asynchronously. That is the design decision that keeps the integration honest: Codex never waits for NotchFit, so a slow Mac or a closed NotchFit app cannot slow your agent down.

Let Codex write the plan

Run $notchfit-plan in Codex. It asks about your age, height, weight, fitness level, goal, equipment, days per week, minutes per day and injuries, then writes a weekly plan using only the 239 exercises NotchFit can animate (198 photo animations of real athletes plus roughly 40 illustrated moves). The plan is saved to ~/.notchfit/plan.json and the app picks it up instantly.

Two honest notes. First, this is a workout guide, not medical advice; if you have an injury, say so in the questionnaire and keep the plan conservative. Second, you do not have to involve the agent at all: the app ships with a starter plan and an offline quick-plan generator in its Plan tab, which is what we would suggest for the first week while you find out which movements you will actually do at a desk.

The daily flow with Codex

Give Codex a task that will take a while: a refactor, a test-suite run, a migration. The notch opens with a Start workout card on the left and a live feed of what Codex is doing on the right. Tap Start workout, then work through the set with the rep or time countdown ring and the Done, Skip and Pause controls. Every set begins only when you tap Start set, so the app never springs an exercise on you in the middle of reading a diff.

When Codex finishes, NotchFit notifies you. If that happens mid-set, the notification waits until the set ends, which sounds like a small detail until you have been interrupted at rep eight of ten a few times. Permission requests behave the same way. Optional spoken alerts use on-device macOS voices and can be muted from the notch.

If some days you want the status panel without the exercise, the Hide workout toggle turns the notch into a pure Codex and Claude Code status display. Streaks, a history heatmap and a little confetti on a finished set are there for the days you do want it.

Where it fits next to plain Codex notifications

You can get a "Codex is done" alert without NotchFit; our Codex CLI notifications guide and the post on approval dings cover sounds, desktop notifications and the configuration involved. NotchFit is the right tool when you also want the in-progress view in the notch and a reason to stand up during the wait. It is the wrong tool if you work mostly on an external monitor with the lid closed: the panel is built around the MacBook notch, and although Macs without a notch get a top-centre pill instead, the experience is designed for the built-in display.

Requirements and the fine print

  • macOS 14 or later, Apple Silicon or Intel.
  • Codex CLI (or Claude Code) if you want the progress feed and notifications; the workouts work without either.
  • Local-first: everything runs on your Mac over localhost. No account, no telemetry, no microphone.
  • $20 one-time, lifetime access, no subscription, no trial, no licence key.

Troubleshooting the Codex side

  • The notch never opens when Codex starts. Nine times out of ten the hooks were installed but not trusted. Run /hooks in Codex and approve them, then start a new task.
  • It worked for Claude Code but not Codex. The two integrations are installed by the same button but trusted separately; Claude Code picks up its plugin after a restart of the session, Codex needs the /hooks step.
  • You updated NotchFit. Click Install / update integrations again so the skills and hooks match the app version.
  • Anything else. The NotchFit user guide walks through install, connecting both agents, the plan, notch controls, the command-line tool, troubleshooting, updating and uninstalling.

Related reading

If you are new to the idea of exercising while an agent works, start with turning agent wait time into micro-workouts and the desk exercises for programmers list; everything in both applies unchanged when the agent in question is Codex.

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