Transparent account-aware wrapper for the Codex CLI
Project description
codex-switch
codex-switch is a local wrapper for the Codex CLI. It keeps the normal
codex command, but chooses the logged-in account instance with the most
remaining quota before launching the real CLI.
What it does
- installs a PATH-first
codexshim - stores one isolated runtime home per account
- checks account login state with
codex login status - probes each account's remaining quota with
/statusbefore launch - forwards the original user command unchanged to the selected account
- keeps repository files, project instructions, and shared skills visible to every instance
Install
From PyPI after release:
python3 -m pip install codex-switch-cli
codex-switch install-shim
From GitHub before the first PyPI release:
python3 -m pip install git+https://github.com/ForeverHYX/codex-switch.git
codex-switch install-shim
After that, just run codex. The first launch asks how many accounts to set up
and walks you through logging each one in with the upstream Codex CLI.
codex
Once setup is done, day-to-day usage stays the same:
codex "review this branch"
codex exec "make test"
How it works
The first codex run triggers setup. codex-switch creates one isolated
runtime home per account, runs the upstream login flow for each account in
turn, then stores the real Codex binary path for later launches.
When you later run codex, the shim probes each configured account, skips
unhealthy or unlogged ones, and picks the one with the most remaining quota.
Caveats
- it does not switch accounts in the middle of a running Codex session
- it does not manage upstream Codex upgrades for you
- it depends on the upstream CLI's login/status output staying readable
- all accounts still share the same project working directory
Public repository rules
- commit source files, tests, and public docs only
- keep local planning docs out of public pushes
- keep local-only agent and skill metadata out of public pushes
Publishing
This repository is set up to publish the codex-switch-cli package to PyPI
through GitHub Actions trusted publishing. After PyPI trusted publishing is
configured for this repository, creating a GitHub release tag can build and
upload the package automatically.
Project details
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 codex_switch_cli-0.1.0.tar.gz.
File metadata
- Download URL: codex_switch_cli-0.1.0.tar.gz
- Upload date:
- Size: 16.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
684faec9c6ef926dfecd64ff84af2af63d2c97668db48dfcac52202b99a0a231
|
|
| MD5 |
bec2abff495af947e8bfa5b2cabc3643
|
|
| BLAKE2b-256 |
0607e87fa6cbe415df576a1c07199785e070798bf5b1e0ef2600666428f329b9
|
Provenance
The following attestation bundles were made for codex_switch_cli-0.1.0.tar.gz:
Publisher:
publish.yml on ForeverHYX/codex-switch
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
codex_switch_cli-0.1.0.tar.gz -
Subject digest:
684faec9c6ef926dfecd64ff84af2af63d2c97668db48dfcac52202b99a0a231 - Sigstore transparency entry: 1241286578
- Sigstore integration time:
-
Permalink:
ForeverHYX/codex-switch@6a37c3d62ea65b4741b97ac3adc78628377f0ed0 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/ForeverHYX
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@6a37c3d62ea65b4741b97ac3adc78628377f0ed0 -
Trigger Event:
release
-
Statement type:
File details
Details for the file codex_switch_cli-0.1.0-py3-none-any.whl.
File metadata
- Download URL: codex_switch_cli-0.1.0-py3-none-any.whl
- Upload date:
- Size: 13.8 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 |
5232426c7ae1e2dd4f6380dc838023e18f3c36f699f7b76b37cdefb5d66d7cd7
|
|
| MD5 |
7c530db02f4502426ad542b10f322a50
|
|
| BLAKE2b-256 |
509c3f08942f6467ebeb5b55d0e800ce2ec47c46dd988c5ff1027187614428a4
|
Provenance
The following attestation bundles were made for codex_switch_cli-0.1.0-py3-none-any.whl:
Publisher:
publish.yml on ForeverHYX/codex-switch
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
codex_switch_cli-0.1.0-py3-none-any.whl -
Subject digest:
5232426c7ae1e2dd4f6380dc838023e18f3c36f699f7b76b37cdefb5d66d7cd7 - Sigstore transparency entry: 1241286613
- Sigstore integration time:
-
Permalink:
ForeverHYX/codex-switch@6a37c3d62ea65b4741b97ac3adc78628377f0ed0 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/ForeverHYX
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@6a37c3d62ea65b4741b97ac3adc78628377f0ed0 -
Trigger Event:
release
-
Statement type: