Your hip hurts while Codex works.
It relaxes when Codex is ready.
A Chrome toolbar button that shows whether Codex CLI is working, with optional desktop notifications. It works on macOS, Ubuntu and Windows.
codexalgia (n.): Codex + -algia, after coxalgia (hip pain). It comes on while Codex works and eases when Codex is ready.
Three states, one glance
Hover over the icon to see how many sessions are working.
Working
Codex is working on a task in at least one session.
Ready
Codex has finished, you pressed Esc, or it's waiting for your approval.
Not connected
The local helper isn't running. Run the installer.
What you get
Small, local, and with no dependencies beyond Python 3.
- Live toolbar statusThe icon changes the moment Codex starts, stops or is interrupted, with no polling delay.
- Every sessionThe hip hurts while any Codex session is working.
- Useful notificationsOptional alerts with the first line of Codex's answer, or the command waiting for your approval. No false alarms for quick calls Codex approves on its own.
- Three platformsmacOS, Ubuntu/Linux and Windows. The installer detects which one you're on.
- Stays out of the wayIt leaves your other Codex hooks alone, and a reinstall keeps the trust you gave in /hooks.
- Fully localNothing leaves your machine. The status goes from Codex hooks to Chrome over native messaging.
Install
Requires Python 3.9 or newer, Google Chrome and Codex CLI.
git clone https://github.com/Tpojka/codexalgia.git
cd codexalgia
./install.shsudo apt install python3 libnotify-bin # notify-send, for the notifier
git clone https://github.com/Tpojka/codexalgia.git
cd codexalgia
./install.shwinget install Python.Python.3.12 # if Python isn't installed
git clone https://github.com/Tpojka/codexalgia.git
cd codexalgia
install.cmdChoose what to install
1) Chrome extension
2) Chrome extension + OS notifier
3) Nothing (exit)
Choose 1, 2 or 3: 2
Play a sound with notifications? [Y/n]:
Finish in Chrome and Codex (once)
- Open
chrome://extensionsand turn on Developer mode. - Click Load unpacked and pick the
extensionfolder the installer printed. - Pin Codexalgia to the toolbar.
- Restart any running Codex sessions, then type
/hooksin Codex and trust the Codexalgia hooks.
Codex doesn't run a hook until you've trusted it, so don't skip the last step. Running the installer again keeps that trust, because it rewrites its hooks in place with the same command.
OS notifier
You get a notification when Codex finishes a turn or needs your approval. The title includes the project name.
| When | Title | Text |
|---|---|---|
| Codex finishes a turn | Codex is ready · project | The first line of Codex's last answer |
| Codex asks for approval | Codex needs you · project | The command it wants to run, or the tool it wants to use |
Codex also asks its hooks about calls it then approves on its own, through its automatic reviewer or an earlier "approve for this session". So "Codex needs you" waits 5 seconds and comes only if Codex is still waiting for you.
Change settings any time
Run these from the repository. They take effect with the next notification, with no restart:
python3 -m codexalgia.install set sound off # silent notifications
python3 -m codexalgia.install set sound on
python3 -m codexalgia.install set notifications off # no notifications at all
python3 -m codexalgia.install set notifications onOn Windows, use py -3 instead of python3.
Or use your OS settings
| OS | Where |
|---|---|
| macOS | System Settings → Notifications → Script Editor |
| Ubuntu (GNOME) | Settings → Sound → System Sounds, or Notifications → Do Not Disturb |
| Windows | Settings → System → Notifications → Windows PowerShell |
How it works
Codex hooks write each session's state. A small local helper sends changes to Chrome.
Codex CLI ──hook──► codexalgia.pyz hook ──► sessions/<id> (busy | ready)
└──────────► desktop notification (optional)
Chrome ──starts──► codexalgia.pyz host
watches sessions/, pushes status on change
│ native messaging
▼
extension swaps the iconWhich Codex events it listens to
| Codex event | Hip | Notification |
|---|---|---|
UserPromptSubmit, PreToolUse, PostToolUse | hurts | none |
PermissionRequest | relaxes after 5 s, if still waiting | Codex needs you, after 5 s, if still waiting |
Stop | relaxes | Codex is ready |
Interrupt (Esc) | relaxes | none |
SessionStart, SessionEnd | adds or removes the session | none |
The hook prints nothing and always exits cleanly, so it never answers an approval prompt for you or keeps Codex from stopping.
It covers Codex CLI. The Codex IDE extension and app share its engine and should work too, but they aren't tested yet. It doesn't cover Codex cloud tasks or ChatGPT.