claude-profile
Seamless profile management for Claude Code
Switch between work and personal configurations, different MCP server setups, or separate settings — without ever thinking about it.
curl -fsSL https://raw.githubusercontent.com/pegasusheavy/claude-code-profiles/main/install.sh | sh
Why claude-profile?
Like nvm for Node or
pyenv for Python —
but for your Claude Code configuration.
Transparent
Just run claude.
Your default profile is automatically resolved — no special commands needed.
Isolated
Each profile is a complete config directory — settings, credentials, MCP servers, history. Everything.
Shell Native
Lightweight shell functions for bash, zsh, and PowerShell. Plus cmd.exe batch support.
Zero Overhead
No daemon. No background process. Just a function that sets an env var before calling claude.
How it works
Create profiles
One per context — work, personal, client projects, experiments.
Set a default
Your default profile is automatically applied every time you launch Claude Code.
Just use claude
No special commands. Run claude like you always have.
Commands
Everything you need to manage your profiles.
| Command | Description |
|---|---|
| claude-profile | Show current profile status |
| claude-profile use <name> | Switch to a profile for this session |
| claude-profile create <name> | Create a new profile |
| claude-profile list | List all profiles |
| claude-profile default [name] | Get or set the default profile |
| claude-profile which [name] | Show the config directory path |
| claude-profile delete <name> | Delete a profile (with confirmation) |
| claude-profile help | Show help |
Install
One command. Restart your shell. Done.
curl -fsSL https://raw.githubusercontent.com/pegasusheavy/claude-code-profiles/main/install.sh | sh
Works with bash and zsh.
The installer downloads a script and adds a source line to your shell profile.
Frequently Asked Questions
Everything you need to know about managing Claude Code profiles.
What is claude-profile?
claude-profile is a free, open-source tool that lets you manage multiple
Claude Code configuration profiles. Each profile is
a complete, isolated config directory containing settings, credentials, MCP servers,
history, and CLAUDE.md. It works like
nvm for Node.js or
pyenv for Python —
transparently resolving your active profile when you run the
claude command.
How does claude-profile work?
claude-profile provides a transparent
claude() shell function wrapper.
Before each invocation, the wrapper checks if a default profile is set and automatically
sets the CLAUDE_CONFIG_DIR environment
variable. If CLAUDE_CONFIG_DIR is
already set (e.g., via
claude-profile use), it passes
through without overriding. The real
claude binary is then called with all
your arguments.
What shells are supported?
claude-profile supports bash, zsh, PowerShell 5.1+, PowerShell Core (pwsh) 6+, and Windows cmd.exe. On Unix shells it works via sourceable shell functions. On Windows it provides both a PowerShell module and a cmd.exe batch script.
Can I switch profiles temporarily?
Yes. Run claude-profile use <name>
to switch to a different profile for the current shell session only. This overrides the
default without changing it. The override lasts until you close the shell or run
claude-profile use again.
Where are profiles stored?
On Linux and macOS, profiles are stored at
$XDG_DATA_HOME/claude-profiles/
(default: ~/.local/share/claude-profiles/).
On Windows, profiles are stored at
%LOCALAPPDATA%\claude-profiles\.
Each profile directory is a complete Claude Code configuration directory.
What is CLAUDE_CONFIG_DIR?
CLAUDE_CONFIG_DIR is an environment
variable supported by Claude Code that redirects where it stores configuration and data.
claude-profile manages this variable automatically, setting it to point to your active
profile directory before each
claude invocation.
Session overrides
Need a different profile for one shell session? Override the default without changing it.
Switched to profile: personal
$ claude # uses "personal" until you close this shell