| Crates.io | ccprof |
| lib.rs | ccprof |
| version | 0.2.0 |
| created_at | 2026-01-12 13:47:53.197219+00 |
| updated_at | 2026-01-19 02:19:19.465813+00 |
| description | Claude Code Profile Switcher - manage multiple user settings profiles |
| homepage | |
| repository | |
| max_upload_size | |
| id | 2037753 |
| size | 196,264 |
ccprof is a command-line tool written in Rust to manage multiple user settings profiles for Claude Code. It allows you to easily switch between different configurations (e.g., personal vs. work, different API keys, or project-specific settings) by managing the ~/.claude/settings.json file.
work, personal).ccprof use <name>).~/.claude/settings.json to the active profile, ensuring Claude Code always sees the correct file.doctor command to verify setup and health.Clone the repository:
git clone https://github.com/HexSleeves/ccprof.git
cd ccprof
Build and install:
cargo install --path .
This will install the ccprof binary to your Cargo bin directory (usually ~/.cargo/bin), which should be in your PATH.
See all available profiles and which one is active.
ccprof list
View detailed information about the currently active profile and the state of ~/.claude/settings.json.
ccprof current
Create a new profile. Currently, you can only create a profile by copying your existing ~/.claude/settings.json.
# Create a profile named "work" from your current settings
ccprof add work --from-current
Activate a different profile. This updates the symlink at ~/.claude/settings.json to point to the selected profile's settings.
ccprof use work
Open a profile's settings.json in your default editor ($EDITOR or system default).
ccprof edit work
Run the diagnostics tool to check for common issues, such as broken symlinks or invalid JSON files.
ccprof doctor
ccprof operates by managing the ~/.claude/settings.json file.
~/.claude-profiles/profiles/. Each profile is a directory containing a settings.json file.state.json in ~/.claude-profiles/ to track the last selected profile.ccprof use <name>, it:
~/.claude/settings.json if it's a regular file (not a symlink) to ~/.claude-profiles/backups/.~/.claude/settings.json with a symbolic link pointing to ~/.claude-profiles/profiles/<name>/settings.json.~/.claude-profiles/
├── backups/ # Backups of original settings.json files
├── profiles/ # Profile storage
│ ├── default/ # Example profile
│ │ └── settings.json
│ └── work/ # Example profile
│ └── settings.json
└── state.json # Internal state tracking
Contributions are welcome! Please feel free to submit a Pull Request.
git checkout -b feature/amazing-feature)git commit -m 'Add some amazing feature')git push origin feature/amazing-feature)This project is licensed under the MIT License - see the Cargo.toml file for details.