pi-dispatch
Dispatch requests across multiple ChatGPT Codex OAuth accounts for pi
Package details
Install pi-dispatch from npm and Pi will load the resources declared by the package manifest.
$ pi install npm:pi-dispatch- Package
pi-dispatch- Version
1.0.3- Published
- Apr 6, 2026
- Downloads
- 244/mo · 14/wk
- Author
- mentallysound
- License
- MIT
- Types
- extension
- Size
- 186.4 KB
- Dependencies
- 0 dependencies · 2 peers
Pi manifest JSON
{
"extensions": [
"./index.ts"
]
}Security note
Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.
README
Dispatch Extension
Dispatch is a pi extension that lets you use multiple ChatGPT Codex OAuth accounts with the built-in openai-codex-responses API.
It helps you maximize usable Codex quota across accounts:
- Automatic rotation on quota/rate-limit errors (e.g. 429, usage limit).
- Prefers untouched accounts (0% used in both windows) so fresh quota windows don't sit unused.
- Otherwise, prefers the account whose weekly window resets soonest.
Install (recommended)
pi install npm:pi-dispatch
After installing, restart pi.
Install (local dev)
From this directory:
pi -e ./index.ts
Quick start
Add at least one account:
/dispatch-loginOptionally provide a label:
/dispatch-login work-accountUse Codex normally. When a quota window is hit, Dispatch will rotate to another available account automatically.
Commands
/dispatch-login [label]- Adds/updates an account in the rotation pool. Label is optional (auto-assigns
account-1, etc.).
- Adds/updates an account in the rotation pool. Label is optional (auto-assigns
/dispatch-use- Manually pick an account for the current session (until rotation clears it).
/dispatch-status- Shows accounts + cached usage info + which one is currently active.
How account selection works (high level)
When pi starts / when a new session starts, the extension:
- Loads your saved accounts.
- Fetches usage info for each account (cached for a few minutes).
- Picks an account using these heuristics:
- Prefer accounts that are untouched (0% used in both windows).
- Otherwise prefer the account whose weekly quota window resets soonest (5h window is ignored for selection).
- Otherwise pick a random available account.
When streaming and a quota/rate-limit error happens before any tokens are generated, it:
- Marks the account as exhausted until its reset (or a fallback cooldown)
- Rotates to another account and retries
Checks
pnpm run lint
pnpm run tsgo
pnpm run test