Skip to main content

codex-bell

PyPI Python

Get a beep when OpenAI Codex finishes a task or needs your input.


The problem

Codex runs tasks in the background and goes silent for minutes at a time. You end up tab-switching constantly just to check whether it's done — or you miss the moment it asks for input and the whole session stalls.

codex-bell watches your Codex session logs and fires a system beep the instant something needs your attention.


Install

pip install codex-bell

Then just run:

codex-bell

On first run, codex-bell looks for ~/.codex/sessions (the default path used by the Codex CLI on all platforms). If it can't find it, it will ask you where your sessions are and save the answer so you never have to type it again.


Usage

codex-bell [--path PATH] [--interval SECONDS] [--reconfigure] [--verbose]
Flag Description
--path PATH One-off override for the sessions directory
--interval N Polling interval in seconds (default: 2)
--reconfigure Forget saved path and prompt again
--verbose, -v Print every event seen in logs (useful for finding undetected prompt types)

How it works

  1. Tails .jsonl files under your Codex sessions directory by tracking byte offsets — only new content is read on each poll.
  2. Detects five events: task_complete, request_user_input, require_escalated, apply_patch_approval, and exec_approval_request.
  3. Fires a beep using the best available method for your OS (see table below).

Compatibility

OS Beep method
Windows winsound.Beep (built-in)
macOS afplay /System/Library/Sounds/Glass.aiff
Linux paplay → aplay → ANSI terminal bell (fallback chain)
Other ANSI terminal bell (\a)

No external dependencies. Pure Python standard library + subprocess.


Why I built it

I was running long Codex sessions and kept missing the moment they finished — or the moment Codex stopped and waited for me. A proper notification felt like too much; I just wanted a beep. Spent an afternoon turning a quick winsound hack into something cross-platform and pip-installable.


Design note: polling vs. filesystem events

codex-bell polls every 2 seconds instead of using filesystem event APIs (like inotify on Linux or FSEvents on macOS). This was intentional:

  • Zero dependencies — no C extensions, no watchdog, no install pain.
  • Dead simple — one timer loop, easy to reason about.
  • Good enough — 2-second latency is imperceptible for "your agent finished a multi-minute task."

If you need sub-second reaction time, swap the loop in watcher.py for watchdog. For the use case this tool was built for, polling is the right call.


License

MIT © Kevin Defalco

Metadata

Release files for codex-bell 0.1.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for codex-bell 0.1.3
File Size Uploaded
codex_bell-0.1.3.tar.gz 8.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for codex-bell 0.1.3
File Interpreter ABI Platform
codex_bell-0.1.3-py3-none-any.whl Python 3 none any Details

Total release size: 16.2 kB

Release files / codex_bell-0.1.3.tar.gz

Download URL codex_bell-0.1.3.tar.gz
Size 8.2 kB
Tags Source
SHA-256 checksum
How to use checksums
3ba3779971fa1073e08f0c751113775d2889c865f7c0a4809ed4737f10cff856
BLAKE2b-256 checksum
How to use checksums
49db3623982c4a6a8b7ca821d58e77a39422baebbe4ea491439eac290245c0e5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.0

Release files / codex_bell-0.1.3-py3-none-any.whl

Download URL codex_bell-0.1.3-py3-none-any.whl
Size 8.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e26c7bf11c8afc28307092dce035e4eb235d6fd05af2fe2f54623ee47e8bad53
BLAKE2b-256 checksum
How to use checksums
8090404d168086cb0c1615e50330bea9d91613a98caf5303f7f524a2897de8d2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.0

Release history Release notifications | RSS feed

This release

0.1.3 This release

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page