CLI tool to track OpenAI Codex usage with multi-account support
Project description
codex-usage
CLI tool to track OpenAI Codex usage with multi-account support and automatic account cycling.
Features
- Usage Tracking: Check 5-hour and weekly usage limits for Codex CLI accounts
- Multi-Account Management: Add, switch, remove, and list multiple Codex accounts
- Automatic Cycling: Automatically switch accounts when usage limits are exhausted
- Multiple Output Formats: Table, JSON, and compact oneline formats
- Caching: 5-minute cache to reduce API calls
Installation
macOS
# Using Homebrew (coming soon)
brew install Liam-Deacon/tap/codex-usage
Linux
# Download from releases
curl -L https://github.com/Liam-Deacon/codex-usage/releases/latest/download/codex-usage-x86_64-unknown-linux-gnu -o codex-usage
chmod +x codex-usage
sudo mv codex-usage /usr/local/bin/
Windows
# Using Scoop (coming soon)
scoop bucket add Liam-Deacon https://github.com/Liam-Deacon/scoop-bucket
scoop install codex-usage
Node.js (npx / bunx)
npx codex-usage-cli --help
bunx codex-usage-cli --help
Python (uvx)
uvx codex-usage --help
Docker
docker pull ghcr.io/liam-deacon/codex-usage:latest
docker run --rm ghcr.io/liam-deacon/codex-usage:latest --help
Build from Source
cargo build --release
sudo cp target/release/codex-usage /usr/local/bin/
Quick Start
-
Login to Codex (if not already):
codex login -
Add your account:
codex-usage accounts add myaccount
-
Check usage:
codex-usage status
Usage
Check Usage
# Check active account usage
codex-usage status
# Check all connected accounts
codex-usage status --all
# Output as JSON
codex-usage status --json
# Compact oneline output
codex-usage status --oneline
# Force refresh (skip cache)
codex-usage status --refresh
Account Management
# List all connected accounts
codex-usage accounts list
# Add current Codex auth as new account
codex-usage accounts add myaccount
# Switch to another account
codex-usage accounts switch myaccount
# Switch with force (override safety check)
codex-usage accounts switch myaccount --force
# Remove an account
codex-usage accounts remove myaccount
Automatic Cycling
Configure automatic account switching when usage limits are exhausted:
# Show cycle status
codex-usage cycle status
# Configure thresholds
codex-usage cycle config --five-hour 0 --weekly 10 --mode or
# Enable cycling
codex-usage cycle enable
# Disable cycling
codex-usage cycle disable
# Manually trigger cycle check
codex-usage cycle now
# View cycle history
codex-usage cycle history
# Reorder accounts in cycle
codex-usage cycle reorder account1 account2 account3
Wakeup
Trigger Codex to utilize daily/weekly limits:
# Run wakeup now
codex-usage wakeup --run
# Run wakeup for specific account
codex-usage wakeup --run --account myaccount
# Force wake even if Codex is running
codex-usage wakeup --run --force
# Install wakeup schedule (e.g., daily at 8am and 2pm)
codex-usage wakeup install --at 08:00 --at 14:00
# Install with interval between --at times
codex-usage wakeup install --at 08:00 --interval 1h
# List current wakeup schedules
codex-usage wakeup list
# Remove wakeup schedule
codex-usage wakeup remove
# Attempt to wake system from sleep (macOS)
codex-usage wakeup --run --wake-system
Watch
Continuously monitor usage with live updates:
# Watch active account (default 10s interval)
codex-usage watch
# Watch with custom interval
codex-usage watch --interval 30s
# Watch all accounts
codex-usage watch --all
# Force refresh on each poll (skip cache)
codex-usage watch --refresh
History
Track and analyze usage over time:
# Manage background recording daemon
codex-usage history daemon start --interval 5m
codex-usage history daemon stop
codex-usage history daemon status
# Show usage history
codex-usage history show
codex-usage history show --period week
codex-usage history show --from 2025-01-01 --to 2025-01-31
codex-usage history show --account myaccount
# Show terminal bar chart
codex-usage history chart
codex-usage history chart account1 account2
# Show allowance analysis
codex-usage history allowance
codex-usage history allowance --projected
codex-usage history allowance --dead-time
# Configure notifications
codex-usage history notify --enable
codex-usage history notify --disable
codex-usage history notify --hours-before 2
codex-usage history notify --status
# Export history data
codex-usage history export
codex-usage history export --output usage.json
codex-usage history export --period month --format json
Configuration
Config Directory
Default: ~/.codex-usage/
Override with:
codex-usage --config-dir /path/to/config status
Or set environment variable:
export CODEX_USAGE_DIR=/path/to/config
Files
config.json- Main configurationaccounts/- Stored account auth filescycle.json- Cycle configurationcycle_history.jsonl- Cycle historyusage_cache.json- Usage data cachewakeup.json- Wakeup configuration
Environment Variables
| Variable | Description |
|---|---|
CODEX_USAGE_DIR |
Override config directory |
CODEX_USAGE_VERBOSE |
Enable verbose logging |
License
MIT License - see LICENSE file.
Related
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file codex_usage-0.1.16.tar.gz.
File metadata
- Download URL: codex_usage-0.1.16.tar.gz
- Upload date:
- Size: 80.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cacf48623226e1ef72850c7fbf38ba632a64714278ce4f747e66bd7867f00553
|
|
| MD5 |
9ccf8ab70b3a1815eda49340a3cbc3ce
|
|
| BLAKE2b-256 |
2bfdceddfdcf5568dd54a826fd63709bdb49481189f74623c3e4259f4175fea4
|
Provenance
The following attestation bundles were made for codex_usage-0.1.16.tar.gz:
Publisher:
pypi.yaml on Liam-Deacon/codex-usage
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
codex_usage-0.1.16.tar.gz -
Subject digest:
cacf48623226e1ef72850c7fbf38ba632a64714278ce4f747e66bd7867f00553 - Sigstore transparency entry: 954524616
- Sigstore integration time:
-
Permalink:
Liam-Deacon/codex-usage@2575d25b1e13a79bc207bf7c7ab31605183b1d48 -
Branch / Tag:
refs/tags/v0.1.16 - Owner: https://github.com/Liam-Deacon
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi.yaml@2575d25b1e13a79bc207bf7c7ab31605183b1d48 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file codex_usage-0.1.16-cp38-abi3-win_amd64.whl.
File metadata
- Download URL: codex_usage-0.1.16-cp38-abi3-win_amd64.whl
- Upload date:
- Size: 2.6 MB
- Tags: CPython 3.8+, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
856a5e3330cb76414b79bca6fe94eb70dd1eeb7d1574e9c4e5fe2636530f9a5b
|
|
| MD5 |
5a75790f57ebfa7f2395171df79a4cfd
|
|
| BLAKE2b-256 |
69e4a8a87c37f3465780632bd24b8e645284c7cc0557c482c5823f8bd6756e3d
|
Provenance
The following attestation bundles were made for codex_usage-0.1.16-cp38-abi3-win_amd64.whl:
Publisher:
pypi.yaml on Liam-Deacon/codex-usage
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
codex_usage-0.1.16-cp38-abi3-win_amd64.whl -
Subject digest:
856a5e3330cb76414b79bca6fe94eb70dd1eeb7d1574e9c4e5fe2636530f9a5b - Sigstore transparency entry: 954524632
- Sigstore integration time:
-
Permalink:
Liam-Deacon/codex-usage@2575d25b1e13a79bc207bf7c7ab31605183b1d48 -
Branch / Tag:
refs/tags/v0.1.16 - Owner: https://github.com/Liam-Deacon
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi.yaml@2575d25b1e13a79bc207bf7c7ab31605183b1d48 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file codex_usage-0.1.16-cp38-abi3-manylinux_2_39_x86_64.whl.
File metadata
- Download URL: codex_usage-0.1.16-cp38-abi3-manylinux_2_39_x86_64.whl
- Upload date:
- Size: 2.9 MB
- Tags: CPython 3.8+, manylinux: glibc 2.39+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ccf98c2ab3cd8f8d4a3701b5b8212703ed4f5e1c1951f5df021dcf4ee729abd4
|
|
| MD5 |
b9eced48d00f25b0aed901d6104e823b
|
|
| BLAKE2b-256 |
8735171feab6005126cde17e9e84dc7b5fcc3e91302edd0b83f845cb91b1a4d9
|
Provenance
The following attestation bundles were made for codex_usage-0.1.16-cp38-abi3-manylinux_2_39_x86_64.whl:
Publisher:
pypi.yaml on Liam-Deacon/codex-usage
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
codex_usage-0.1.16-cp38-abi3-manylinux_2_39_x86_64.whl -
Subject digest:
ccf98c2ab3cd8f8d4a3701b5b8212703ed4f5e1c1951f5df021dcf4ee729abd4 - Sigstore transparency entry: 954524643
- Sigstore integration time:
-
Permalink:
Liam-Deacon/codex-usage@2575d25b1e13a79bc207bf7c7ab31605183b1d48 -
Branch / Tag:
refs/tags/v0.1.16 - Owner: https://github.com/Liam-Deacon
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi.yaml@2575d25b1e13a79bc207bf7c7ab31605183b1d48 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file codex_usage-0.1.16-cp38-abi3-macosx_11_0_arm64.whl.
File metadata
- Download URL: codex_usage-0.1.16-cp38-abi3-macosx_11_0_arm64.whl
- Upload date:
- Size: 2.5 MB
- Tags: CPython 3.8+, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
25f4939affcfa38efe121e2f6c196e21498bb586a160739a47099bd90e99e5f1
|
|
| MD5 |
45a95fb62f9b25920e9bf36d0911aad4
|
|
| BLAKE2b-256 |
7eec6988a5ba9ce706537d35e771bdef4e730892194cd6620b654ec6f04679a3
|
Provenance
The following attestation bundles were made for codex_usage-0.1.16-cp38-abi3-macosx_11_0_arm64.whl:
Publisher:
pypi.yaml on Liam-Deacon/codex-usage
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
codex_usage-0.1.16-cp38-abi3-macosx_11_0_arm64.whl -
Subject digest:
25f4939affcfa38efe121e2f6c196e21498bb586a160739a47099bd90e99e5f1 - Sigstore transparency entry: 954524621
- Sigstore integration time:
-
Permalink:
Liam-Deacon/codex-usage@2575d25b1e13a79bc207bf7c7ab31605183b1d48 -
Branch / Tag:
refs/tags/v0.1.16 - Owner: https://github.com/Liam-Deacon
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi.yaml@2575d25b1e13a79bc207bf7c7ab31605183b1d48 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file codex_usage-0.1.16-cp38-abi3-macosx_10_12_x86_64.whl.
File metadata
- Download URL: codex_usage-0.1.16-cp38-abi3-macosx_10_12_x86_64.whl
- Upload date:
- Size: 2.7 MB
- Tags: CPython 3.8+, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ddea3cd11b1edd127d85a2398dfeb901a307c829fc7e3138d73beadfa26b2c99
|
|
| MD5 |
6baafc19fb459c95da71945105939990
|
|
| BLAKE2b-256 |
01487132084445cce043b2a1e3036fc475df4a4249d9912a0225964f3235bbe4
|
Provenance
The following attestation bundles were made for codex_usage-0.1.16-cp38-abi3-macosx_10_12_x86_64.whl:
Publisher:
pypi.yaml on Liam-Deacon/codex-usage
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
codex_usage-0.1.16-cp38-abi3-macosx_10_12_x86_64.whl -
Subject digest:
ddea3cd11b1edd127d85a2398dfeb901a307c829fc7e3138d73beadfa26b2c99 - Sigstore transparency entry: 954524645
- Sigstore integration time:
-
Permalink:
Liam-Deacon/codex-usage@2575d25b1e13a79bc207bf7c7ab31605183b1d48 -
Branch / Tag:
refs/tags/v0.1.16 - Owner: https://github.com/Liam-Deacon
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi.yaml@2575d25b1e13a79bc207bf7c7ab31605183b1d48 -
Trigger Event:
workflow_dispatch
-
Statement type: