Credentials. Janus saves entire Codex auth.json files, including tokens, to the login keychain, so treat the Mac as holding live OpenAI sign-ins.
Who it is forA developer who uses Codex with a personal ChatGPT plan, a team workspace, and an API key.
The problemCodex keeps one sign-in in a single file, so moving between accounts means logging out and logging in again.
The outcomeEach Codex sign-in is saved and listed separately, and switching is one click after you quit Codex.
What you need first
- A Mac running macOS (the README says macOS only)
- Claude Code or Codex installed and signed in to at least one account
- Homebrew, or a manual download of the latest .dmg from Releases
- Xcode Command Line Tools if you build from source
Steps
- Install Janus with
brew install --cask --no-quarantine ramitvishwakarma/tap/janus, then open it and go to the Codex tab. - Save the account Codex is currently signed into, then delete
~/.codex/auth.jsonwithout running any logout command. - Run
codex loginas the next account, then save that account in Janus. - Quit Codex before switching, since a running Codex can write the old sign-in back over the new one.
- Switch to the account you need from the Codex tab and reopen Codex.
Prompt for your agent
Using the Janus repo at RamitVishwakarma/Janus, explain how to save each Codex sign-in on this Mac, including ChatGPT and API-key accounts, and switch to <target account email or key suffix>. Report the saved Codex accounts with their plan or key suffix. Verify that the live file at ~/.codex/auth.json now belongs to the target account.
Caveat. The README says not to use codex logout for this, because it revokes the sign-in at OpenAI and the saved copy stops working.
Get 5 new use cases every morning. Free, one short email, unsubscribe anytime.
Get them freeShare: X LinkedIn Hacker News Email Copy link
Disclaimer
Deduped lists open-source repositories that belong to other people. We do not own, maintain, audit, or vouch for any of them, and a repo appearing here is not an endorsement or a safety check. The use cases, steps, and prompts are written by AI and may be incomplete, outdated, or just wrong. Where a use case is marked "Seen in the wild", we link to public posts where someone described something similar, but we have not verified those posts and the use case itself is still our AI's own write-up. Use all of this at your own risk. Only run code, commands, or agents on systems and accounts you are authorized to use, and read the code and every command before you run it, especially anything that touches credentials, files, or the network. Nothing here is professional, security, legal, or financial advice. All trademarks and project names belong to their respective owners, and their use here does not imply affiliation. Content is provided as is, without warranties of any kind. Found a mistake, a safety problem, or something you want removed? Email [email protected] and we will look at it promptly. Full disclaimer page