Back to Skills
    šŸ¦ž

    codex-account-switcher

    Manage multiple OpenAI Codex accounts.

    By @odrobnik
    View on GitHub
    SKILL.md
    ---
    name: codex-account-switcher
    description: Manage multiple OpenAI Codex accounts. Capture current login tokens and switch between them instantly.
    metadata:
      clawdbot:
        emoji: "šŸŽ­"
        requires:
          bins: ["python3"]
    ---
    
    # Codex Account Switcher
    
    Manage multiple OpenAI Codex identities (e.g. personal vs. work) by swapping the authentication token file.
    
    ## Usage
    
    ### 1. List Accounts
    Show saved accounts (active one is marked with `ACTIVE` on the right). Default output is compact.
    
    - `--verbose` includes refresh age + token TTL (debug)
    - `--json` outputs the verbose info as JSON
    ```bash
    ./codex-accounts.py list
    ```
    
    To include emails/diagnostics:
    ```bash
    ./codex-accounts.py list --verbose
    ```
    
    ### 2. Add an Account
    Interactive wizard to capture login(s).
    
    - **Always starts a fresh browser login** (`codex logout && codex login`) so you explicitly choose the identity to capture.
    - After each login it saves a snapshot.
    - In an interactive terminal it asks if you want to add another.
    - When invoked non-interactively (e.g. via Clawdbot), it runs **single-shot** (no "add another" prompt).
    - When naming an account, **press Enter** to accept the default name (local-part of the detected email, e.g. `oliver` from `oliver@…`).
    
    ```bash
    ./codex-accounts.py add
    ```
    
    ### 3. Switch Account
    Instantly swap the active login.
    ```bash
    ./codex-accounts.py use work
    ```
    
    ### 4. Auto-Switch to Best Quota
    Check all accounts and switch to the one with most weekly quota available.
    ```bash
    ./codex-accounts.py auto
    ./codex-accounts.py auto --json
    ```
    
    Output:
    ```
    šŸ”„ Checking quota for 2 account(s)...
    
      → sylvia... weekly 27% used
      → oliver... weekly 100% used
    
    āœ… Switched to: sylvia
       Weekly quota: 27% used (73% available)
    
    All accounts:
       sylvia: 27% weekly ←
       oliver: 100% weekly
    ```
    
    ## How It Works
    
    - Stores `auth.json` files in `~/.codex/accounts/<name>.json`.
    - Identifies accounts by decoding the JWT `id_token` to find the email address.
    - "Switching" simply overwrites `~/.codex/auth.json` with the saved copy.
    
    ## Installation
    
    Add the script to your path for easy access:
    ```bash
    ln -s $(pwd)/codex-accounts.py ~/bin/codex-accounts
    ```