@henryqw/pi-multi-codex

Use multiple ChatGPT Codex OAuth accounts in Pi.

Packages

Package details

extension

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.

Pi showing Codex account quotas and the active footer slot Flowchart separating fresh-quota startup ranking from broader HTTP 429 failover

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.