Codex 技能开关不生效:仍加载遗留目录 ~/.agents/skills
Quick fix
手动删除 ~/.agents/skills 中的残留副本或配置禁用,因 CC-Switch 无法接管该共享目录。
Symptom
Section titled “Symptom”[Bug] Codex 技能开关不生效:codex 仍会加载遗留目录 ~/.agents/skills 中的技能副本Codex CLI 原生行为是从两个目录加载技能:现行规范目录 ${CODEX_HOME:-~/.codex}/skills 和旧版本遗留目录 ~/.agents/skills(Agent Skills 开放标准的用户级目录)。cc-switch 仅管理前者(通过符号链接),当在 cc-switch 中关闭技能开关时,只会移除 ~/.codex/skills 下的链接,而不会触碰 ~/.agents/skills 中的真实副本。因此,即使开关关闭,Codex 仍会从 ~/.agents/skills 加载这些技能,导致“开关不生效”的假象。
此外,如果用户在 cc-switch 设置中将存储位置切换为 ~/.agents/skills,则该目录成为单一事实源(SSOT)。此时 cc-switch 会在 ~/.codex/skills 创建指向它的符号链接。关闭开关仅删除 ~/.codex/skills 中的链接,但 SSOT 中的文件仍在 ~/.agents/skills 中,Codex 依然能读取到。由于 Codex 不对同名技能去重,若两个目录同时存在同一技能,还会导致技能列表重复。
确认 ~/.agents/skills/ 目录中存在哪些被 cc-switch 标记为关闭但仍被加载的技能副本。
手动删除 ~/.agents/skills/ 目录下对应的技能文件夹,以彻底移除 Codex 可访问的副本。
# 路径: ~/.agents/skills/<skill-name>/或者,修改 Codex 配置文件 config.toml,显式禁用特定技能。
路径: ~/.codex/config.toml [[skills.config]]path = "/Users/user-name/.agents/skills/<skill-name>/SKILL.md"enabled = false
Affected Versions
Section titled “Affected Versions”Source Issues
Section titled “Source Issues”本页汇总自 1 个真实 issue
- 为什么 cc-switch 不能自动清理 ~/.agents/skills?
- 因为 ~/.agents/skills 是 Agent Skills 开放标准的用户级目录,其他工具(如 Claude Code, Copilot CLI)也可能在此写入技能。cc-switch 尊重这一共享标准,不擅自修改或删除该目录下的内容,以免破坏其他工具的配置。
- 如何避免技能列表重复?
- 确保技能只存在于一个目录中。要么将 cc-switch 的存储位置设为默认 ~/.cc-switch/skills,并清理 ~/.agents/skills 中的副本;要么将存储位置设为 ~/.agents/skills,并确保 ~/.codex/skills 中没有多余的符号链接指向同一技能。
这是一个非官方社区 wiki,与 cc-switch 作者及项目本身无隶属关系。内容整理自项目公开的 GitHub issues。本站不分发任何软件。