Release notes

FEATURE

Codex status line now shows branch and token use

After several rounds in your terminal, you may want to know both your Git branch and how many tokens this session has used. Codex's status line now adds git-branch and used-tokens, taking the segment list in its config from five to seven. Think of it as a car dashboard: those readings can sit together, but only Codex's built-in gauges fit. Unlike Claude Code, it has no command hook, so Codex controls wording, colors, and the · separator; it cannot show a progress bar or reset countdown. The 5h reading stays hidden until Codex has a rate-limit snapshot that contains a five-hour window.

FEATURE

Status-line upgrades and removal preserve your original setup

If you installed a Codex status line with usage before, then upgrade or remove it, an older usage list should not masquerade as the status line you originally configured. Usage now recognizes every segment set it has shipped. It upgrades an older set in place instead of backing it up as yours, and leaves an existing backup alone. Removal accepts those older sets too; restoring still writes recovered settings before deleting the backup. At startup, usage also upgrades old sets automatically, but matches only sets it shipped, leaving both your custom line and a current set untouched. It is like a locker attendant who recognizes an old store label and replaces it without mistaking it for your personal property.

BUGFIX

Tests no longer touch a developer's real Codex settings

When a developer runs the full test suite, their own ~/.codex/config.toml should never become test material. Startup self-healing read that real file, but tests did not override its path. A test run could therefore rewrite a developer's Codex configuration, while an unrelated assertion about the self-heal log also depended on that machine's state. An autouse fixture (shared setup applied before every test) now points the Codex config and both backup paths to a temporary directory, matching the already-isolated log directory. It is like a stage rehearsal no longer borrowing switches from the real control room: every experiment affects only temporary scenery.

Original changelog

Original changelogCodex status line now shows branch and token use
**Codex's status line now shows the Git branch and the session's token count.** The segment set usage writes into `~/.codex/config.toml` grew from five entries to seven, adding `git-branch` and `used-tokens`, so a session reads `usage · main · 5h 39% left · weekly 50% left · Context 95% left · 12.3K used · gpt-5.6-sol high`. Codex's status line accepts only its own built-in segments — there is no command hook like Claude Code's, which is why the wording, the colors and the ` · ` separator are Codex's own and why a progress bar or a reset countdown cannot be rendered on that side. The `5h` segment is omitted until Codex holds a rate-limit snapshot that actually contains a five-hour window.
Original changelogStatus-line upgrades and removal preserve your original setup
**Upgrading the segments no longer files usage's own older set as your original status line.** `_setup_codex()` backed up whatever it found before overwriting, which was correct for a status line you configured yourself but wrong for one an earlier version of usage installed: changing the segment set would have written the previous usage-installed list into `~/.codex/usage-backup.json`, and a later removal would have "restored" that instead of your real configuration — silently overwriting the only copy of it. Segment sets that usage has shipped are now recognized as its own and upgraded in place, leaving any existing backup untouched.
**Removing the Codex status line works on installs still holding an older segment set.** The removal path required an exact match against the current segments, so anyone who had not re-run setup was told the status line was not usage's and nothing happened. Every set usage has shipped is now accepted; the restore sequence itself is unchanged, including writing the recovered configuration before deleting the backup.
**The new segments apply without pressing anything.** Startup self-healing upgrades a status line that still holds a set from an earlier version of usage. It only ever matches those sets — a status line you configured yourself, and one already on the current set, are both left alone.
Original changelogTests no longer touch a developer's real Codex settings
**Tests can no longer reach the real `~/.codex/config.toml`.** The self-healing path above reads that file, and no test overrode the path constant, so a full test run on a developer's machine rewrote their own Codex configuration and made an unrelated assertion about the self-heal log depend on the state of that machine. An autouse fixture now points the Codex configuration and both backup paths at a temporary directory, matching how the log directory is already isolated.