Repository navigation
Reset credits
codex-auth now lets you redeem reset credits directly — two ways to do it:
- Interactive: open the reset rail in
codex-auth list --liveand pick a card withj/kand Enter. - One-shot: run
codex-auth reset <account>and get a single line of output.
Available credits and the earliest expiry show up in the list's RESETS column.
Shell completion
codex-auth completion <bash|zsh|fish|pwsh> prints a completion script that fills in subcommands, flags, and a stable alias or email for each account as you type. It takes one manual install step — see Shell Completion in the README for per-shell instructions.
PR: #111 (Thanks, @behnambagheri!)
Daemon-aware switching
codex-auth switch now coordinates the Codex app-server daemon for you (it runs codex app-server daemon restart), so the new credentials take effect with no manual restart. Pass --no-restart-daemon to opt out.
System proxy
API requests follow your OS proxy settings out of the box: Windows WinHTTP and PAC rules, macOS system proxy, and HTTPS_PROXY-style environment variables. No manual env injection needed.
PR: #177
Other notable changes
listgains PLAN EXP and TOKEN EXPIRE columns; columns drop gracefully on narrow terminals, and everything is in--jsontoo.- Scroll the live view with the mouse wheel, on Unix terminals and Windows consoles alike.
codex-auth -accepts--jsonand--no-restart-daemon, same as a query switch.codex-auth appworks offline again by falling back to the cached Codext install, andcodex-auth cleanno longer deletes yourbackup/exports or the managedcodext-cli/directory.- The daemon no longer restarts just because a credential reload is slow.
⚠️ Deprecations
switch -no longer switches to the previous account — usecodex-auth -instead.
Build
- Building from source now requires Zig 0.17.0.
What's Changed
- fix(switch): add explicit daemon restart and stale-auth recovery by @DRanger666 in #164
- refactor(table): unify responsive column allocation across list and live views by @jimbb in #170
- feat: expose credential expiry and reset credits in list output by @zfaustk in #159
- feat: show plan and auth expiry in list output by @Loongphy in #174
- feat(api): honour the platform system proxy for curl requests by @Loongphy in #177
- feat: reset credits panel, reset command, and responsive table layout by @Loongphy in #171
- docs(readme): move api endpoint details to docs/api.md by @Loongphy in #178
- ci: tag-driven prereleases without version-bump commits by @Loongphy in #179
- Migrate to Zig 0.17.0 by @Loongphy in #169
- ci: GitHub-generated release notes (newest-first) by @Loongphy in #180
- docs: keep command docs behavioral, pin output details in tests by @Loongphy in #181
- feat: dynamic shell completion and unified account selectors by @behnambagheri in #111
- tests: name colon-alias scenarios after the value, not the retired NN: form by @Loongphy in #183
- live TUI: first-class mouse wheel (SGR + Windows console) with real-terminal e2e by @Loongphy in #184
- refactor: cover every allocation path with debug-mode leak checks by @Loongphy in #185
- fix: use canonical builtin.optimize and scope allocator rule to src/ by @Loongphy in #186
- fix: restore live TUI on glibc Linux release builds by @Loongphy in #187
- ci: drop stale -j1 serial flag from windows release tests by @Loongphy in #188
- feat: reload daemon credentials on every one-shot switch by @Loongphy in #189
- feat: coordinate the daemon on every switch; add --no-restart-daemon by @Loongphy in #190
- fix: never restart on a slow supported reload by @Loongphy in #191
- chore: remove dead code and stale doc pins by @Loongphy in #192
- fix: emit null reset_credit and backfill access_token_expires_at in merges by @Loongphy in #193
- chore: remove cascading dead code and fix remove refresh docs by @Loongphy in #194
- fix: harden proxy, cleanup, daemon, and import paths from history review by @Loongphy in #195
New Contributors
- @jimbb made their first contribution in #170
- @zfaustk made their first contribution in #159
- @behnambagheri made their first contribution in #111
Full Changelog: v0.3.1...v0.4.0