跳转到内容

Codex 技能开关不生效:仍加载遗留目录 ~/.agents/skills

Quick fix

手动删除 ~/.agents/skills 中的残留副本或配置禁用,因 CC-Switch 无法接管该共享目录。

报错原文
[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 不对同名技能去重,若两个目录同时存在同一技能,还会导致技能列表重复。

  1. 确认 ~/.agents/skills/ 目录中存在哪些被 cc-switch 标记为关闭但仍被加载的技能副本。

  2. 手动删除 ~/.agents/skills/ 目录下对应的技能文件夹,以彻底移除 Codex 可访问的副本。

    # 路径: ~/.agents/skills/<skill-name>/
  3. 或者,修改 Codex 配置文件 config.toml,显式禁用特定技能。

    路径: ~/.codex/config.toml
    [[skills.config]]
    path = "/Users/user-name/.agents/skills/<skill-name>/SKILL.md"
    enabled = false
ToolCodex
Version0.147.0
PlatformsmacOS
为什么 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。本站不分发任何软件。