列出已安装技能
学完你能做什么
- 使用
openskills list查看所有已安装的技能 - 理解
(project)和(global)位置标签的区别 - 快速统计项目技能和全局技能的数量
- 判断技能是否安装成功
你现在的困境
安装了几个技能后,你可能遇到这些问题:
- "我刚才安装了哪些技能?忘记了"
- "这个技能是安装到项目还是全局了?"
- "为什么某些技能在 A 项目能看到,在 B 项目看不到?"
- "我想删除一些用不到的技能,但不知道具体名字"
openskills list 命令就是为了解决这些疑惑——它像技能的"目录",帮你一目了然地看到所有已安装的技能及其位置。
什么时候用这一招
| 场景 | 动作 |
|---|---|
| 安装技能后确认是否成功 | 执行 openskills list 查看技能是否出现 |
| 切换到新项目,检查可用技能 | 执行 openskills list 看看有哪些 project 技能 |
| 清理技能前先盘点 | 执行 openskills list 列出所有技能,再删除不需要的 |
| 调试技能加载问题 | 确认技能名和安装位置是否正确 |
核心思路
OpenSkills 支持在4 个位置安装技能(按查找优先级):
- project .agent/skills - 项目级的通用技能目录(多代理环境)
- global .agent/skills - 全局的通用技能目录(多代理环境)
- project .claude/skills - 项目级的 Claude Code 技能目录
- global .claude/skills - 全局的 Claude Code 技能目录
openskills list 会:
- 遍历这 4 个目录查找所有技能
- 去重:同一个技能名只显示一次(优先显示 project 的)
- 排序:project 技能在前,global 技能在后;同一位置内按字母顺序
- 标记位置:用
(project)和(global)标签区分 - 统计汇总:显示 project 技能数、global 技能数和总数
为什么需要去重?
如果你在 project 和 global 都安装了同一个技能(例如 pdf),OpenSkills 会优先使用 project 版本。list 命令只显示一次,避免混淆。
跟我做
第 1 步:列出所有已安装技能
为什么 快速查看当前环境下有哪些技能可用
执行以下命令:
bash
npx openskills list你应该看到
如果没有安装任何技能,会显示:
Available Skills:
No skills installed.
Install skills:
npx openskills install anthropics/skills # Project (default)
npx openskills install owner/skill --global # Global (advanced)如果已安装技能,会看到类似:
Available Skills:
pdf (project)
Comprehensive PDF manipulation toolkit for extracting text and tables...
code-analyzer (project)
Static code analysis tool for identifying security vulnerabilities...
email-reader (global)
Read email content and attachments via IMAP protocol...
Summary: 2 project, 1 global (3 total)第 2 步:理解输出格式
为什么 知道每行代表什么含义,才能快速定位需要的信息
输出格式说明:
| 部分 | 说明 |
|---|---|
pdf | 技能名称(从 SKILL.md 的 name 字段提取) |
(project) | 位置标签:蓝色表示项目级技能,灰色表示全局技能 |
Comprehensive PDF... | 技能描述(从 SKILL.md 的 description 字段提取) |
Summary: 2 project, 1 global (3 total) | 统计汇总:project 技能数、global 技能数、总数 |
第 3 步:验证位置标签
为什么 确认技能安装到了预期位置,避免"为什么这个项目看不到这个技能"的疑惑
尝试以下操作来理解位置标签:
bash
# 1. 安装一个项目级技能
npx openskills install anthropics/skills -y
# 2. 查看列表(应该显示 project 标签)
npx openskills list
# 3. 安装一个全局技能
npx openskills install anthropics/skills --global -y
# 4. 再次查看列表(两个 pdf 技能,只显示一次,标签为 project)
npx openskills list你应该看到
Available Skills:
pdf (project)
Comprehensive PDF manipulation toolkit for extracting text...
Summary: 1 project, 0 global (1 total)即使全局和项目都安装了同一个技能,list 命令也只会显示一次,因为 project 版本优先级更高。
检查点 ✅
确认以下内容:
- [ ] 执行
openskills list能看到已安装的技能列表 - [ ] 能区分
(project)和(global)标签(颜色不同:蓝色 vs 灰色) - [ ] Summary 统计数字正确(project 技能数 + global 技能数 = 总数)
- [ ] 理解同一个技能名只显示一次的规则
踩坑提醒
常见问题 1:找不到刚安装的技能
现象:执行 install 命令成功,但 list 看不到
排查步骤:
- 检查是否在正确的项目目录下(project 技能只对当前项目可见)
- 确认是否安装到了全局(用
--global标志) - 验证安装位置:
bash
# 检查项目目录
ls -la .claude/skills/
# 检查全局目录
ls -la ~/.claude/skills/常见问题 2:看到奇怪的技能名
现象:技能名不是你预期的(例如文件夹名 vs SKILL.md 中的 name)
原因:OpenSkills 使用 SKILL.md 中的 name 字段作为技能名,而不是文件夹名
解决方法:检查 SKILL.md 的 frontmatter:
yaml
---
name: pdf # 这是 list 命令显示的名称
description: Comprehensive PDF manipulation toolkit...
---常见问题 3:描述显示不全
现象:技能描述被截断了
原因:这是终端宽度的限制,不影响技能内容
解决方法:直接查看 SKILL.md 文件获取完整描述
本课小结
openskills list 是技能管理的"目录"命令,帮你:
- 📋 查看所有技能:一目了然地看到已安装技能
- 🏷️ 区分位置标签:
(project)表示项目级,(global)表示全局级 - 📊 统计汇总:快速了解 project 和 global 技能的数量
- 🔍 排查问题:验证技能是否安装成功,定位技能位置
核心规则:
- 同名技能只显示一次(project 优先)
- project 技能在前,global 技能在后
- 同一位置内按字母顺序排列
下一课预告
下一课我们学习 更新技能。
你会学到:
- 如何从源仓库刷新已安装技能
- 批量更新所有技能
- 处理无元数据的旧技能
附录:源码参考
点击展开查看源码位置
更新时间:2026-01-24
| 功能 | 文件路径 | 行号 |
|---|---|---|
| list 命令实现 | src/commands/list.ts | 7-43 |
| 查找所有技能 | src/utils/skills.ts | 30-64 |
| 搜索目录配置 | src/utils/dirs.ts | 18-25 |
| Skill 类型定义 | src/types.ts | 1-6 |
关键函数:
listSkills():列出所有已安装技能,格式化输出findAllSkills():遍历 4 个搜索目录,收集所有技能getSearchDirs():返回 4 个搜索目录路径(按优先级)
关键常量:
- 无(搜索目录路径是动态计算的)
核心逻辑:
- 去重机制:使用
Set记录已处理的技能名(skills.ts:32-33, 43, 57) - 位置判断:通过
dir.includes(process.cwd())判断是否为 project 目录(skills.ts:48) - 排序规则:project 优先,同位置按字母顺序(list.ts:21-26)