Codex app orchestrator for multiple accounts on a Mac
CodexUse gives each of your Codex accounts its own Codex window and one action: Open when no window is running, Show when one is. It reads each account’s headroom, provides refill controls, opens another eligible account when usage runs low, and lists every local task from every account in one History.
The problem
The official Codex app signs in one account at a time. With a personal, a work, and a client account, the native workflow is sign out, sign in, lose the window state, repeat. Once you also want to use a cheaper or a local model for some tasks, you are editing config.toml by hand between runs.
The hard part is not saving logins. It is knowing which window belongs to which account, seeing how much quota each one has left, and putting the right account on the right task before a long run starts. Guess wrong and you burn a turn on the wrong quota.
One Codex window per account
An account in CodexUse is one OpenAI account (signed in with the same OAuth as Codex CLI, no API key) or one custom-model account on an OpenAI-compatible provider. Each account gets exactly one Codex window with its own Codex home, auth, config, and local history. CodexUse never creates a second window for the same account.
- Open starts the account’s window. Every other window keeps running and stays signed in.
- Show brings the running window to the front.
- ⌘K jumps to an account by name from anywhere in CodexUse.
A window that CodexUse did not open shows an Outside CodexUse badge. CodexUse can see it and can take it over if you turn on Take over outside windows; restarting that window loses unsaved work in it, so CodexUse asks first.
Status words
Every account shows a status label. The Accounts row and detail header use the same label.
| Status | Meaning |
|---|---|
| Open | The window is running and idle. |
| Busy | The window is generating a response. |
| Ready | Signed in, no window running, headroom is fine. |
| Low | Signed in, one usage window is below your warning level. |
| Needs sign-in | The OpenAI login expired. Sign in again; nothing is deleted. |
| Needs setup | A custom-model account whose provider or models are missing. |
| Opening… | CodexUse is starting the window. |
Headroom, refill timers, and Auto-roll
Headroom is the percent of quota left that Codex reports per usage window: 5-hour, 7-day, and 30-day. CodexUse shows it per account so you can pick an account with room before a long task.
Refill timers show the timing reported by Codex. The automatic control attempts a short background request after Auto-roll leaves an account; the manual control attempts one for eligible accounts. Neither control accelerates OpenAI’s refill time or creates quota.
Auto-roll moves the active account to the next one in your priority order when headroom drops below Roll below, brings an account back once it passes Rejoin above, and sends a Mac notification at Warn below. A confirm countdown cancels a stale roll, and the recent rolls log shows what happened and why. Auto-roll never moves an open conversation between windows.
History across accounts
The History tab lists every local Codex task from every account in one list. Opening a task opens it in the account that owns it. History does not merge or copy cloud ChatGPT history.
How this fits with the CLI
Accounts are local and shared with the CLI on the same Mac. The CLI selects which account the Codex CLI uses next; that selection does not move a desktop conversation.
codexuse profile list
codexuse profile switch work
codexuse account-pool status
When to use what
| Need | Use |
|---|---|
| Open or show the Codex window for a specific account | Accounts tab, Open and Show |
| Find a local task from any account | History |
| Select which account the Codex CLI uses next | CLI: codexuse profile switch |
| Let another OpenAI-compatible tool share saved account quota | Account Pool |
| Run a non-OpenAI model in a Codex window | Custom-model account |
| Move before an account runs out of usage | Headroom, refill timers, and Auto-roll |
Guardrails
- CodexUse does not create extra quota. It makes account state and routing visible so you spend the quota you have on purpose.
- One account never gets two windows. Show is the only action when a window is running.
- Taking over an outside window restarts it, and unsaved work in it is lost.
- Auto-roll does not move an active conversation between windows.
- History lists local Codex tasks from every account and opens each in its owning window. It does not copy messages or cloud history between accounts.
- Account Pool is a local OpenAI-compatible API, not a hosted cloud service. Account limits still apply.
FAQ
Can the Codex app run with multiple accounts?
Yes, with CodexUse. Each account gets its own Codex home and its own Codex window. Open starts a window, Show brings it forward, and the status word (Open, Busy, Ready, Low, Needs sign-in, Needs setup) tells you what each account is doing. No account is signed out.
Does CodexUse require OpenAI API keys?
Not for an OpenAI account: CodexUse uses the same OAuth login as Codex CLI. A custom-model account does need a credential for that provider, which CodexUse encrypts in its private app database. Account Pool creates a separate local key only when another OpenAI-compatible client talks to CodexUse’s local API.
Does CodexUse move active tasks between accounts?
No. History shows local tasks from every account together, then opens each task in the account and window that owns it.