Skip to main content

codex-statusline

See your Codex context and quota at a glance.

tests PyPI License: MIT

English | 简体中文

A status bar for OpenAI Codex CLI. It shows context used, 5-hour and weekly quota left with reset times, and session tokens. You keep running codex exactly as before.

codex-statusline

CTX USED ███░░░░░ 35% | 5h ████████░░ 78% 5:41pm | week ████░░░░░░ 39% Fri 3:41pm | tok 1.2M

Why

  • No more /status interruptions. Quota and context sit in view while you work.
  • Local data only. Never reads auth.json, never calls a quota API, never makes extra model calls. The one network request is a version check against PyPI when codex starts (turn off with update_check = false).
  • Zero new habits. Keep typing codex. codex exec, pipes, and scripts pass straight through to the official binary.
  • Always current. Quota is account-wide, so the freshest reading from any of your local Codex sessions is shown, and the bar flips to 100% the moment a window resets. Unknown shows as --, never a made-up number.
  • Fits any width. Segments collapse, then drop, as the terminal narrows.

Install

Requires macOS or Linux, tmux, and Codex CLI ≥ 0.159.0. Bash, Zsh, and Fish are all detected automatically.

curl -fsSL https://raw.githubusercontent.com/Moviw/codex-statusline/main/install.sh | sh

The script installs uv if needed (uv also fetches Python 3.11+ for you), installs the tool, then shows you the exact shell/hook diff and asks before writing anything.

Prefer to do it yourself:

uv tool install codex-statusline    # or: pipx install codex-statusline
cxbar install                       # add --dry-run to see the plan first

Then open a new terminal and run codex. The first time, Codex asks you to review a hook: confirm it is codex-statusline binding.

Missing tmux? brew install tmux or sudo apt install tmux.

Usage

codex                     # same as always, now with a status bar
codex resume --last
codex exec 'task'         # non-interactive: passed straight through, no bar

cxbar config              # pick segments, theme and colors interactively
cxbar update              # upgrade, whichever way you installed it
cxbar doctor              # check your setup; prints the fix for anything wrong
cxbar uninstall

cxbar is the short name for codex-statusline; both work.

Uninstall removes only what this tool added and still matches exactly. If you edited its block, it stops instead of overwriting. Backups live in ~/.local/share/codex-statusline/.

Configuration

Run cxbar config to set everything up in an interactive screen with a live preview: toggle and reorder segments, switch theme, set the warning thresholds, then press s to save.

  [x] ctx     context used
  [x] 5h      5-hour quota
  [x] week    weekly quota
  [x] tokens  session tokens
> Theme            < auto >
  Quota yellow at  < 20% >
  Quota red at     < 5% >

Preview (sample numbers):
    CTX USED ███░░░░░ 35% | 5h ██░░░░░░░░ 18% 3:46pm | week ██████░░░░ 62% Sat 1:46pm | tok 1.2M

It writes ~/.config/codex-statusline/config.toml, which you can also edit by hand:

segments = ["ctx", "5h", "week", "tokens"]  # pick and reorder
theme = "auto"     # auto (follow terminal) | dark | light
ascii = false      # true for terminals without block glyphs
warn_at = 20       # quota remaining % that turns yellow
crit_at = 5        # quota remaining % that turns red
update_check = true  # show "↑ new version" in the bar when one is out

Invalid values are reported and fall back to defaults.

How it works

codex becomes a small shell function that starts the official CLI inside a private tmux session and draws the bar at the bottom. Data comes from two places only: the terminal title Codex already emits (model, context, thread id), and local Codex session logs: this session's log (pinned by exact path through a SessionStart hook) for context and tokens, plus the most recent local logs for account-wide quota. Only quota and token counters are read, never chat text. The official binary is not replaced or patched, and your tmux config is not touched. Details: docs/architecture.md.

FAQ

How do I scroll or copy? Exactly as in plain Codex: the mouse wheel scrolls the conversation, and text selection works the same way.

Windows? Not supported (tmux).

Is this official? No. It is a third-party tool built on a version-sensitive integration.

Metadata

Release files for codex-statusline 0.3.1

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-statusline 0.3.1
File Size Uploaded
codex_statusline-0.3.1.tar.gz 38.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for codex-statusline 0.3.1
File Interpreter ABI Platform
codex_statusline-0.3.1-py3-none-any.whl Python 3 none any Details

Total release size: 69.1 kB

Release files / codex_statusline-0.3.1.tar.gz

Download URL codex_statusline-0.3.1.tar.gz
Size 38.5 kB
Tags Source
SHA-256 checksum
How to use checksums
4f86f49410dc70b2b5d6dd10227b61370f027b0c358884981bcc8838ded3efe8
BLAKE2b-256 checksum
How to use checksums
a8e9776e2538ca618b6aee7334e96434ef0e96a021bf9eef7471f52ea6337322
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 1, 2026.

Transparency log

Release files / codex_statusline-0.3.1-py3-none-any.whl

Download URL codex_statusline-0.3.1-py3-none-any.whl
Size 30.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d64863275eed21bc463f339dd1f59d9135ed14a9bb505332828271180b38308a
BLAKE2b-256 checksum
How to use checksums
8f1d5443563236fd52975e423a0b14a8b264ae9615d4b23aaca507aab99ac334
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 1, 2026.

Transparency log

Release history Release notifications | RSS feed

0.7.1

2 release files

0.7.0

2 release files

0.6.0

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.2

2 release files

0.4.1

2 release files

0.4.0

2 release files

This release

0.3.1 This release

2 release files

0.3.0

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.1.3

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