Codexalgia

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.

Install

Requires Python 3.9 or newer, Google Chrome and Codex CLI.

git clone https://github.com/Tpojka/codexalgia.git
cd codexalgia
./install.sh

Choose 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)

  1. Open chrome://extensions and turn on Developer mode.
  2. Click Load unpacked and pick the extension folder the installer printed.
  3. Pin Codexalgia to the toolbar.
  4. Restart any running Codex sessions, then type /hooks in 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.

WhenTitleText
Codex finishes a turnCodex is ready · projectThe first line of Codex's last answer
Codex asks for approvalCodex needs you · projectThe 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 on

On Windows, use py -3 instead of python3.

Or use your OS settings

OSWhere
macOSSystem Settings → Notifications → Script Editor
Ubuntu (GNOME)Settings → Sound → System Sounds, or Notifications → Do Not Disturb
WindowsSettings → 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 icon

Which Codex events it listens to

Codex eventHipNotification
UserPromptSubmit, PreToolUse, PostToolUsehurtsnone
PermissionRequestrelaxes after 5 s, if still waitingCodex needs you, after 5 s, if still waiting
StoprelaxesCodex is ready
Interrupt (Esc)relaxesnone
SessionStart, SessionEndadds or removes the sessionnone

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.