Feature request: Claude Code profiles with isolated memory, commands, hooks, and settings
Problem
The Claude Code ecosystem has grown at breakneck speed. There are now dozens of batteries-included frameworks that enhance Claude with powerful context and subagent libraries, e.g.
- https://github.com/SuperClaude-Org/SuperClaude_Framework
- https://github.com/wshobson/commands and https://github.com/wshobson/agents
- https://github.com/wcygan/dotfiles
- https://github.com/carlrannaberg/claudekit
And many others listed here: https://github.com/hesreallyhim/awesome-claude-code
[!NOTE] These frameworks are incompatible with each other, but users may want to use all of them - different frameworks for different projects.
Solution
Introduce a new profiling feature into Claude Code that lets users configure a specific profile.
A new profiles directory would be added to .claude.
.claude
└── profiles
├── claudekit
│ ├── settings.json
│ ├── commands/
│ ├── context/
│ └── hooks/
└── superclaude
├── settings.json
├── agents/
└── commands/
Then, users would do something like this:
Profile Management Commands
# Set active profile - only commands and hooks from this profile are loaded in Claude Code
claude profile use <profile-name>
# List available profiles
claude profile list
# Create new profile
claude profile create <profile-name>
# Show current profile
claude profile current
# Delete profile
claude profile delete <profile-name>
Profile Structure
Each profile would contain:
-
CLAUDE.md- Profile-specific CLAUDE.md file -
settings.json- Profile-specific configuration overrides -
agents/- Custom agents for this profile -
commands/- Custom slash commands -
hooks/- Profile-specific hook configurations
All of these profile features will completely override the global features in the root .claude directory, except for
the settings.json file.
Settings Hierarchy
Profiles would inherit from global settings but override specific configurations, following Claude Code's existing settings hierarchy:
- Command line arguments (highest precedence)
- Active profile settings ← New layer
- Project-local settings (
.claude/settings.local.json) - Shared project settings (
.claude/settings.json) - User settings (
~/.claude/settings.json) (lowest precedence)
This allows users to seamlessly switch between framework configurations while maintaining project-specific overrides.
Found 2 possible duplicate issues:
- https://github.com/anthropics/claude-code/issues/630
- https://github.com/anthropics/claude-code/issues/1985
This issue will be automatically closed as a duplicate in 3 days.
- If your issue is a duplicate, please close it and 👍 the existing issue instead
- To prevent auto-closure, add a comment or 👎 this comment
🤖 Generated with Claude Code
I think this, in combination with https://github.com/anthropics/claude-code/issues/6915, will be important to properly scope different tasks while maintaining maximum context availability.
This will helps us have more than different marketplaces for different projects(using different profiles)
This issue has been inactive for 30 days. If the issue is still occurring, please comment to let us know. Otherwise, this issue will be automatically closed in 30 days for housekeeping purposes.
bump, still important feature