Skip to main content

macOS menu bar widget for Codex weekly limit burn rate.

Project description

CodexLimit

CodexLimit is a macOS menu bar widget that reads local Codex session logs and shows the weekly non-Spark Codex limit burn rate as a status item title.

The app does not call a network API. It reads CODEX_HOME or ~/.codex/sessions, records samples in:

~/Library/Application Support/CodexLimit/samples.jsonl

Install for Development

python3 -m venv .venv
. .venv/bin/activate
python -m pip install -e ".[packaging]"

Install from PyPI

pip install "codex-limit[app]"
codex-limit-install --user

That builds CodexLimit.app, installs it to ~/Applications, and launches it. Use codex-limit-install --system to install to /Applications.

You can also run it directly as a Python menu-bar process:

codex-limit

Run

python -m codex_limit

Click the menu bar title to open the graph popover. The title is the current burn multiple, where 1.0x means weekly quota is being consumed at the real-time replenishment pace.

The burn multiple averages weekly-limit usage over the shorter of the last two hours or the current 5% burst. A large single update uses the full observed jump over the time since the previous sample, capped at two hours, so bursts are visible without letting old activity keep the title artificially high. If Codex has not written a newer rate-limit event by the next poll, CodexLimit records a flat sample at the poll time with the same usage percent so idle time counts as no additional usage.

Build a macOS App Bundle

python setup.py py2app
open dist/CodexLimit.app

The bundle is configured as a menu-bar-only accessory app and should not show a Dock icon. The app icon is generated from assets/CodexLimit.icns.

Install Locally

scripts/install.sh

The installer builds dist/CodexLimit.app, stops any running copy, installs to /Applications when writable or ~/Applications otherwise, and launches the app. Use scripts/install.sh --user to force ~/Applications, or scripts/install.sh --no-open to install without launching.

Test

python -m unittest discover -s tests

Release

Publishing uses the same trusted-publishing workflow as codexapi: create a GitHub release or push a v* tag, and .github/workflows/publish.yml builds and publishes the package to PyPI.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

codex_limit-0.1.5.tar.gz (3.8 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

codex_limit-0.1.5-py3-none-any.whl (1.6 MB view details)

Uploaded Python 3

File details

Details for the file codex_limit-0.1.5.tar.gz.

File metadata

  • Download URL: codex_limit-0.1.5.tar.gz
  • Upload date:
  • Size: 3.8 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for codex_limit-0.1.5.tar.gz
Algorithm Hash digest
SHA256 6f310c548dc9f3fb3accf0698051df69758bc93e8d757db260cd2b34bfb79eaf
MD5 692b24a5471fe9f2d839f29f7293bef0
BLAKE2b-256 c6ba20955a20529f34c75118102a9576d82c2104f573a2c6569beb62fb1a58c0

See more details on using hashes here.

File details

Details for the file codex_limit-0.1.5-py3-none-any.whl.

File metadata

  • Download URL: codex_limit-0.1.5-py3-none-any.whl
  • Upload date:
  • Size: 1.6 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for codex_limit-0.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 00e0a6b89f76dd7423dba7a0426639c5fff3203c88c6bc728bb813d35c850984
MD5 4aff98b5a685dc856e157b623c4fd2e4
BLAKE2b-256 e302bc5308450dd5e626165cee744250a3f054d25224d385d7bf294bc1f83796

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page