cc-profiles

Concepts

Profiles

A profile is a folder Claude Code uses for its configuration: ~/.claude by default, or whatever CLAUDE_CONFIG_DIR points to. Each profile has its own:

Profiles are a good way to keep separate contexts on one machine: work and personal, or one profile per client. Claude.ai connectors and usage limits belong to the account, not the profile, so two profiles logged into the same account share them.

The source profile

The first profile in config.json is the source profile. Other profiles share items from it (see below). It cannot be deleted, and its command is always claude.

Projects

Claude Code stores what belongs to a project in a folder under projects/, named after the project’s absolute path with every non-alphanumeric character replaced by -. For example, /Users/you/code/api becomes -Users-you-code-api.

Because of this:

A project “lives” in a profile when that profile has its conversations or memories. The same project can appear in several profiles.

Rules

Rules say which profile a project belongs to. Each rule matches text in the project’s path:

{ "match": "code/work", "profile": "work" }

When a project belongs to one profile but has content in another, the Projects tab offers Move to ….

Sharing

A profile can share an item with the source profile: skills, plugins, agents, commands, CLAUDE.md or settings.json. Sharing replaces the item with a relative symlink (for example ~/.claude-work/skills → ../.claude/skills), so you install or edit once and every sharing profile sees it.

Notes:

Backups

Every operation that changes files creates a backup: a folder in ~/.cc-profiles/backups/ with the original files and a journal of every step (copied, moved, created…). Restore replays the journal backwards and puts everything back. A restore is itself an operation with its own backup, so it can be undone too.

Nothing is ever deleted outright. “Delete” moves things into the backup, and only deleting a backup really erases data. See Backups.