AI Quota — monitor and switch AI coding subscription accounts
Project description
aiq — AI Quota
Monitor usage and switch between AI coding subscription accounts.
$ aiq
AI Quota
────────────────────────────────────────────────────────────────────────
TOOL ACCOUNT 5h 7d STATUS
● claude alice@example.com ██████░░░░ 62.3% ████░░░░░░ 38.1% OK
claude bob@example.com — — --
────────────────────────────────────────────────────────────────────────
● codex alice@example.com ████████░░ 81.0% ██████████ 100.0% LIMITED
codex bob@example.com ██░░░░░░░░ 15.2% ███░░░░░░░ 28.4% OK
────────────────────────────────────────────────────────────────────────
4 accounts · 2 ok · 1 limited · 1 unknown
What it does
- Check quotas across Claude Max, Codex (ChatGPT Pro), and Gemini Ultra accounts
- Switch accounts when you hit rate limits — auto-picks the one with most headroom
- Vault management — save, list, and remove credential profiles locally
Install
uv tool install aiq-monitor
Or from source:
git clone https://github.com/elyase/aiq.git
cd aiq
uv tool install .
Usage
aiq # show quota for all accounts
aiq use codex # auto-pick best Codex account
aiq use claude alice@x # switch to specific account
aiq add codex alice@x # save current auth as profile
aiq logout codex # remove auth files
aiq ls # list all vault profiles
aiq rm codex alice@x # remove a vault profile
aiq import # import from caam vault / active creds
aiq --json # machine-readable output
How credentials work
aiq never stores passwords or API keys. It copies the OAuth/session files that each tool's CLI already writes to disk (e.g., ~/.codex/auth.json) into a local vault at ~/.local/share/aiq/vault/. All vault files are stored with 0600 permissions.
Supported tools and their auth sources:
| Tool | Auth files read |
|---|---|
| Claude | ~/.claude.json, macOS Keychain (Claude Code-credentials) |
| Codex | ~/.codex/auth.json |
| Gemini | ~/.gemini/settings.json, ~/.gemini/oauth_credentials.json |
Agent setup
Give your AI coding agent the ability to monitor quotas and switch accounts automatically.
1. Install the CLI
uv tool install aiq-monitor
2. Install the skill
Using skills:
npx skills add elyase/aiq
This installs the aiq skill into your agent's skills directory. The agent will automatically use aiq when you hit rate limits or ask about quota.
3. Import your accounts
aiq import # detects active logins for Claude, Codex, Gemini
Or add accounts manually:
# Log in to first account
claude # /login with alice@example.com
aiq add claude alice@example.com
# Log in to second account
aiq logout claude
claude # /login with bob@example.com
aiq add claude bob@example.com
# Switch back
aiq use claude alice@example.com
Now your agent can run aiq use claude to auto-switch when hitting limits.
Requirements
- Python 3.12+
- macOS (Keychain access for Claude; other tools work cross-platform)
- humancli framework
License
MIT
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 Distribution
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 aiq_monitor-0.1.0.tar.gz.
File metadata
- Download URL: aiq_monitor-0.1.0.tar.gz
- Upload date:
- Size: 14.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7e0812d846c1e0e1e5a788bab924a378d5f6441fb04aa672b33212e991e5d848
|
|
| MD5 |
3d959eb62e176e8903fbc610ae2e577e
|
|
| BLAKE2b-256 |
0e9c97d4d6b930fae629303f298aeb68f6f5e2d89f9f7f26624eb87e826c9305
|
Provenance
The following attestation bundles were made for aiq_monitor-0.1.0.tar.gz:
Publisher:
release.yml on elyase/aiq
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
aiq_monitor-0.1.0.tar.gz -
Subject digest:
7e0812d846c1e0e1e5a788bab924a378d5f6441fb04aa672b33212e991e5d848 - Sigstore transparency entry: 1239491143
- Sigstore integration time:
-
Permalink:
elyase/aiq@b4a58f4194b752343b6c6d24f8d8df2f18967acf -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/elyase
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@b4a58f4194b752343b6c6d24f8d8df2f18967acf -
Trigger Event:
push
-
Statement type:
File details
Details for the file aiq_monitor-0.1.0-py3-none-any.whl.
File metadata
- Download URL: aiq_monitor-0.1.0-py3-none-any.whl
- Upload date:
- Size: 14.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
034526ec65c4c99800a0b0f315e64006b98f3dd30fcc1d57b711af7f9ade837f
|
|
| MD5 |
b2fbcd5ea5667ca1381c62251378ca6c
|
|
| BLAKE2b-256 |
7ec3f6868376cf2fcb0792cb886244e95500b39e90ddc697097e8d320373ce6b
|
Provenance
The following attestation bundles were made for aiq_monitor-0.1.0-py3-none-any.whl:
Publisher:
release.yml on elyase/aiq
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
aiq_monitor-0.1.0-py3-none-any.whl -
Subject digest:
034526ec65c4c99800a0b0f315e64006b98f3dd30fcc1d57b711af7f9ade837f - Sigstore transparency entry: 1239491144
- Sigstore integration time:
-
Permalink:
elyase/aiq@b4a58f4194b752343b6c6d24f8d8df2f18967acf -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/elyase
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@b4a58f4194b752343b6c6d24f8d8df2f18967acf -
Trigger Event:
push
-
Statement type: