
NotchPal puts what Claude Code and Codex are doing right now into the black space above your screen. Not “an agent is running” — the file, the command, the line range, the elapsed time. When nothing is running, it shows nothing at all.
A spinner tells you nothing
Every tool gets its own reading. Reading a file names the file and the line range. Running a command shows the command. Patching shows how many files it touched.
Quiet by default
Compact while working. It expands when a turn starts or ends, when the agent needs permission, or when you hover it — then it gets out of the way.
Both agents, one contract
Claude Code and Codex converged on nearly the same lifecycle hooks, so one decoder serves both. Run either, or both at once.
Nothing leaves your Mac
No network calls of any kind. Events travel over a Unix socket in your Application Support folder, live in memory, and are forgotten when you quit.
Specs
- Agents
- Claude Code and OpenAI Codex — either, or both at once
- Requires
- macOS 26 or later
- Hardware
- Any Mac. Without a notch, the panel floats below the menu bar
- Network
- None. No calls of any kind, ever
- Storage
- None. Events live in memory and are forgotten on quit
- Transport
- A Unix domain socket in Application Support, mode 0600
- Interface
- A menu bar item. No window, no Dock icon, no preferences pane
- Licence
- Source-available — MIT with Commons Clause
Get it
Clone, build, run.
There is no signed release yet, so the fastest route is building it yourself. It takes about a minute, and the app registers its own hooks on first launch.
$ git clone https://github.com/simonveprek/NotchPal.git$ cd NotchPal$ make install
Codex needs hooks switched on
Claude Code runs NotchPal's hooks as soon as they are registered. Codex does not — it deliberately ignores any new or changed hook until you have reviewed exactly what it runs. In the Codex app, open Settings and allow Hooks. In the CLI, run /hooks and trust the NotchPal command. You only do this once.
If you stop an agent yourself, NotchPal cannot tell
Interrupting a turn, quitting the CLI, or closing the terminal fires no hook at all — so nothing reaches NotchPal to say the work ended, and the card keeps counting. Hover the card and click the ✕ to dismiss it. It clears the card, not the agent: hooks only travel one way, so there is no channel back.
If it saves you one alt-tab, star it.
NotchPal is built in the open. A star is the cheapest way to say it was worth building — and it helps other people find it.
