When you step away from your keyboard, Codex or Claude can get blocked waiting for
approval/input and your flow stalls. AgentNotifier sends those moments to your phone
(and optionally macOS) through ntfy, so you can return only when needed.
It covers action-needed, finished, and failed events for both tools.
Codex integration is macOS-only. Claude integration works on macOS and Linux.
If pipx is missing, install it first:
python3 -m pip install --user pipx
python3 -m pipx ensurepathThen restart your shell and run:
pipx install "git+https://github.com/almuqrin/agentnotifier.git@v0.1.1"
agentnotifier claude
agentnotifier testExpected result:
- Setup prints a
subscribe on phone/mac:URL. - After you subscribe in the
ntfyapp,agentnotifier testsends a test notification.
If you use Codex on macOS, also run:
agentnotifier codex- You use Codex or Claude Code daily.
- You leave your keyboard often and miss prompts.
- You want simple push notifications without a heavy integration.
- You need a fully managed hosted service.
- You need guaranteed long-term support.
- You do not want to install and configure
ntfy.
- Codex:
needs approval,needs input,finished,failed - Claude: action-needed
Notification, plusStopandSubagentStop - Delivery:
ntfypush plus optional local macOS notifications
agentnotifier claude
agentnotifier codex # macOS only
agentnotifier remove claude
agentnotifier remove codex # macOS only
agentnotifier test
agentnotifier doctoragentnotifier doctor runs local diagnostics for config, hooks, and platform-specific setup.
- Python
3.10+ ntfyapp on phone and/or macOS- macOS for Codex daemon management and local desktop notifications
- Recommended for daily use (installed command on your PATH):
python3 -m pip install --user pipx
python3 -m pipx ensurepath
# restart your shell
pipx install "git+https://github.com/almuqrin/agentnotifier.git@v0.1.1"- The
pipx run --spec ...method above is best for quick trials.
- Config:
~/.config/agentnotifier/config.json - Codex daemon state:
~/.local/state/agentnotifier/codex_state.json - Claude settings touched by install/remove:
~/.claude/settings.json - Optional token environment variable:
NTFY_TOKEN
To rotate the generated topic, remove ~/.config/agentnotifier/config.json and run
agentnotifier claude (or agentnotifier codex) again.
python3 -m pip install --user pipxThen use python3 -m pipx ... commands directly, or run python3 -m pipx ensurepath
and restart your terminal if you want the pipx command on PATH.
- Confirm you subscribed to the exact URL shown by setup.
- Run
agentnotifier testand verify network access to yourntfyserver. - Run
agentnotifier doctorand fix anyFAILresults.
- Confirm notifications are enabled for your terminal app.
- Confirm
osascriptexists on your system. - Run
agentnotifier doctorto validate local notification prerequisites.
- Re-run
agentnotifier codexand check the printedPlist:path. - If
~/Library/LaunchAgentsis not writable, AgentNotifier automatically falls back to~/.local/state/agentnotifier/com.agentnotifier.codex.plist. - Check service status:
launchctl print gui/$UID/com.agentnotifier.codex
- On python.org macOS builds, run
Install Certificates.command. - Or install
certifiand setSSL_CERT_FILE="$(python -m certifi)", then retry.
- Re-run
agentnotifier claude. - Check
~/.claude/settings.jsonfor command hooks onNotification,Stop, andSubagentStop. - Run
agentnotifier doctorto confirm managed Claude hooks are present.
python3 -m venv .venv
. .venv/bin/activate
python -m pip install -e ".[dev]"
python -m ruff check .
python -m ruff format --check .
python -m pytestThis is a vibecoded, AI-generated personal workflow project shared as-is. Changes are usually accepted based on working behavior rather than line-by-line review. There is no telemetry.
See AI_DISCLOSURE.md for details.
- Report bugs through GitHub Issues.
- Report security concerns through private GitHub contact.
- Release history:
CHANGELOG.md
MIT