codex-probe is a single-binary CLI for Codex token login, renewal, quota checks, API smoke tests, and optional Supabase sync.
codex-probe turns the raw CLI flags into a small credential workflow you can actually operate day to day.
Features:
--login: start OAuth PKCE login and write a token JSON locally--renew: refresh one token file or a whole directory in place--status: read remaining quota windows from existing token files--apitest: send lightweight requests to verify model availability--sync: encrypt local token files and sync them with Supabase--output: export--statusand--apitestresults as CSV--proxy: use a fixed proxy or fall back to system proxy detection
For detailed guides, see:
Pre-built binaries are available in Releases.
| Platform | File |
|---|---|
| Linux x86-64 | codex-probe-linux-amd64 |
| Linux ARM64 | codex-probe-linux-arm64 |
| macOS Intel | codex-probe-darwin-amd64 |
| macOS Apple Silicon | codex-probe-darwin-arm64 |
| Windows x86-64 | codex-probe-windows-amd64.exe |
Build from source:
git clone https://github.com/yourname/codex-probe
cd codex-probe
go build -o codex-probe ./cmd/codex-probe/On macOS, remove quarantine before first run if needed:
xattr -d com.apple.quarantine codex-probe-darwin-*
chmod +x codex-probe-darwin-*
./codex-probe-darwin-*Copy the example config before first run:
cp ./config.example.json ./config.jsonCommon commands:
# Login and save token files
codex-probe --login -o ./tokens/
# Renew one token file in place
codex-probe --renew ./tokens/me.json
# Check quota
codex-probe --status ./tokens/me.json
# Test model availability
codex-probe --apitest ./tokens/
# Encrypt and sync local token files with Supabase
codex-probe --syncBy default, codex-probe loads config.json next to the executable. Start from config.example.json.
{
"renew_before_expiry_days": 3,
"sync_url": "https://<project>.supabase.co",
"sync_api_key": "<publishable-key>",
"sync_aes_gcm_key": "<64-char-hex>",
"sync_dir": "./tokens"
}renew_before_expiry_days: renew when the token is close to expirysync_url: Supabase project URLsync_api_key: Supabase publishable keysync_aes_gcm_key: local AES-256-GCM key generated withopenssl rand -hex 32sync_dir: local directory used by--sync
Supabase Free Plan is enough for this workflow.
For Supabase setup, local config details, renew behavior, proxy detection, CSV format, and internals, see:
MIT
Discuss usage and issues at linux.do.

