How to connect another app to your pooled Codex accounts
If another app already speaks the OpenAI Responses API shape, you can point it at CodexUse Accounts Pool and give it one local API backed by pooled quota across your selected saved accounts.
When this setup makes sense
- You already keep multiple Codex accounts saved in CodexUse.
- Another app wants one base URL and one key.
- You want more total headroom than one account can provide on its own.
- You want CodexUse to load-balance fresh work and fail over when one account hits trouble.
Five-minute setup
- Enable Settings → Accounts Pool or use
codexuse account-pool enable. - Select the profiles that should be available to the pool.
- Choose the model names the other app should see.
- Generate a local pool key.
- Paste the base URL and key into the other app.
CLI and daemon version of the same setup
If you are running headless, the same workflow stays in the terminal:
codexuse account-pool profiles set Work Personal
codexuse daemon start --port=3773
codexuse account-pool status --runtime=daemon --port=3773
codexuse account-pool keys create --runtime=daemon
Use a fixed daemon port when the client should keep one stable local base URL instead of reconnecting to a random port per run. Keep Bun on PATH too, because the daemon runs CodexUse's bundled Projects server on Bun.
Quick verification
Before touching the client, verify the pool directly from your terminal.
curl http://127.0.0.1:PORT/v1/models \
-H "Authorization: Bearer cux_pool_..."
curl http://127.0.0.1:PORT/v1/responses \
-H "Authorization: Bearer cux_pool_..." \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-5.4",
"input": "List the next three release risks in this repo."
}'
Choose the right published models
Do not dump every model ID into the pool just because you can. Publish the specific base models and alias variants the other app will actually use, so setup stays simple while the real value stays in the pool itself: shared quota and better routing across accounts.
| Need | What to publish |
|---|---|
| General default model | One base model ID such as gpt-5.4 |
| Consistent deep reasoning | A reasoning-specific alias with forced effort |
| Speed-biased side tasks | A fast-mode alias that the client can request explicitly |
Pick the routing strategy deliberately
- Least used: good when you want the pool to favor whichever selected account has the most breathing room.
- Round robin: good when you want fresh sessions to spread more evenly.
Once the pool creates a logical session, CodexUse keeps it on that account unless a rollover is needed. That gives you load balancing for fresh work without throwing away continuity on later turns.
Troubleshooting
| Symptom | What to check |
|---|---|
| 401 or invalid key | Generate a fresh pool key from Settings, or with codexuse account-pool keys create --runtime=daemon if the client is calling a daemon URL, and make sure the other app uses that runtime-matched key instead of your OpenAI credentials. |
| Model not found | Publish that model ID in Accounts Pool first. The other app can only request what the pool exposes on /v1/models. |
| No extra headroom | Check whether the selected profiles are really distinct OpenAI accounts. Duplicate logins still share limits. |
| Pool unavailable | Confirm Accounts Pool is enabled in Settings or via codexuse account-pool status, and that your license includes the feature. |