claude-profile
Give every task its own Claude Code. Launch claude with only the plugins, skills,
marketplaces, and MCP servers a profile defines โ everything else on your machine is never
loaded for that session.
A standalone cross-platform CLI (Rust; macOS / Linux / Windows) โ not a plugin, and it
never installs anything into your real ~/.claude: every plugin/skill a profile uses is
vendored into that profile's own directory instead.
Why
If you use Claude Code seriously, your ~/.claude becomes a junk drawer. Every plugin, skill,
and MCP server you've ever installed loads into every session โ the Rust linter you need
today sits in context next to the Kubernetes tools, the writing skills, and the three MCP
servers from that experiment last month. It all costs tokens, it all adds noise, and none of it
is scoped to what you're actually doing.
claude-profile fixes that with profiles: a tiny JSON file that says "for this kind of
work, load exactly these things." Launch a profile and you get a focused session; open a second
terminal with a different profile and the two don't interfere.
- ๐ฏ Focused sessions โ only the tools relevant to the task are enabled.
- ๐ช Many at once โ different terminals run different profiles simultaneously.
- ๐ฆ Shareable โ publish a profile repo; teammates
installit and launch by name, backed by a lockfile so it resolves to the same plugin code across machines and over time. - ๐งน Non-destructive โ every plugin/skill a profile uses is vendored into that profile's own
directory;
removedeletes it outright โ a real uninstall, not a disable.
Installing
Pick whichever fits your platform โ all install the same claude-profile binary.
macOS / Linux โ Homebrew:
macOS / Linux โ shell (no Homebrew, no Rust needed):
|
Windows โ PowerShell:
irm https://github.com/fuzzyalej/claude-profile/releases/latest/download/claude-profiles-installer.ps1 | iex
See Before you start on Windows for prerequisites.
Any platform with Rust โ Cargo:
Then verify:
Before you start on Windows
claude-profile runs in PowerShell, Command Prompt, Windows Terminal, and Git Bash. Before you
launch a profile, make sure you have the following:
- Git for Windows.
claude-profileusesgitto fetch marketplaces and profile repos. Git for Windows also includessh.exe, which runs an existing statusline command. To install it, runwinget install --id Git.Git -e. - Claude Code, with
claudeon yourPATH. Both the native installer (claude.exe) and an npm install (claude.cmd) work.
To check both, open a new terminal and run:
git --version
claude --version
If either command isn't found, install the missing tool, and then open a new terminal so it
picks up the updated PATH.
Good to know:
- Profiles and vendored plugins are stored in
%USERPROFILE%\.claude-profiles. IfHOMEis set, as it is in Git Bash,claude-profileuses%HOME%\.claude-profilesinstead. Use the same shell type each time, so all your sessions see the same profiles. - If you installed Git in a custom location, set
CLAUDE_CODE_GIT_BASH_PATHto the full path ofbash.exeorsh.exe. Claude Code reads the same variable. If no shell is found, the statusline command runs throughcmd /Cinstead. claude-profile completions powershell --installadds completion to the$PROFILEof every PowerShell edition you have installed, PowerShell 7 and Windows PowerShell 5.1 alike.
Updating
Update the same way you installed:
|
|
# or
Tip:
claude-profileis a mouthful to type all day. Addalias cpf=claude-profileto your shell. (We intentionally ship only the one binary name.)
Shell completion is built in:
See completions for install paths per shell and OS.
Quick start
Not sure what to put in a profile? claude-profile find python searches a local,
cross-marketplace index and prints copy-paste-ready plugin@marketplace ids. See
Authoring profiles for the full JSON format and find
for the flag reference.
Bundled profiles
claude-profile ships ready-made profiles for Rust, Python, Go, Java, .NET, Ruby, Rails,
TypeScript, Angular, Vue, React, and Tauri desktop work, plus frontend, rails-hyperdrive,
and clean (plain Claude Code, no extras). They are built into the binary and available as
soon as you install it. Run claude-profile list to see them, or claude-profile show <name>
to inspect one. See Authoring profiles.
What a profile controls
A profile is a small JSON file naming plugins, skills, marketplaces, and MCP servers. Launching it vendors exactly those entries into the profile's own directory and loads only those โ nothing else on the machine is registered. Passing several profiles at once launches a combined session with the union of all of them.
Full details, including the vendoring/pinning model and how multi-profile launches merge and conflict-check: How it works.
Important limitation: your global CLAUDE.md and memory are NOT gated
Claude Code loads your global/project CLAUDE.md and auto-loaded memory from sources a profile
cannot isolate โ they load in every session regardless of profile. See
How it works ยง What is NOT gated for why this isn't
"fixed" and what to do about it.
Sharing profiles
A repo can hold many profiles. install clones it and makes every profile in it available by
name, without launching anything:
See Command reference for install, show, and pack update semantics.
Coordinate many sessions
coordinate launches a session that delegates tasks to worker sessions. Each worker runs with
its own profile, in its own git worktree and branch:
Headless workers can't ask you to approve edits, so pass a permission mode that allows them.
Inside Herdr, workers open in their own background tabs in the coordinator's workspace. Elsewhere they run headless. See Coordinate many sessions.
Uninstalling
# profiles, cloned packs, locks, and every
# profile's vendored plugins/skills)
claude-profile remove <profile> removes a single profile's data and vendored plugins/skills โ
see Command reference.
Learn more
- Authoring profiles โ the profile JSON format, marketplaces, pinning,
extends. - Command reference โ every command, its flags, and behavior.
- Coordinate many sessions โ run workers from a coordinator session.
- How it works โ the isolation model, provisioning, pinning, and known limitations.
- Statusline snippet โ show the active profile in your Claude Code statusline.
License
MIT โ see LICENSE.