claude-profiles 0.5.1

Launch claude with only the plugins, skills, and MCP servers a profile defines
claude-profiles-0.5.1 is not a library.

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.

License: MIT Platform Built with Rust

A standalone cross-platform CLI (Rust; macOS / Linux / Windows) โ€” not a plugin, and it never writes to your real ~/.claude at all: every plugin/skill a profile uses is vendored into that profile's own directory instead.

claude-profile rust-developer           # a lean Rust session โ€” nothing else loaded
claude-profile rust-developer frontend  # combine profiles for a task that spans both
claude-profile fuzzyalej/security       # install a shared profile repo, then launch it

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 install it 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; remove deletes it outright โ€” a real uninstall, not a disable.

Installing

Pick whichever fits your platform โ€” all install the same claude-profile binary.

macOS / Linux โ€” Homebrew:

brew install fuzzyalej/tap/claude-profiles

macOS / Linux โ€” shell (no Homebrew, no Rust needed):

curl -LsSf https://github.com/fuzzyalej/claude-profile/releases/latest/download/claude-profiles-installer.sh | sh

Windows โ€” PowerShell:

irm https://github.com/fuzzyalej/claude-profile/releases/latest/download/claude-profiles-installer.ps1 | iex

Any platform with Rust โ€” Cargo:

cargo install claude-profiles

Then verify:

claude-profile --version

Updating

Update the same way you installed:

brew upgrade claude-profiles                # Homebrew

curl -LsSf https://github.com/fuzzyalej/claude-profile/releases/latest/download/claude-profiles-installer.sh | sh   # shell (macOS/Linux) โ€” re-run to get latest

irm https://github.com/fuzzyalej/claude-profile/releases/latest/download/claude-profiles-installer.ps1 | iex        # Windows PowerShell โ€” re-run to get latest

cargo install claude-profiles              # Cargo โ€” reinstalls the latest published version
cargo install --path .
# or
cargo build --release   # then copy target/release/claude-profile onto your PATH

Tip: claude-profile is a mouthful to type all day. Add alias cpf=claude-profile to your shell. (We intentionally ship only the one binary name.)

Shell completion is built in:

claude-profile completions zsh --install   # bash, fish, powershell also supported

See completions for install paths per shell and OS.

Quick start

claude-profile rust-developer          # launch a session with only this profile's plugins
claude-profile rust-dev frontend       # launch a combined session (union of several profiles)
claude-profile fuzzyalej/rust-profile  # install a profile repo if needed, then launch its default
claude-profile list                    # profiles and where they come from
claude-profile status                  # what's vendored per profile
claude-profile remove rust-developer   # delete a profile and its vendored plugins/skills
claude-profile find python             # discover plugins to add to a profile

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.

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:

claude-profile install owner/repo   # fetch the pack's profiles
claude-profile <profile-name>       # launch the one you want

See Command reference for install, show, and pack update semantics.

Uninstalling

claude-profile self-uninstall           # removes the claude-profile binary
claude-profile self-uninstall --purge   # also removes ~/.claude-profiles (personal
                                         # 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

For contributors

Design specs and implementation plans behind notable features in claude-profile itself (not needed to author or use a profile โ€” only if you're changing the tool):

License

MIT โ€” see LICENSE.