命令字典
Slash 命令、CLI 子命令、Hook 事件、启动参数的字典与演进史。
Slash 命令、CLI 子命令、Hook 事件、启动参数的字典与演进史。
列出可用 skills 和隐藏不需要的
/skills 是 Claude Code 的会话内交互菜单命令,用于逐项管理已安装 skill 的可见性。选择后写入 .claude/settings.local.json 的 skillOverrides 字段(官方文档未明示生效时机,是否需要重启属推断,此处不下结论)。
平台/版本要求(来自官方 settings 文档):
| 功能 | 最低版本 |
|---|---|
skillListingBudgetFraction / maxSkillDescriptionChars 设置 | v2.1.105 |
skillOverrides + /skills 菜单写入 | v2.1.129 |
官方文档
code.claude.com/docs/en/settings明确收录了/skills命令及其写入机制。
在会话任意位置输入:
/skills
菜单列出当前所有可见 skill,可逐项切换可见级别。
官方 skillOverrides 字段支持以下四个值,/skills 菜单对应写入这些值:
| 值 | 含义 |
|---|---|
"on" | 完整显示(Claude 能看到描述、会自动触发) |
"name-only" | 仅保留名称(Claude 知道它存在但看不到描述;官方原文为 collapsed to bare names so Claude can still invoke them but won't see why,"不会自动触发"未见官方明示,属推断) |
"user-invocable-only" | 仅用户可显式调用(官方仅列出该值,行为系字面推断) |
"off" | 完全隐藏(官方原文为 hide or collapse a skill;"不占 budget"未见官方明示,属推断) |
/doctor 命令会报告当前被截断的 skill 数量及受影响的 skill 名称,是使用 /skills 之前的诊断入口。
/doctor
/skills 菜单的选择结果自动写入 .claude/settings.local.json。也可以手动编辑全局 (~/.claude/settings.json) 或项目级 (.claude/settings.json) 配置:
{
"skillOverrides": {
"legacy-context": "name-only",
"deploy": "off"
},
"skillListingBudgetFraction": 0.02,
"maxSkillDescriptionChars": 2048
}
三个相关设置说明(均来自官方 settings 文档):
| 设置键 | 默认值 | 说明 |
|---|---|---|
skillListingBudgetFraction | 0.01(1%) | Claude 每轮可用于 skill 列表的上下文窗口占比;超出时最少使用的 skill 被折叠为仅名称 |
maxSkillDescriptionChars | 1536 | 单个 skill 描述的字符上限;超出则截断,但 skill 仍保留在列表中 |
skillOverrides | —— | 键为 skill 名称,值为上方四种可见性之一;/skills 菜单写入此字段 |
注意字段名: 官方文档用的是
maxSkillDescriptionChars,而非skillListingMaxDescChars。
| 约束 | 来源 |
|---|---|
Plugin skill 不受 /skills 管理,需通过 /plugin 命令操作 | 官方 settings 文档原文 |
skillOverrides 要求 v2.1.129+ | 官方 settings 文档 |
让更多 skill 进入列表(不禁用/不折叠它们)会增加每次会话的上下文消耗,速率限制更快耗尽——issue 原文 "Opting in would cost ~2k tokens for skills every session and uses rate limits faster";skillListingBudgetFraction 调高同理会放大 skill 列表的占用 | GitHub issue #57599 原始 warning 消息 |
/skills(管理可见性)经常被和"刷新 skill"和"看 skill 状态"的命令搞混,三者职责不同:
| 命令 | 作用 | 写入/影响 |
|---|---|---|
/skills | 逐项设置已安装 skill 的可见级别(on / name-only / user-invocable-only / off) | 写 .claude/settings.local.json 的 skillOverrides,立即生效 |
/reload-skills | 重扫 skill / command 目录,加载会话期间新增或改动的 skill | 不改可见性配置,只刷新运行时已加载内容 |
/doctor | 诊断当前被截断的 skill 数量及受影响名称 | 只读,不写配置;是用 /skills 之前的入口 |
简单记:调谁可见用 /skills,让新写的 skill 生效用 /reload-skills,查谁被预算截断用 /doctor。四个可见级别里 off 完全隐藏 skill(官方表述为 hide or collapse,其是否完全不占 listing budget 未见官方明示,属推断)。
/doctor 确认哪些 skill 被截断,再用 /skills 将一个月未用的 skill 设为 "off"——比提升 skillListingBudgetFraction 更省 token。"user-invocable-only",/skill-name 仍可直接调用(其是否阻止 Claude 自动触发未见官方明示,属字段名字面推断)。"name-only",释放 budget 给重要 skill 的完整描述。maxSkillDescriptionChars(官方名)常被第三方文章误写为 skillListingMaxDescChars,后者不生效。run /skills to disable some;该 issue 被标记为 duplicate/stale,说明这是已知的设计权衡而非 bug,最终以 "not planned" 关闭。/skills 能管理 plugin skill:官方文档明确指出 plugin skill 走 /plugin 通道,/skills 对其无效。skillOverrides、skillListingBudgetFraction、maxSkillDescriptionChars 字段原文)