Codex自创Skill在UI不显示是因注册失败,主因包括SKILL.md含UTF-8 BOM、frontmatter含未引号包裹的冒号、agents/openai.yaml缺失display_name或short_description字段,或缓存未刷新。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

Codex Skill安装后在UI技能列表里完全找不到,明明文件已放进.codex/skills目录、也重启了程序,但“可用技能”里还是空的——这种情况不是安装失败,而是注册环节被 silently 跳过。
先确认 Skill 文件是否真的被 Codex 读到
打开终端或命令提示符,执行:codex list-skills。如果返回空列表或只显示系统内置 Skill,说明 Codex 根本没加载你放进去的文件。
进入你的用户目录,检查路径是否正确:
Windows:查看 C:\Users\用户名\.codex\skills\
macOS/Linux:查看 ~/.codex/skills/。
【必须确保 SKILL.md 在每个子文件夹最顶层,不能嵌套在 src/ 或 docs/ 里】
用文本编辑器(如 VS Code)右键打开 SKILL.md → “文件编码” → 确认是 UTF-8 without BOM。带 BOM 的文件会导致 frontmatter 解析失败,Codex 直接跳过整个 Skill。
检查 frontmatter 是否合法且位置正确
用任意编辑器打开 SKILL.md,把光标放在第一行最开头,按方向键 ← 缓慢移动。如果能向左越过第一个字符,说明开头有不可见字符(BOM 或空格),删掉它。
frontmatter 必须严格从第一行开始,格式为:
```yaml
---
name: gh-fix-ci
description: Fix GitHub CI configuration files
---
```
通过本地 Codex 或 OpenClaw OAuth 凭证直接调用 ChatGPT/Codex Responses 的 image_generation 工具来生成或编辑光栅图像,然后保存
注意:description 字段若含冒号(如 Triggers: /fix-ci),必须用双引号包裹整段值,否则 YAML 解析器会误判为键值对而崩溃。
验证 agents/openai.yaml 是否缺失关键字段
打开 ~/.agents/openai.yaml(Windows 是 C:\Users\用户名\.agents\openai.yaml),检查是否存在以下两个必填字段:
```yaml
display_name: GitHub CI Fixer
short_description: Auto-corrects .github/workflows/*.yml syntax and best practices
```
这两个字段哪怕缺一个,Skill 就不会出现在 UI 列表中。如果文件不存在,手动创建;如果存在但格式错乱(比如缩进不统一、用了 Tab 混合空格),重写一份纯空格缩进的版本。
强制刷新 Skill 注册缓存
第一步:关闭所有 Codex 进程(包括后台服务)。
第二步:删除 ~/.codex/cache/skills/ 整个文件夹(Windows 同路径)。
第三步:重新启动 Codex Desktop 或运行 codex serve。
第四步:立即在聊天框输入:请问我现在有哪些 skills 可以使用? 观察返回结果。
这一步绕过了内存缓存,强制 Codex 重新扫描磁盘并解析每个 SKILL.md。如果此前因 BOM 或 YAML 错误导致缓存固化,此操作可彻底清零。

















