使用说明
ccprofile
配置文件管理器 Claude 代码 --切换技能组、子代理、斜线命令、插件和MCP服务器,以优化您的上下文窗口。
的问题
Claude代码加载 全部 将技能、代理、斜线命令、插件和MCP服务器定义注册到系统提示中。安装了30多种技能后,即使当前任务不需要大多数功能,也会浪费数千个令牌。
解决方案
ccprofile 允许您定义命名配置文件,将技能、代理、命令、插件和MCP服务器分组。用一个命令在它们之间切换,只在上下文窗口中保留您需要的内容,或者将配置文件绑定到目录并让 ccprofile auto 为你切换。
安装
npm install -g ccprofile
ccprofile init
这 init 命令:
- 验证是否安装了Claude代码
- 创造
~/.claude/profiles/和~/.claude/skills-disabled/目录 - 安装同伴技能(
/profile-edit)用于人工智能辅助的个人资料编辑 - 扫描您当前的技能和插件,并建议配置文件分组
快速开始
# See how many tokens each installed skill costs you
ccprofile stats
# Capture your current setup so you can always get back to it
ccprofile snapshot baseline
# Create a profile for document work
ccprofile create docs "Document processing"
# Add skills that should stay active when this profile is used
ccprofile add docs skill pdf
ccprofile add docs skill docx
ccprofile add docs skill xlsx
# Agents and slash commands work the same way
ccprofile add docs agent doc-reviewer
ccprofile add docs command summarize
# Disable plugins you don't need for doc work
ccprofile add docs plugin "frontend-design@claude-plugins-official" --disable
# Preview exactly what would change — no writes
ccprofile use docs --dry-run
# Activate the profile (moves unused skills to ~/.claude/skills-disabled/)
ccprofile use docs
# Check what's active and how many tokens you're saving
ccprofile current
# Go back to your original state (restores skills, plugins, AND MCP servers)
ccprofile reset
命令
| 命令 | 描述 |
|---|---|
ccprofile init |
设置ccprofile(直接指令、同伴技能、环境扫描) |
ccprofile use <name> |
激活配置文件 |
ccprofile current |
显示活动配置文件和当前令牌节省 |
ccprofile list |
列出所有配置文件 |
ccprofile show <name> |
显示个人资料详细信息和预计节省额 |
ccprofile create <name> [desc] |
创建新配置文件 |
ccprofile snapshot <name> [desc] |
将当前环境捕获为新配置文件 |
ccprofile rename <from> <to> |
重命名配置文件 |
ccprofile delete <name> |
删除个人资料 |
ccprofile reset |
恢复原始环境,清除活动配置文件 |
ccprofile stats |
显示每个项目的代币成本和每个配置文件的节省 |
ccprofile doctor |
检查环境和ccprofile状态是否存在问题 |
ccprofile add <profile> plugin <name> [--enable|--disable] |
添加插件切换 |
ccprofile add <profile> <skill|agent|command> <name> |
将技能/代理/命令添加到配置文件 |
ccprofile add <profile> mcp <name> [--enable|--disable] |
添加MCP服务器切换 |
ccprofile remove <profile> <plugin|skill|agent|command|mcp> <name> |
从配置文件中删除项目 |
ccprofile bind <profile> [dir] |
将目录(默认:cwd)绑定到配置文件 |
ccprofile unbind [dir] |
删除目录绑定 |
ccprofile bindings |
列出目录绑定 |
ccprofile auto |
激活绑定到当前目录的配置文件 |
ccprofile export <name> [file] |
将配置文件导出为JSON(如果没有文件,则使用stdout) |
ccprofile import <file|-> |
从JSON文件或stdin导入配置文件(--force 覆盖) |
所有读取命令均接受 --json 用于脚本编写。 use 和 reset 接受 --dry-run
无需编写任何内容即可预览更改。
衡量代币节省
ccprofile的全部目的是缩小系统提示,这样它就可以向您显示
这到底要花多少钱。Claude Code加载每个技能/代理/命令的元数据
(姓名+描述)在每次转弯时都会显示在系统提示中,直到实际
调用。 ccprofile stats 估算每个项目的经常性闲置成本以及如何估算
每个配置文件都节省了很多:
$ ccprofile stats
Idle token cost per item (loaded into the system prompt every turn):
[on] 180 tok skill playwright-cli
[on] 95 tok skill pdf
[on] 60 tok agent code-reviewer
[on] 22 tok command deploy
[off] 0 tok skill ccprofile # non-auto-invocable → ~0 idle cost
Total if all enabled: ~620 tokens
Currently active: ~275 tokens
Estimated savings per profile (vs. everything enabled):
docs active ~190 tok, saves ~430 tok
估计对每个项目的前体使用~4个字符/令牌启发式,以及
标记的项目 disable-model-invocation: true 被计为~0,因为它们是
未自动加载。
每个项目自动切换
将配置文件绑定到目录,ccprofile将从任何地方获取它 在那棵树里面:
ccprofile bind docs ~/work/docs-repo
cd ~/work/docs-repo/src
ccprofile auto # activates "docs" (re-syncs if drifted, no-op if in sync)
auto 将插件/MCP更改应用于 全球 ~/.claude/settings.json
只有;它没有 --project 模式。如果需要更改项目级设置,
显式激活 ccprofile use <profile> --project.
要使其自动运行,请在每个会话之前运行它,例如从shell别名运行:
alias cc='ccprofile auto && claude'
或克劳德密码 SessionStart 钩住 ~/.claude/settings.json (注意
技能在会话开始时加载,因此由钩子触发的切换需要
对 下一个 会话):
{
"hooks": {
"SessionStart": [
{ "hooks": [{ "type": "command", "command": "ccprofile auto" }] }
]
}
}
绑定存储在 ~/.claude/profiles/.bindings.json.
配置文件架构
配置文件是JSON文件,具有 version 字段(当前 2).对于
skills, agents,以及 commands 列表:
- 缺钥匙 --在应用配置文件时,保持该类型不受影响;
- 空列表
[]--禁用此类所有内容(受保护的除外 同伴技能等项目); - 非空列表 --保持这些项目处于活动状态。
v0.4.0之前编写的旧配置文件(否 version 字段)已使用 [] 意味着
“未触碰”;它们在负载时是标准化的,因此它们的行为不会改变。
共享个人资料
配置文件是纯JSON格式,因此您可以对其进行版本控制或与团队共享:
ccprofile export docs > docs-profile.json # or: ccprofile export docs docs-profile.json
ccprofile import docs-profile.json # validates shape; --force to overwrite
curl -s https://example.com/team-docs.json | ccprofile import -
运作原理
激活是 声明式:所需的环境计算如下 你的
原始基线与轮廓重叠,所以你得到的是纯净的
这两件事的作用——从来没有哪个配置文件碰巧是活动的
在两者之间。当你奔跑时 ccprofile use <name>:
- 技能:个人资料中列出的技能将保留
~/.claude/skills/。所有其他移动到~/.claude/skills-disabled/.同伴ccprofile技能总是保持活跃,所以/profile-edit永远不会消失。 - 代理和斜线命令:使用相同的保留列表机制
~/.claude/agents[-disabled]/和~/.claude/commands[-disabled]/.一个配置文件 不 某一种类的清单未涉及该种类;一 空的 列表([])禁用此类所有内容(受保护的项目除外)。 - 插件:集合
enabledPlugins臀部向内倾斜~/.claude/settings.json与覆盖有配置文件切换的基线值相比。从配置文件A切换到配置文件B 恢复A的切换 --它们不会积累。 - MCP服务器:与的覆盖语义相同
enabledMcpjsonServers/disabledMcpjsonServers.
首次从干净状态激活配置文件时,ccprofile会记录
基线快照 您的技能、代理、命令、插件和MCP
中的设置 ~/.claude/profiles/.baseline.json. ccprofile reset 恢复
基线,触摸 只有它记录的:你安装的技能或
您启用的插件 而 基线未知配置文件是否处于活动状态,以及
与您设置的完全相同。直接在配置文件之间切换可以保留
原始基线。
基线捕获 一 设置文件--全局
~/.claude/settings.json 或单个项目的 .claude/settings.json (参见
--project 在......下面保持 reset 能够完全撤消一切,ccprofile
拒绝 在以下情况下针对不同的设置目标激活配置文件
另一个仍然处于活动状态(例如,全局激活,而 --project
一个是活的)。跑 ccprofile reset 首先,然后切换目标。
配置文件存储为JSON文件 ~/.claude/profiles/.
项目级别
使用 --project 将设置更改(插件、MCP服务器)应用于
当前项目 .claude/settings.json 而不是全球性的:
ccprofile use docs --project
技能、代理和斜线命令始终存在 ~/.claude/ 并且被切换
全球不管 --project. --project 由支持 use; auto
始终以全局设置文件为目标。在切换之前先重置
项目目标和全球目标(见上文)。
同伴技能
运行后 ccprofile init一 /profile-edit slash命令在Claude Code中可用。它是 非自动发票 (空闲时令牌成本为零),仅在您显式键入时激活 /profile-edit。当您需要AI帮助以交互方式配置配置文件时,请使用它。
重要说明
- 更改需要重新启动Claude Code。 技能和插件在会话开始时加载,而不是在会话中期加载。
- 备份:修改前
settings.json,会自动创建带时间戳的备份(保留最近的5个)。 - 安全写入:使用原子文件写入,激活通过锁文件序列化(
~/.claude/profiles/.lock)所以aSessionStart手动指令不能交错文件移动。从崩溃的运行中损坏的锁会自动回收。 - 非破坏性:
ccprofile reset恢复首次激活前捕获的基线——技能、插件切换和MCP服务器列表都会恢复到原始状态,而您安装或切换的任何内容 之后 激活是不受影响的。基线跟踪单个设置文件,因此针对不同的目标(全局与全局)进行激活。--project)当配置文件处于活动状态时,将被拒绝,直到您reset. - 健康检查:
ccprofile doctor验证目录、设置文件、配置文件、绑定、基线/标记一致性和锁定状态,并标记活动和禁用目录中存在的项。
在Claude Code内部使用
由于这是一个CLI工具,您可以直接从Claude Code会话运行它,而无需使用AI令牌:
! ccprofile use docs
为什么不是AI技能?
关键在于 保存令牌通过人工智能运行配置文件管理将违背目的。该工具完全在您的shell中运行-零API调用,零令牌消耗。
可选 /profile-edit 伴侣技能仅适用于需要人工智能帮助编辑个人资料的情况。使用 disable-model-invocation: true,因此,在您明确调用它之前,它的成本为零。
警告/兼容性
- 与Claude Code内部相结合。 ccprofile依赖于以下约定
克劳德代码没有正式记录:主动技能/代理/命令
住在
~/.claude/{skills,agents,commands}/并通过移动它们而被禁用 给兄弟姐妹*-disabled/目录,以及插件和MCP服务器 切换通过enabledPlugins,enabledMcpjsonServers,以及disabledMcpjsonServers钥匙在settings.json.如果克劳德代码更新 更改这些文件的加载或存储方式后,ccprofile可以自动停止任何 直到更新到匹配为止。它与Anthropic无关。 - 令牌估计值是近似值。
ccprofile stats估算闲置成本 从一~4 chars/token对每个项目的正面名称进行启发式 描述(包括YAML块标量,如description: >).上下文 由插件和MCP服务器提供 不 算起来了——确实如此 通常是最大的份额,因为MCP工具模式仅在运行时已知。 将这些数字视为决定禁用什么的相对指导,而不是 对上下文窗口的精确统计。 - 更改将应用于下一次会话。 技能和插件加载在
会话启动,因此任何切换只有在您重新启动Claude Code后才生效。
这也意味着由以下因素触发的开关
SessionStart钩子总是一个 会议落后。
许可证
麻省理工学院
