@henryqw/pi-multi-codex
Use multiple ChatGPT Codex OAuth accounts in Pi.
Package details
Install @henryqw/pi-multi-codex from npm and Pi will load the resources declared by the package manifest.
$ pi install npm:@henryqw/pi-multi-codex- Package
@henryqw/pi-multi-codex- Version
1.0.5- Published
- Sep 9, 2026
- Downloads
- 3,714/mo · 942/wk
- Author
- henrywang
- License
- MIT
- Types
- extension
- Size
- 61.1 KB
- Dependencies
- 2 dependencies · 2 peers
Pi manifest JSON
{
"extensions": [
"./extensions"
],
"image": "https://raw.githubusercontent.com/HenryQW/pi-harness/main/extensions/pi-multi-codex/example.png"
}Security note
Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.
README
@henryqw/pi-multi-codex
Add multiple ChatGPT Codex OAuth accounts and start Pi work on the eligible slot with the most weekly quota. The extension switches away from active five-hour blocks and can retry an HTTP 429 on another eligible slot.
Install
pi install npm:@henryqw/pi-multi-codex
Works with
| Package | Relationship | Purpose |
|---|---|---|
@henryqw/pi-footer |
Improves | Shows the active slot's quota or five-hour block in the footer. |
@henryqw/pi-subagent |
Improves | Isolated children keep Main's active Codex slot. |
@henryqw/pi-task-models |
Improves | Numbered slots share one profile route. |
Use
Run /login and authenticate OpenAI Codex for slot 1 first. Run /codex-add, then run /login and select the new OpenAI Codex #<n> provider. Restart Pi or update model scope, then run /codex-status.
/codex-status lists the new slot. It shows cached quota when available, or unavailable until the first successful snapshot.
The footer and /codex-status show the five-hour reset countdown for Free, Go, and Plus tiers. They show the seven-day reset countdown for Pro Lite and other tiers.
| Surface | Type | Purpose |
|---|---|---|
/codex-add |
command | Create the next numbered slot, then authenticate that slot. |
/codex-status |
command | Show shared quota snapshots and five-hour blocks. Never waits on network. |
/codex-switch |
command | Pick an authenticated slot. |
A numbered slot is one Codex account position in Pi.
Flow
- Before the first agent start, only fresh quota snapshots enter startup ranking. The slot with the most seven-day quota wins.
- An explicit model selection always wins for the next agent start.
- Before later agent starts, a known active five-hour block switches to the eligible fresh slot with the most seven-day quota.
- After HTTP 429, failover can use authenticated, registered, scope-allowed, untried slots with stale or missing quota.
- Failover skips known active five-hour blocks. It ranks fresh known quota first, then unranked slots by slot number.
- Routing preserves the model ID.
- During one agent run, each eligible slot is tried at most once after HTTP 429 responses.
- Automatic retry stops when no untried eligible slot remains.
- The footer shows the active slot's fresh quota or five-hour block.
Config
Package-owned: ~/.pi/agent/config/pi-multi-codex/config.json
| Name | Description | Values | Default |
|---|---|---|---|
autoSwitchOn429 |
Switches to another eligible slot after an HTTP 429. | Boolean. | true |
Set autoSwitchOn429 to false to disable automatic switching. The config must contain only this field as a boolean. Invalid config is preserved and disables automatic switching.
State and storage
The extension maintains a generated, credential-free quota cache at ~/.pi/agent/config/pi-multi-codex/usage.json.
Limits and recovery
The extension reads auth.json. It never writes or refreshes credentials.
Scoped sessions can switch only to exact scoped aliases.
