I built a small open-source helper for anyone using Codex with multiple accounts: codex-profiles.
If you’re tired of copying auth.json around, this lets you launch Codex CLI or Codex Desktop with a named CODEX_HOME instead:
brew install Ducksss/tap/codex-profile
codex-profile login work
codex-profile cli work exec "review this repo"
codex-profile app personal
Each profile keeps its own auth, config, sessions, plugins, logs, and local Codex state, so you can easily switch between work, personal, or any other account.
I’d really appreciate feedback from other Codex users juggling multiple accounts:
Adding a bit more concrete context from my own workflow, because this is where the tool stopped being a nice-to-have for me.
My Codex usage is split across a few accounts:
A shared/team account used by multiple devs. The problem is not just switching auth; third-party connectors, plugins, local sessions, and Desktop app state all get mixed together.
My personal account has lower limits, but it has my email connector setup for email-campaign drafts and account-specific workflows.
My school account is the general fallback when the other accounts hit limits or I need a cleaner context for school/general work.
Without profile isolation, those contexts bleed into each other. I do not want a shared dev account to inherit my personal connector state, and I do not want a personal or school workflow to pick up the wrong sessions/plugins.
That is why codex-profiles isolates both CODEX_HOME and the Desktop user-data directory per profile. It is still not an OS-level sandbox, but it solves the practical account/state isolation problem I kept running into.
The screenshot below shows two Codex Desktop profiles running side by side on the same Mac: personal and work, each with its own local Codex/Desktop state.