by Ducksss
Named CODEX_HOME profiles and ChatGPT Desktop windows with separate local state, without copying tokens
# Add to your Claude Code skills
git clone https://github.com/Ducksss/codex-profilesGuides for using cli tools skills like codex-profiles.
Last scanned: 8/23/2026
{
"issues": [
{
"file": "README.md",
"line": 80,
"type": "remote-install",
"message": "Install command (remote install script piped to a shell — review the source before running): \"curl -fsSL https://raw.githubusercontent.com/Ducksss/codex-profiles/main/install\"",
"severity": "low"
},
{
"file": "README.md",
"line": 423,
"type": "dangerous-command",
"message": "Dangerous command (recursive delete of home/root): \"rm -rf \"$HOME\"",
"severity": "medium"
}
],
"status": "PASSED",
"scannedAt": "2026-08-23T04:35:56.470Z",
"npmAuditRan": true,
"pipAuditRan": true,
"promptInjectionRan": true
}See how codex-profiles compares with popular alternatives.
codex-profiles is an open-source cli tools skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by Ducksss. Named CODEX_HOME profiles and ChatGPT Desktop windows with separate local state, without copying tokens. It has 177 GitHub stars.
Yes. codex-profiles passed SkillsLLM's automated security scan — a dependency vulnerability audit plus prompt-injection heuristics — with no high-severity issues. You can read the full report in the Security Report section on this page.
Clone the repository with "git clone https://github.com/Ducksss/codex-profiles" and add it to your Claude Code skills directory (see the Installation section above).
codex-profiles is primarily written in Shell. It is open-source under Ducksss on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other CLI Tools skills you can browse and compare side by side. Open the CLI Tools category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh codex-profiles against similar tools.
No comments yet. Be the first to share your thoughts!
Top skills in this category by stars
⚠️ Third-Party Software Notice
This skill is third-party open-source software developed and hosted independently on GitHub. SkillsLLM is an informational directory and does not control or maintain the underlying repository.
Any security checks, ratings, or warnings displayed by SkillsLLM are automated and limited in scope. They do not constitute a security certification or guarantee that the software is safe, error-free, or free from malicious code, vulnerabilities, compromised dependencies, or prompt-injection risks.
Review the source code, permissions, dependencies, and configuration before installing or running any third-party skill. Use is at your own risk. To the maximum extent permitted by applicable law, SkillsLLM is not liable for losses arising from third-party software.
Named Codex homes. Separate ChatGPT windows.
Keep personal, work, and client Codex profiles organized. Open named ChatGPT windows on macOS, and bind projects to the profile they use.
10-second looping overview; desktop UI is illustrative. Watch the full 30-second video with sound.
Quick start · Workflows · Manual · Project site
The CLI's welcome screen. Run codex-profile to see it in your terminal.
run.A single Bash script with no runtime dependencies beyond standard system tools. Community-maintained; not an official OpenAI project.
You need Bash and a working Codex CLI (on PATH, or discoverable from the
installed macOS app). Desktop launches also require the installed ChatGPT app.
The npm installation below requires npm; a standalone installer is available
under other installation methods.
npm install -g codex-profile
codex-profile setup work
codex-profile cli work
setup work creates the profile and offers Codex CLI login. Accept the login
prompt and authenticate with the account you want for this profile. Setup also
offers project binding, terminal integration, and a launcher on macOS; each is
optional and defaults to no. Terminal integration adds the profile prompt,
completions, tab titles, and completion notifications to your shell startup
file after showing the exact snippet for approval. Open a new shell to use it.
Setup requires an interactive terminal and can reuse an existing profile.
The npm package is codex-profile (singular). It installs both
codex-profile and codex-profiles; the plural npm package is another project.
For scripts or manual setup:
codex-profile init work
codex-profile login work
codex-profile cli work
Initialize a name before launching it. Commands refuse unknown profiles so a typo does not silently create another home.
Copy this prompt into your coding agent:
Install and configure codex-profiles using this guide:
https://github.com/Ducksss/codex-profiles/blob/main/agent.md
Ask me which profile names I want. Guide me through signing in.
After setting up work above, add your personal profile:
codex-profile setup personal
codex-profile cli personal
codex-profile cli work exec "review this repo"
Run codex-profile cli without a name for an interactive picker. Use the arrow
keys and Enter, or type to filter profiles. The project's binding is selected
first, or your current shell profile when there is no binding; both are marked
separately. Exact names and menu numbers also work. In scripts, pass the name
explicitly. Each profile authenticates independently.
For a profile label and completions in your current shell:
# Use bash instead of zsh for Bash.
eval "$(codex-profile shell-init zsh --prompt --completions)"
codex-profile use work
Fish and persistent setup are covered in shell integration.
To label terminal tabs and receive one-shot completion notifications, opt in:
export CODEX_PROFILE_TERMINAL_TITLE=1 CODEX_PROFILE_NOTIFY=1
codex-profile cli work exec "run tests"
Titles identify the profile and launch directory. Notifications require a compatible terminal. Terminal feedback details.
From your project directory, bind the initialized work profile:
codex-profile workspace bind . work
codex-profile run
codex-profile run exec "run tests and summarize failures"
The nearest bound parent directory wins, so subprojects can use different
profiles. Bindings are private local metadata; no project files are changed.
In a terminal, run without a binding offers profile selection and optional
binding. Declining the binding still launches the selected profile.
Explicitly launching a different profile warns by default.
Workspace rules and strict mode.
Using the initialized work profile:
codex-profile app work
Sign into ChatGPT in the named window when prompted. Desktop and CLI sign-in are separate; the tool does not verify that they use the same account. Different names can run side by side, and reopening a name reuses its process and local data. The selected local state covers Chat, Work, and Codex.
To open your normal stock session:
codex-profile init default
codex-profile app default
To open the profile bound to your current project:
codex-profile run --app
The original signed app stays untouched. For a named, colored shortcut in Finder or the Dock, see macOS launchers.
Source checkouts can build Codex Profiles.app for macOS 13 or newer:
make menu-app
open "build/macos/Codex Profiles.app"
Open an existing profile in ChatGPT or Terminal, or choose Create profile… on first run. No project folder is required. Add workspace… optionally binds a folder to a profile for project shortcuts. Search and filter profiles, pin frequent projects, repair moved folders, change a binding, or open a row in the other destination from its actions menu. Use ↑/↓ and Return, or ⌘1–9, to launch from the keyboard. Open at Login in the gear menu keeps the companion in the menu bar.
Profile rows show remaining Codex CLI quota beside the name, with window durations, compact meters and reset times on hover. A low window turns its meter orange or red and shows when it resets. The official CLI reads each profile's limits; unavailable readings leave the profile usable. ⌘R refreshes usage. These limits belong to the profile's Codex CLI sign-in; Desktop may use a different account.
The menu follows the system's light/dark appearance, accent colours, contrast, transparency and Reduce Motion preferences, including changes while running.
The app bundles the CLI and supports Apple silicon and Intel. Building needs
Swift on macOS; installing the built app needs neither Swift nor a separate
codex-profile installation. ChatGPT launches require the official app;
Terminal launches and optional CLI sign-in require the official Codex CLI.
Desktop and CLI sign-in remain separate.
make menu-dmg creates a disk image with an Applications shortcut and a
SHA-256 checksum. Local builds are unsigned development artifacts. This
companion is not yet a published release download. See the
macOS guide and previews for installation, keyboard
controls, and Developer ID signing and notarisation.
| Selection | Local state used |
|---|---|
default |
~/.codex; app default preserves the stock ChatGPT Desktop session. |
Any other name, such as work |
~/.codex-work; app work also uses that home's electron-user-data/. |
cli, login, env, use |
Codex-only selection; these do not switch an open ChatGPT window. |
Profiles do not inherit from default. Explicit configuration sharing is
available through init --share-with.
Profile names such as work are your labels, independent of ChatGPT's Work mode.
The tool never reads or copies authentication tokens or ChatGPT cookies. Local-state separation is not an account, OS, or server-side security boundary. OS credentials, external tools, and server-side policies remain outside its control. Use separate OS users when you need a stronger boundary. See the security model and profile layout.
The npm command in Quick start is the shortest path for npm users.
With Homebrew:
brew install Ducksss/tap/codex-profile
With the standalone installer:
curl -fsSL https://raw.githubusercontent.com/Ducksss/codex-profiles/v1.2.0/install.sh \
| CODEX_PROFILE_VERSION=v1.2.0 sh
With Nix:
nix run github:Ducksss/codex-profiles/v1.2.0
nix profile install github:Ducksss/codex-profiles/v1.2.0
From source:
git clone https://github.com/Ducksss/codex-profiles.git
cd codex-profiles
make install
Then verify the installation:
codex-profile doctor