{"_id":"@0xmapache/codex-profile","name":"@0xmapache/codex-profile","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"@0xmapache/codex-profile","version":"0.1.0","description":"Secure local multi-profile launcher for the OpenAI Codex CLI.","license":"MIT","repository":{"type":"git","url":"git+https://github.com/0xmapachex/codex-profile.git"},"homepage":"https://github.com/0xmapachex/codex-profile#readme","bugs":{"url":"https://github.com/0xmapachex/codex-profile/issues"},"bin":{"codex-profile":"bin/codex-profile","codex-profile-usage":"bin/codex-profile-usage"},"publishConfig":{"access":"public"},"engines":{"node":">=18"},"keywords":["codex","codex-cli","openai","profiles","multi-account"],"scripts":{"test":"bash -n bin/codex-profile bin/codex-profile-usage"},"gitHead":"e2ed6f403062b6463dd3ff376c1ba0305073d405","_id":"@0xmapache/codex-profile@0.1.0","_nodeVersion":"24.13.1","_npmVersion":"11.15.0","dist":{"integrity":"sha512-/CP0k1sM79CXqBy2cVE9PnzsFl0XdG01ysn7dE4gEtEqG6/JrV6me3+K3ogh20sLp0GhjSsn1v1E9jH1pUQwvA==","shasum":"936e4f90a8251f9ec3001adde409f22474ba2ad9","tarball":"https://registry.npmjs.org/@0xmapache/codex-profile/-/codex-profile-0.1.0.tgz","fileCount":6,"unpackedSize":24552,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIHZ0pEA4jFObOlDYONmlvY9D/Ja9VxeFbqv3+x1yCI/xAiAJ6C8DyMBfcMC5tHLi6VTclrL+W/mw1UO71Ic26DOfRA=="}]},"_npmUser":{"name":"0xmapache","email":"ayrtonskt@gmail.com"},"directories":{},"maintainers":[{"name":"0xmapache","email":"ayrtonskt@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/codex-profile_0.1.0_1782248518270_0.779037631221553"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-23T21:01:58.122Z","0.1.0":"2026-06-23T21:01:58.399Z","modified":"2026-06-23T21:01:58.618Z"},"maintainers":[{"name":"0xmapache","email":"ayrtonskt@gmail.com"}],"description":"Secure local multi-profile launcher for the OpenAI Codex CLI.","homepage":"https://github.com/0xmapachex/codex-profile#readme","keywords":["codex","codex-cli","openai","profiles","multi-account"],"repository":{"type":"git","url":"git+https://github.com/0xmapachex/codex-profile.git"},"bugs":{"url":"https://github.com/0xmapachex/codex-profile/issues"},"license":"MIT","readme":"# codex-profile\n\nUse multiple [OpenAI Codex CLI](https://github.com/openai/codex) accounts locally\nwithout mixing credentials, sessions, history, or configuration clutter.\n\n`codex-profile` starts Codex with a dedicated `CODEX_HOME` per profile. Use one\nprofile for work, another for personal, and as many named profiles as you need.\n\n> This is the Codex sibling of\n> [`claude-profile`](https://github.com/0xmapachex/claude-profile) — same idea,\n> same commands, for the Codex CLI.\n\n## Install\n\n```sh\nnpm install -g @0xmapache/codex-profile\n```\n\nThis installs:\n\n- `codex-profile`\n- `codex-profile-usage`\n\n## Quick Start\n\nCreate and open a profile:\n\n```sh\ncodex-profile personal\n```\n\nInside Codex, log in with the account for that profile:\n\n```sh\ncodex login\n```\n\nOpen the same profile later:\n\n```sh\ncodex-profile personal\n```\n\nAfter the first launch, a shortcut named `codex-<profile>` is created in\n`~/.local/bin`, so you can also reopen it with:\n\n```sh\ncodex-personal\n```\n\nCreate another profile:\n\n```sh\ncodex-profile work\n```\n\nInside that session, run `codex login` with your other Codex account.\n\nList profiles:\n\n```sh\ncodex-profile --list\n```\n\nRemove a profile:\n\n```sh\ncodex-profile --remove work\n```\n\nRemoval is non-destructive. The profile is moved to:\n\n```sh\n~/.codex-profiles/.trash/<profile>-<timestamp>\n```\n\nReview local usage across logged-in profiles:\n\n```sh\ncodex-profile-usage\n```\n\n## Permissions\n\nProfile launches use Codex's approvals/sandbox bypass by default:\n\n```sh\ncodex-profile work\n```\n\nThis appends `--dangerously-bypass-approvals-and-sandbox`, keeping the profile\ncommand simple and matching the common local agent workflow.\n\n## Profile Storage and Shared Config\n\nProfiles live under:\n\n```sh\n~/.codex-profiles/<profile>\n```\n\nEach profile has isolated:\n\n- credentials (`auth.json`)\n- sessions\n- history\n- cache\n- project state\n\nProfiles are bootstrapped from your main `~/.codex` config:\n\n- `config.toml` is re-synced from `~/.codex/config.toml` on every launch, so\n  profiles always follow your main configuration. Auth-bearing keys and `[*.env]`\n  tables are stripped during the sync. Credentials live in `auth.json`, which is\n  never copied — each profile keeps its own.\n- `AGENTS.md`, `prompts`, `skills`, and `rules` are symlinked if they exist.\n\nThis means shared instructions and settings update everywhere, while\naccount-specific state stays separate.\n\nIf you want a profile to keep its own local `config.toml` edits instead of\nfollowing `~/.codex`, disable the launch sync:\n\n```sh\nCODEX_PROFILE_SYNC_CONFIG=0 codex-profile work\n```\n\nTo sync a profile's config without launching it:\n\n```sh\ncodex-profile --sync-config work\n```\n\n## Safety\n\nBefore starting Codex, `codex-profile` removes auth/provider environment\nvariables such as `OPENAI_API_KEY`, `OPENAI_BASE_URL`, and `CODEX_API_KEY`. A\nprofile should use its own `codex login` session, not an API key or token\ninherited from your shell.\n\nCopied `config.toml` files are sanitized by removing `[*.env]` tables and any\nauth-bearing keys (`api_key`, `token`, `secret`, etc.).\n\n## Usage Reports\n\n```sh\ncodex-profile-usage\ncodex-profile-usage monthly\ncodex-profile-usage session\ncodex-profile-usage daily --since 2026-06-01\n```\n\n`codex-profile-usage` checks which profiles are logged in with\n`codex login status`, then summarizes local Codex usage logs with\n`ccusage codex`.\n\nThis reports local token and estimated-cost history. It does not read API keys\nor call undocumented live quota endpoints.\n\n## Terminal Titles\n\nInteractive launches set the terminal title to the profile name\n(`codex:<profile>`), so you can tell which account a window belongs to.\n\nCustomize or disable the terminal title:\n\n```sh\nCODEX_PROFILE_TITLE_PREFIX=\"cx:\" codex-profile work\nCODEX_PROFILE_SET_TERMINAL_TITLE=0 codex-profile work\n```\n\n## Launch Shortcuts\n\nEach profile launch also creates `~/.local/bin/codex-<profile>`, so the second\ntime around you can start a profile directly:\n\n```sh\ncodex-work\ncodex-personal\n```\n\nShortcuts are small generated scripts; removing a profile removes its shortcut,\nand existing commands not created by codex-profile are never overwritten.\nCustomize or disable:\n\n```sh\nCODEX_PROFILE_SHORTCUT_DIR=\"$HOME/bin\" codex-profile work\nCODEX_PROFILE_SHORTCUTS=0 codex-profile work\n```\n\n## Environment Variables\n\n| Variable | Default | Purpose |\n| --- | --- | --- |\n| `CODEX_PROFILES_ROOT` | `~/.codex-profiles` | Where profiles are stored |\n| `CODEX_PROFILE_SOURCE_CONFIG` | `~/.codex` | Config bootstrapped/synced from |\n| `CODEX_PROFILE_SHARED_ITEMS` | `AGENTS.md prompts skills rules` | Items symlinked from source config |\n| `CODEX_PROFILE_SYNC_CONFIG` | `1` | Re-sync `config.toml` on every launch |\n| `CODEX_PROFILE_SHORTCUT_DIR` | `~/.local/bin` | Where `codex-<profile>` shortcuts are written |\n| `CODEX_PROFILE_SHORTCUTS` | `1` | Create launch shortcuts |\n| `CODEX_PROFILE_SET_TERMINAL_TITLE` | `1` | Set the terminal title to the profile |\n| `CODEX_PROFILE_TITLE_PREFIX` | `codex:` | Terminal title prefix |\n| `CODEX_PROFILE_CODEX_BIN` | (auto) | Path to the `codex` binary |\n| `CODEX_PROFILE_CCUSAGE_PACKAGE` | `ccusage@latest` | ccusage package used by `npx` |\n\n## License\n\nMIT\n","readmeFilename":"README.md","_rev":"1-366995043fea9c96c68ee421d88e5953"}