codex-profiles – Coding skill for AI agents
Use codex-profiles to run Codex CLI or Codex Desktop with isolated CODEX_HOME profiles for separate accounts, projects, and local state.
Install the codex-profiles skill with one command
Pick the tool you use, copy the command and paste it in your terminal. The skill lands in that tool's skills folder and is ready in your next session.
Claude Code
mkdir -p ~/.claude/skills && curl -fsSL https://skill.dn1nguoi.com/z/codex-profiles-a3a28.tgz | tar xz -C ~/.claude/skills
Call it in Claude Code: /codex-profiles – then describe the task you want done.
Codex
mkdir -p ~/.codex/skills && curl -fsSL https://skill.dn1nguoi.com/z/codex-profiles-a3a28.tgz | tar xz -C ~/.codex/skills
Call it in Codex: $codex-profiles – then describe the task you want done.
Hermes Agent
mkdir -p ~/.hermes/skills && curl -fsSL https://skill.dn1nguoi.com/z/codex-profiles-a3a28.tgz | tar xz -C ~/.hermes/skills
Call it in Hermes Agent: /codex-profiles – then describe the task you want done.
DeepSeek
mkdir -p ~/.deepcode/skills && curl -fsSL https://skill.dn1nguoi.com/z/codex-profiles-a3a28.tgz | tar xz -C ~/.deepcode/skills
Call it in DeepSeek: /codex-profiles – then describe the task you want done.
SKILL.md content
Codex Profiles
Overview
Use codex-profiles when a user wants separate Codex CLI or Codex Desktop contexts for work, personal, school, client, or project-specific activity. The tool wraps Codex's CODEX_HOME support so each profile has its own Codex home directory for auth, config, sessions, connectors, plugins, caches, logs, and local state.
This skill is for profile selection and operational safety around that boundary. It is not an official OpenAI project, and it does not provide full OS-level isolation.
When to Use This Skill
- Use when the user wants to keep multiple Codex accounts or project contexts separate on one machine.
- Use when a workflow needs a different
CODEX_HOMEwithout manually exporting environment variables. - Use when diagnosing which Codex profile is active or whether profiles are logged in.
- Use when the user asks about Codex account switching without copying
auth.json. - Use when launching Codex Desktop from a profile, only after confirming the user accepts app/process disruption.
How It Works
Step 1: Confirm Scope and Installation
First check whether the user wants CLI-only profile switching or Codex Desktop profile launching. Desktop operations can quit, launch, clone, or rebuild app instances, so get explicit approval before running them.
If the tool is already installed, inspect the live command surface:
codex-profile --help
codex-profile doctor
codex-profile list
codex-profile statusIf it is not installed, prefer package-manager installs the user can inspect and control:
npm install -g codex-profile
brew install Ducksss/tap/codex-profileDo not run remote install scripts automatically. If the user asks for a source install, clone the repository and inspect its install instructions first.
Step 2: Create or Select a Profile
Create a new isolated Codex home only when the user names the intended profile:
codex-profile init work
codex-profile path workAsk the user to log in once per profile when needed:
codex-profile login workDo not copy, parse, print, or migrate auth.json tokens between profiles.
Step 3: Run Codex CLI With a Profile
Use the CLI profile wrapper for ordinary agent work:
codex-profile cli work
codex-profile cli work exec "run tests and summarize failures"For one-off shell sessions, prefer the tool's environment or shell activation commands after checking --help:
codex-profile env work
codex-profile shell-init --helpStep 4: Use Desktop Profile Commands Carefully
Codex Desktop launch flows can affect running app state. Before running them, state which profile, app mode, and workspace will be used, then wait for approval.
codex-profile app work ~/Dev/project
codex-profile app work --instance ~/Dev/projectUse --instance only when the user wants side-by-side Desktop profiles and accepts the additional local app clone and separate Electron user-data boundary.
Examples
Example 1: Read-Only Profile Audit
codex-profile list
codex-profile status
codex-profile doctorUse this before changing profile state. It should not expose token contents.
Example 2: CLI Task in a Work Profile
codex-profile cli work exec "inspect this repository and run its test suite"Confirm the profile name is intentional before running long tasks.
Example 3: Manual CODEX_HOME Equivalent
If the wrapper is unavailable, explain the underlying boundary instead of improvising token movement:
CODEX_HOME="$HOME/.codex-work" codex
CODEX_HOME="$HOME/.codex-work" codex exec "review this change"Best Practices
- Keep profile names explicit and boring, such as
work,personal,client-a, orschool. - Use
status,list, anddoctorbefore destructive or Desktop actions. - Treat each profile as a separate local Codex home, not as a full sandbox.
- Keep secrets inside the account/profile that owns them; do not copy auth files between profiles.
- Prefer CLI profile commands for routine work and reserve Desktop app commands for user-approved context switches.
- Verify behavior against the installed
codex-profile --help, because command flags can change.
Limitations
codex-profilesis community-maintained and is not an official OpenAI tool.- It isolates Codex state through separate
CODEX_HOMEdirectories; it does not isolate the operating-system user, shell history, SSH keys, browser cookies, GitHub CLI auth, or unrelated application state. - Desktop profile launch behavior is macOS-focused and can change with Codex Desktop releases.
- Existing Codex sessions may still contain project context from before a profile strategy was adopted.
- The tool does not replace backups for important Codex state.
Security & Safety Notes
- Never copy, print, parse, or migrate
auth.jsontokens as a shortcut. - Do not run Desktop launch, app clone, rebuild, remove, or profile deletion commands without explicit user approval.
- Use
codex-profile removeonly after confirming the exact profile path and whether the user needs a backup. - Do not assume profile isolation protects credentials outside
CODEX_HOME. - Avoid remote install scripts in automated agent runs; prefer inspectable package-manager or source-install steps.
Common Pitfalls
- Problem: A user expects profile switching to isolate GitHub CLI, SSH, or browser state.
Solution: Explain that codex-profiles isolates Codex home state only; check and switch other tools separately.
- Problem: A Desktop command disrupts an active session.
Solution: Ask before Desktop operations and prefer CLI commands when the user only needs isolated command-line work.
- Problem: A profile exists but is logged out or missing connectors.
Solution: Run codex-profile status and have the user log in or configure connectors inside that profile.
Related Skills
@environment-setup-guide- Use when installing or documenting local development tools.@codex-maintenance- Use when maintaining local Codex Desktop, MCP, plugin, or cache surfaces.@filesystem-context- Use when reasoning about local files, config paths, and workspace boundaries.
Related skills
- codex-review – Professional code review with auto CHANGELOG generation, integrated with Codex AI. Use…
- cohesivity – Provision headless backend services for AI agents through Cohesivity: hosting…
- commandcode-delegate – Delegate coding tasks to the Command Code CLI (`cmd`) only when the user explicitly…
- react-state-management – Master modern React state management with Redux Toolkit, Zustand, Jotai, and React…
- pr-lens – Draw code changes as animated architecture/data-flow SVGs.
- community-building – When the user wants to build, grow, or improve a developer community on Discord, Slack…
- redteam-mindset – Red-team operator discipline — the mindset corrections that separate offensive testing…
- pyzotero – Manages Zotero reference libraries using the pyzotero Python client: retrieves, creates…