{"id":"fea564b2-297c-4022-b7c6-881de935b828","entityType":"agent","slug":"clawhub-odrobnik-codex-account-switcher","name":"Codex Account Switcher","canonicalUrl":"https://www.xpersona.co/agent/clawhub-odrobnik-codex-account-switcher","canonicalPath":"/agent/clawhub-odrobnik-codex-account-switcher","generatedAt":"2026-10-09T12:26:21.330Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-04-15T00:45:39.800Z","emptyReason":null},"description":"Manage multiple OpenAI Codex accounts. Capture current login tokens and switch between them instantly. ⚠️ Reads and writes ~/.codex/auth.json and ~/.codex/accounts/*.json (sensitive authentication tokens). Skill: Codex Account Switcher Owner: odrobnik Summary: Manage multiple OpenAI Codex accounts. Capture current login tokens and switch between them instantly. ⚠️ Reads and writes ~/.codex/auth.json and ~/.codex/accounts/*.json (sensitive authentication tokens). Tags: latest:1.2.3 Version history: v1.2.3 | 2026-02-13T09:22:02.519Z | user Remove invented sensitivity metadata field v1.2.2 | 2026-02-13T09:19:11.196Z | use","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 2.3K downloads reported by the source. Last updated 4/15/2026.","installCommand":"clawhub skill install kn7c7fek4a503rbvj0bxbwx6dx7yw25e:codex-account-switcher","sourceUrl":"https://clawhub.ai/odrobnik/codex-account-switcher","homepage":"https://clawhub.ai/odrobnik/codex-account-switcher","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/odrobnik/codex-account-switcher","kind":"source"}],"safetyScore":84,"overallRank":62,"popularityScore":67,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"Manage multiple OpenAI Codex accounts. Capture current login tokens and switch between them instantly. ⚠️ Reads and writes ~/.codex/auth.json and ~/.codex/accou"},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-04-15T00:45:39.800Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-04-15T00:45:39.800Z","emptyReason":null},"stars":null,"forks":null,"downloads":2296,"packageName":null,"latestVersion":"1.2.3","tractionLabel":"2.3K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-02-28T18:51:03.513Z","emptyReason":null},"lastUpdatedAt":"2026-04-15T00:45:39.800Z","lastCrawledAt":"2026-02-28T18:51:03.513Z","lastIndexedAt":null,"nextCrawlAt":"2026-03-01T18:51:03.513Z","lastVerifiedAt":null,"highlights":[{"version":"1.2.3","createdAt":"2026-02-13T09:22:02.519Z","changelog":"Remove invented sensitivity metadata field","fileCount":4,"zipByteSize":11236},{"version":"1.2.2","createdAt":"2026-02-13T09:19:11.196Z","changelog":"Declare missing dependencies, env vars, and sensitivity in metadata","fileCount":4,"zipByteSize":11265},{"version":"1.2.1","createdAt":"2026-02-13T06:29:02.225Z","changelog":"Rename .clawdhubignore to .clawhubignore","fileCount":null,"zipByteSize":null},{"version":"1.2.0","createdAt":"2026-02-13T06:09:44.135Z","changelog":"Refactor: move setup/prerequisites to SETUP.md, keep SKILL.md lean","fileCount":null,"zipByteSize":null},{"version":"1.1.2","createdAt":"2026-02-11T15:41:04.662Z","changelog":"Clarify sensitive ~/.codex token files + add README (OpenClaw scan alignment).","fileCount":null,"zipByteSize":null},{"version":"1.1.1","createdAt":"2026-02-11T15:38:40.716Z","changelog":"- Added README.md with instructions and documentation. - Added version metadata (1.1.1) and updated the skill description in SKILL.md, warning about the use of sensitive authentication token files. - Updated metadata for compatibility with multiple automation bots. - Minor documentation updates (e.g., changed \"Clawdbot\" to \"Moltbot\" in usage notes).","fileCount":null,"zipByteSize":null},{"version":"1.1.0","createdAt":"2026-01-20T13:29:13.673Z","changelog":"Add auto command: checks all accounts and switches to best quota","fileCount":null,"zipByteSize":null}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install kn7c7fek4a503rbvj0bxbwx6dx7yw25e:codex-account-switcher","setupComplexity":"low","setupSteps":["Setup complexity is classified as HIGH. You must provision dedicated cloud infrastructure or an isolated VM. Do not run this directly on your local workstation.","Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-odrobnik-codex-account-switcher/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-odrobnik-codex-account-switcher/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-odrobnik-codex-account-switcher/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-odrobnik-codex-account-switcher/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-odrobnik-codex-account-switcher/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-odrobnik-codex-account-switcher/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-09T12:26:21.329Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-odrobnik-codex-account-switcher/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-odrobnik-codex-account-switcher/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-odrobnik-codex-account-switcher/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-odrobnik-codex-account-switcher/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"high","updatedAt":"2026-04-15T00:45:39.800Z","emptyReason":null},"readme":"Skill: Codex Account Switcher\n\nOwner: odrobnik\n\nSummary: Manage multiple OpenAI Codex accounts. Capture current login tokens and switch between them instantly. ⚠️ Reads and writes ~/.codex/auth.json and ~/.codex/accounts/*.json (sensitive authentication tokens).\n\nTags: latest:1.2.3\n\nVersion history:\n\nv1.2.3 | 2026-02-13T09:22:02.519Z | user\n\nRemove invented sensitivity metadata field\n\nv1.2.2 | 2026-02-13T09:19:11.196Z | user\n\nDeclare missing dependencies, env vars, and sensitivity in metadata\n\nv1.2.1 | 2026-02-13T06:29:02.225Z | user\n\nRename .clawdhubignore to .clawhubignore\n\nv1.2.0 | 2026-02-13T06:09:44.135Z | user\n\nRefactor: move setup/prerequisites to SETUP.md, keep SKILL.md lean\n\nv1.1.2 | 2026-02-11T15:41:04.662Z | user\n\nClarify sensitive ~/.codex token files + add README (OpenClaw scan alignment).\n\nv1.1.1 | 2026-02-11T15:38:40.716Z | auto\n\n- Added README.md with instructions and documentation.\n- Added version metadata (1.1.1) and updated the skill description in SKILL.md, warning about the use of sensitive authentication token files.\n- Updated metadata for compatibility with multiple automation bots.\n- Minor documentation updates (e.g., changed \"Clawdbot\" to \"Moltbot\" in usage notes).\n\nv1.1.0 | 2026-01-20T13:29:13.673Z | user\n\nAdd auto command: checks all accounts and switches to best quota\n\nArchive index:\n\nArchive v1.2.3: 4 files, 11236 bytes\n\nFiles: codex-accounts.py (30802b), SETUP.md (1815b), SKILL.md (2088b), _meta.json (141b)\n\nFile v1.2.3:SKILL.md\n\n---\nname: codex-account-switcher\nversion: 1.2.3\nhomepage: https://github.com/odrobnik/codex-account-switcher-skill\ndescription: >\n  Manage multiple OpenAI Codex accounts. Capture current login tokens and switch\n  between them instantly. ⚠️ Reads and writes ~/.codex/auth.json and\n  ~/.codex/accounts/*.json (sensitive authentication tokens).\nmetadata:\n  openclaw:\n    emoji: \"🎭\"\n    requires:\n      bins: [\"python3\"]\n---\n\n# Codex Account Switcher\n\nManage multiple OpenAI Codex identities (e.g. personal vs. work) by swapping the authentication token file.\n\n## Usage\n\n### 1. List Accounts\nShow saved accounts (active one is marked with `ACTIVE` on the right). Default output is compact.\n\n- `--verbose` includes refresh age + token TTL (debug)\n- `--json` outputs the verbose info as JSON\n```bash\n./codex-accounts.py list\n```\n\nTo include emails/diagnostics:\n```bash\n./codex-accounts.py list --verbose\n```\n\n### 2. Add an Account\nInteractive wizard to capture login(s).\n\n- **Always starts a fresh browser login** (`codex logout && codex login`) so you explicitly choose the identity to capture.\n- After each login it saves a snapshot.\n- In an interactive terminal it asks if you want to add another.\n- When invoked non-interactively (e.g. via Moltbot), it runs **single-shot** (no \"add another\" prompt).\n- When naming an account, **press Enter** to accept the default name (local-part of the detected email, e.g. `oliver` from `oliver@…`).\n\n```bash\n./codex-accounts.py add\n```\n\n### 3. Switch Account\nInstantly swap the active login.\n```bash\n./codex-accounts.py use work\n```\n\n### 4. Auto-Switch to Best Quota\nCheck all accounts and switch to the one with most weekly quota available.\n```bash\n./codex-accounts.py auto\n./codex-accounts.py auto --json\n```\n\nOutput:\n```\n🔄 Checking quota for 2 account(s)...\n\n  → sylvia... weekly 27% used\n  → oliver... weekly 100% used\n\n✅ Switched to: sylvia\n   Weekly quota: 27% used (73% available)\n\nAll accounts:\n   sylvia: 27% weekly ←\n   oliver: 100% weekly\n```\n\n## Setup\n\nSee [SETUP.md](SETUP.md) for prerequisites and setup instructions.\n\nFile v1.2.3:_meta.json\n\n{\n  \"ownerId\": \"kn7c7fek4a503rbvj0bxbwx6dx7yw25e\",\n  \"slug\": \"codex-account-switcher\",\n  \"version\": \"1.2.3\",\n  \"publishedAt\": 1770974522519\n}\n\nFile v1.2.3:SETUP.md\n\n# Codex Account Switcher - Setup Instructions\n\n## Prerequisites\n\n### Required Software\n\n- **Python 3** — For running the account switcher script\n- **Codex CLI** — OpenAI Codex command-line client must be installed and configured\n  - The skill manages `~/.codex/auth.json` tokens\n  - Requires `codex` binary in PATH for the `add` command (uses `codex logout && codex login`)\n\nNo additional Python packages required. The skill uses only Python standard library modules.\n\n### File Permissions\n\n⚠️ **Sensitive:** This skill reads and writes authentication tokens:\n- `~/.codex/auth.json` — Active Codex session\n- `~/.codex/accounts/*.json` — Saved account tokens\n\nEnsure these files have appropriate permissions:\n```bash\nchmod 600 ~/.codex/auth.json\nchmod 700 ~/.codex/accounts\nchmod 600 ~/.codex/accounts/*.json\n```\n\n## Configuration\n\n### Directory Structure\n\nThe skill automatically creates:\n```\n~/.codex/\n├── auth.json              # Active Codex session (managed by Codex CLI)\n└── accounts/              # Saved account tokens (managed by this skill)\n    ├── oliver.json\n    ├── work.json\n    └── ...\n```\n\n### Installation (Optional)\n\nFor easier access, add the script to your PATH:\n\n```bash\nln -s ~/Developer/Skills/codex-account-switcher/codex-accounts.py ~/bin/codex-accounts\n```\n\nThen you can run:\n```bash\ncodex-accounts list\ncodex-accounts use work\n```\n\n## How It Works\n\n- **Account Identification**: Decodes the JWT `id_token` to extract the email address\n- **Switching**: Overwrites `~/.codex/auth.json` with the saved account copy\n- **Adding**: Runs `codex logout && codex login` to start a fresh browser login, then saves the resulting `auth.json`\n- **Auto-Switch**: Queries quota for all saved accounts and switches to the one with the most available weekly quota\n\nArchive v1.2.2: 4 files, 11265 bytes\n\nFiles: codex-accounts.py (30802b), SETUP.md (1815b), SKILL.md (2163b), _meta.json (141b)\n\nFile v1.2.2:SKILL.md\n\n---\nname: codex-account-switcher\nversion: 1.2.2\nhomepage: https://github.com/odrobnik/codex-account-switcher-skill\ndescription: >\n  Manage multiple OpenAI Codex accounts. Capture current login tokens and switch\n  between them instantly. ⚠️ Reads and writes ~/.codex/auth.json and\n  ~/.codex/accounts/*.json (sensitive authentication tokens).\nmetadata:\n  openclaw:\n    emoji: \"🎭\"\n    requires:\n      bins: [\"python3\"]\n    sensitivity: \"high — reads/writes ~/.codex/auth.json (OAuth tokens)\"\n---\n\n# Codex Account Switcher\n\nManage multiple OpenAI Codex identities (e.g. personal vs. work) by swapping the authentication token file.\n\n## Usage\n\n### 1. List Accounts\nShow saved accounts (active one is marked with `ACTIVE` on the right). Default output is compact.\n\n- `--verbose` includes refresh age + token TTL (debug)\n- `--json` outputs the verbose info as JSON\n```bash\n./codex-accounts.py list\n```\n\nTo include emails/diagnostics:\n```bash\n./codex-accounts.py list --verbose\n```\n\n### 2. Add an Account\nInteractive wizard to capture login(s).\n\n- **Always starts a fresh browser login** (`codex logout && codex login`) so you explicitly choose the identity to capture.\n- After each login it saves a snapshot.\n- In an interactive terminal it asks if you want to add another.\n- When invoked non-interactively (e.g. via Moltbot), it runs **single-shot** (no \"add another\" prompt).\n- When naming an account, **press Enter** to accept the default name (local-part of the detected email, e.g. `oliver` from `oliver@…`).\n\n```bash\n./codex-accounts.py add\n```\n\n### 3. Switch Account\nInstantly swap the active login.\n```bash\n./codex-accounts.py use work\n```\n\n### 4. Auto-Switch to Best Quota\nCheck all accounts and switch to the one with most weekly quota available.\n```bash\n./codex-accounts.py auto\n./codex-accounts.py auto --json\n```\n\nOutput:\n```\n🔄 Checking quota for 2 account(s)...\n\n  → sylvia... weekly 27% used\n  → oliver... weekly 100% used\n\n✅ Switched to: sylvia\n   Weekly quota: 27% used (73% available)\n\nAll accounts:\n   sylvia: 27% weekly ←\n   oliver: 100% weekly\n```\n\n## Setup\n\nSee [SETUP.md](SETUP.md) for prerequisites and setup instructions.\n\nFile v1.2.2:_meta.json\n\n{\n  \"ownerId\": \"kn7c7fek4a503rbvj0bxbwx6dx7yw25e\",\n  \"slug\": \"codex-account-switcher\",\n  \"version\": \"1.2.2\",\n  \"publishedAt\": 1770974351196\n}\n\nFile v1.2.2:SETUP.md\n\n# Codex Account Switcher - Setup Instructions\n\n## Prerequisites\n\n### Required Software\n\n- **Python 3** — For running the account switcher script\n- **Codex CLI** — OpenAI Codex command-line client must be installed and configured\n  - The skill manages `~/.codex/auth.json` tokens\n  - Requires `codex` binary in PATH for the `add` command (uses `codex logout && codex login`)\n\nNo additional Python packages required. The skill uses only Python standard library modules.\n\n### File Permissions\n\n⚠️ **Sensitive:** This skill reads and writes authentication tokens:\n- `~/.codex/auth.json` — Active Codex session\n- `~/.codex/accounts/*.json` — Saved account tokens\n\nEnsure these files have appropriate permissions:\n```bash\nchmod 600 ~/.codex/auth.json\nchmod 700 ~/.codex/accounts\nchmod 600 ~/.codex/accounts/*.json\n```\n\n## Configuration\n\n### Directory Structure\n\nThe skill automatically creates:\n```\n~/.codex/\n├── auth.json              # Active Codex session (managed by Codex CLI)\n└── accounts/              # Saved account tokens (managed by this skill)\n    ├── oliver.json\n    ├── work.json\n    └── ...\n```\n\n### Installation (Optional)\n\nFor easier access, add the script to your PATH:\n\n```bash\nln -s ~/Developer/Skills/codex-account-switcher/codex-accounts.py ~/bin/codex-accounts\n```\n\nThen you can run:\n```bash\ncodex-accounts list\ncodex-accounts use work\n```\n\n## How It Works\n\n- **Account Identification**: Decodes the JWT `id_token` to extract the email address\n- **Switching**: Overwrites `~/.codex/auth.json` with the saved account copy\n- **Adding**: Runs `codex logout && codex login` to start a fresh browser login, then saves the resulting `auth.json`\n- **Auto-Switch**: Queries quota for all saved accounts and switches to the one with the most available weekly quota","readmeExcerpt":"Skill: Codex Account Switcher Owner: odrobnik Summary: Manage multiple OpenAI Codex accounts. Capture current login tokens and switch between them instantly. ⚠️ Reads and writes ~/.codex/auth.json and ~/.codex/accounts/*.json (sensitive authentication tokens). Tags: latest:1.2.3 Version history: v1.2.3 | 2026-02-13T09:22:02.519Z | user Remove invented sensitivity metadata field v1.2.2 | 2026-02-13T09:19:11.196Z | use","codeSnippets":[],"executableExamples":[{"language":"bash","snippet":"./codex-accounts.py list"},{"language":"bash","snippet":"./codex-accounts.py list --verbose"},{"language":"bash","snippet":"./codex-accounts.py add"},{"language":"bash","snippet":"./codex-accounts.py use work"},{"language":"bash","snippet":"./codex-accounts.py auto\n./codex-accounts.py auto --json"},{"language":"text","snippet":"🔄 Checking quota for 2 account(s)...\n\n  → sylvia... weekly 27% used\n  → oliver... weekly 100% used\n\n✅ Switched to: sylvia\n   Weekly quota: 27% used (73% available)\n\nAll accounts:\n   sylvia: 27% weekly ←\n   oliver: 100% weekly"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: codex-account-switcher\nversion: 1.2.3\nhomepage: https://github.com/odrobnik/codex-account-switcher-skill\ndescription: >\n  Manage multiple OpenAI Codex accounts. Capture current login tokens and switch\n  between them instantly. ⚠️ Reads and writes ~/.codex/auth.json and\n  ~/.codex/accounts/*.json (sensitive authentication tokens).\nmetadata:\n  openclaw:\n    emoji: \"🎭\"\n    requires:\n      bins: [\"python3\"]\n---\n\n# Codex Account Switcher\n\nManage multiple OpenAI Codex identities (e.g. personal vs. work) by swapping the authentication token file.\n\n## Usage\n\n### 1. List Accounts\nShow saved accounts (active one is marked with `ACTIVE` on the right). Default output is compact.\n\n- `--verbose` includes refresh age + token TTL (debug)\n- `--json` outputs the verbose info as JSON\n```bash\n./codex-accounts.py list\n```\n\nTo include emails/diagnostics:\n```bash\n./codex-accounts.py list --verbose\n```\n\n### 2. Add an Account\nInteractive wizard to capture login(s).\n\n- **Always starts a fresh browser login** (`codex logout && codex login`) so you explicitly choose the identity to capture.\n- After each login it saves a snapshot.\n- In an interactive terminal it asks if you want to add another.\n- When invoked non-interactively (e.g. via Moltbot), it runs **single-shot** (no \"add another\" prompt).\n- When naming an account, **press Enter** to accept the default name (local-part of the detected email, e.g. `oliver` from `oliver@…`).\n\n```bash\n./codex-accounts.py add\n```\n\n### 3. Switch Account\nInstantly swap the active login.\n```bash\n./codex-accounts.py use work\n```\n\n### 4. Auto-Switch to Best Quota\nCheck all accounts and switch to the one with most weekly quota available.\n```bash\n./codex-accounts.py auto\n./codex-accounts.py auto --json\n```\n\nOutput:\n```\n🔄 Checking quota for 2 account(s)...\n\n  → sylvia... weekly 27% used\n  → oliver... weekly 100% used\n\n✅ Switched to: sylvia\n   Weekly quota: 27% used (73% available)\n\nAll accounts:\n   sylvia: 27% weekly ←\n   oliver: 100% weekly\n```\n\n## Setup\n\nSee [SETUP.md](SETUP.md) for prerequisites and setup instructions."},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn7c7fek4a503rbvj0bxbwx6dx7yw25e\",\n  \"slug\": \"codex-account-switcher\",\n  \"version\": \"1.2.3\",\n  \"publishedAt\": 1770974522519\n}"},{"path":"SETUP.md","content":"# Codex Account Switcher - Setup Instructions\n\n## Prerequisites\n\n### Required Software\n\n- **Python 3** — For running the account switcher script\n- **Codex CLI** — OpenAI Codex command-line client must be installed and configured\n  - The skill manages `~/.codex/auth.json` tokens\n  - Requires `codex` binary in PATH for the `add` command (uses `codex logout && codex login`)\n\nNo additional Python packages required. The skill uses only Python standard library modules.\n\n### File Permissions\n\n⚠️ **Sensitive:** This skill reads and writes authentication tokens:\n- `~/.codex/auth.json` — Active Codex session\n- `~/.codex/accounts/*.json` — Saved account tokens\n\nEnsure these files have appropriate permissions:\n```bash\nchmod 600 ~/.codex/auth.json\nchmod 700 ~/.codex/accounts\nchmod 600 ~/.codex/accounts/*.json\n```\n\n## Configuration\n\n### Directory Structure\n\nThe skill automatically creates:\n```\n~/.codex/\n├── auth.json              # Active Codex session (managed by Codex CLI)\n└── accounts/              # Saved account tokens (managed by this skill)\n    ├── oliver.json\n    ├── work.json\n    └── ...\n```\n\n### Installation (Optional)\n\nFor easier access, add the script to your PATH:\n\n```bash\nln -s ~/Developer/Skills/codex-account-switcher/codex-accounts.py ~/bin/codex-accounts\n```\n\nThen you can run:\n```bash\ncodex-accounts list\ncodex-accounts use work\n```\n\n## How It Works\n\n- **Account Identification**: Decodes the JWT `id_token` to extract the email address\n- **Switching**: Overwrites `~/.codex/auth.json` with the saved account copy\n- **Adding**: Runs `codex logout && codex login` to start a fresh browser login, then saves the resulting `auth.json`\n- **Auto-Switch**: Queries quota for all saved accounts and switches to the one with the most available weekly quota"}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":"Manage multiple OpenAI Codex accounts. Capture current login tokens and switch between them instantly. ⚠️ Reads and writes ~/.codex/auth.json and ~/.codex/accounts/*.json (sensitive authentication tokens). Skill: Codex Account Switcher Owner: odrobnik Summary: Manage multiple OpenAI Codex accounts. Capture current login tokens and switch between them instantly. ⚠️ Reads and writes ~/.codex/auth.json and ~/.codex/accounts/*.json (sensitive authentication tokens). Tags: latest:1.2.3 Version history: v1.2.3 | 2026-02-13T09:22:02.519Z | user Remove invented sensitivity metadata field v1.2.2 | 2026-02-13T09:19:11.196Z | use","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":899,"uniquenessScore":52,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-04-15T00:45:39.800Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-04-15T00:45:39.800Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-09T12:26:21.330Z","emptyReason":null},"items":[{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-10T18:48:31.762Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}