npm.io
0.1.1 • Published 3d agoCLI

yeah-skills-manager

Licence
MIT
Version
0.1.1
Deps
5
Size
38 kB
Vulns
0
Weekly
0

yeah-skills-manager

AI 编码代理的个人技能管理工具 —— 在一个集中位置安装、同步并管理 SKILL.md 技能。

yeah-skills-manager(命令为 sm)把分散在各个仓库里的 Agent SkillsSKILL.md)统一收纳到本地的 ~/.yeah-skills-manager 目录,并能将所选技能一键同步进任意项目的 SKILLS.md,供 AI 编码代理(Claude、Cursor、Copilot 等)识别和调用。


目录


核心概念

  • 集中存储:所有技能都被复制到 ~/.yeah-skills-manager/skills/<name>,并在 ~/.yeah-skills-manager/registry.json 中登记元数据(来源、安装时间、别名等)。
  • 来源(source):技能的安装出处,可以是 GitHub 仓库简写、Git URL 或本地路径。同一来源下的多个技能会被分组展示。
  • 同步(sync):把你挑选的技能写入当前项目的 SKILLS.md。其中包含给 AI 用的 <available_skills> XML 块,以及给人看的 Markdown 表格。
  • 别名(alias):你给技能起的、便于自己识别的名字,仅在 CLI 列表中展示,不会进入 SKILLS.md,也不会改动技能的 description

安装

需要 Node.js >= 20.6.0。

# 全局安装(发布后)
npm install -g yeah-skills-manager

# 或免安装直接使用
npx yeah-skills-manager <command>

安装后即可使用 sm 命令。


快速开始

# 1. 从 GitHub 安装一组技能
sm install obra/superpowers

# 2. 以树形结构查看已安装的技能
sm list

# 3. 在某个项目目录下,交互式挑选技能并写入 SKILLS.md
cd path/to/your/project
sm sync

# 4. AI 代理在需要时读取某个技能的完整内容
sm read brainstorming

命令参考

运行 sm --help 查看所有命令,或 sm <command> --help 查看单个命令的用法。

sm install 安装技能

从 GitHub 仓库、Git URL 或本地路径安装技能。会自动识别以下三种目录布局:

  • <root>/SKILL.md(单个技能)
  • <root>/<name>/SKILL.md(平铺的多个技能)
  • <root>/skills/<name>/SKILL.md(嵌套在 skills/ 下)

当仓库不符合上述自动识别布局时,可以在 source 后面显式传入一个或多个技能目录(空格分隔):

  • sm install <source> <folder1> <folder2> ...
  • 目录路径相对于仓库根目录(或本地 source 根目录)
# GitHub 仓库简写 owner/repo
sm install anthropics/skills

# 任意 Git URL
sm install git@github.com:obra/superpowers.git

# 本地路径
sm install ./my-local-skills

# 显式指定一个或多个技能目录(空格分隔)
sm install ant-design/x tools/skill-a tools/skill-b

# 仅安装来源中的某一个技能
sm install anthropics/skills --name pdf
选项 说明
-n, --name <技能名> 仅安装来源中指定的某个技能
sm list 查看技能

默认以树形结构按来源分组展示所有已安装技能(别名 ✓ AI 识别用的 description)。

sm list                  # 树形展示(默认)
sm ls                    # 简写别名
sm list --flat           # 扁平列表
sm list --filter pdf     # 按名称/描述过滤(自动启用扁平模式)
选项 说明
-f, --flat 以扁平列表展示,而非树形结构
--filter <关键词> 按名称或描述过滤技能
sm sources 查看来源

按来源分组列出所有技能,并显示每个来源的远程地址,形如 obra/superpowers: https://github.com/obra/superpowers.git

sm sources                          # 查看所有来源及其远程地址
sm sources --remove                 # 交互式选择一个来源并删除其下所有技能
sm sources --remove -s obra/superpowers   # 直接删除指定来源
选项 说明
--remove 删除模式:选择一个来源并删除其下所有技能
-s, --source <来源地址> 直接指定要删除的来源(配合 --remove
sm sync 同步到项目

交互式(树形勾选)选择技能,写入当前项目的 SKILLS.md。会保留你在受管理区块之外手动添加的内容。

sm sync                       # 交互式选择并写入 SKILLS.md
sm sync -o docs/SKILLS.md     # 自定义输出路径
sm sync -y                    # 非交互:保留现有选择,若无则全选

交互式树形界面快捷键:

按键 作用
↑ / ↓ 在可见行间移动
→ / ← 展开 / 收起来源节点
Space 切换选择(技能)或切换整个来源
a / n 全选 / 全不选
Enter 确认
Ctrl+C 取消
选项 说明
-o, --output <路径> 输出文件路径(默认 SKILLS.md
-y, --yes 跳过交互,保留当前选择(若无为全选)
sm read 读取技能内容

将一个或多个技能的完整 SKILL.md 内容打印到标准输出,供 AI 代理读取使用。

sm read brainstorming
sm read brainstorming writing-plans     # 一次读取多个
sm alias 设置别名

为技能设置便于你自己识别的别名。别名只在 CLI 列表中展示,不会写入 SKILLS.md,也不会修改技能的 description

sm alias brainstorming 头脑风暴      # 直接设置
sm alias brainstorming               # 交互式输入
sm alias brainstorming --clear       # 清除别名
选项 说明
--clear 清除别名
sm update 更新技能

从记录的来源重新拉取并更新技能。别名等本地设置会被保留。

sm update                    # 更新全部已安装技能
sm update brainstorming      # 更新指定技能
sm manage 批量移除

先以树形结构展示所有技能,再交互式(按来源分组)勾选要移除的技能。

sm manage
sm remove 移除单个技能
sm remove brainstorming
sm rm brainstorming          # 简写别名
sm open 打开安装目录

在系统文件管理器中打开技能目录。

sm open                  # 交互式选择技能后打开
sm open brainstorming    # 直接打开指定技能目录
sm open --store          # 打开整个技能存储根目录
选项 说明
--store 打开技能存储根目录 ~/.yeah-skills-manager/skills

别名 vs 描述

这是本工具的一个关键设计,务必理解二者区别:

别名(alias) 描述(description)
面向对象 人类 AI
来源 你用 sm alias 自定义 技能 SKILL.md frontmatter 原文
展示位置 仅 CLI 列表(list / sources / manage 写入 SKILLS.md 供 AI 识别
是否可改 description 同步时使用原文

别名是给你看的,description 是给 AI 用的。如果修改了 description,AI 就无法准确识别技能用途——所以别名与 description 被刻意分开,互不影响。


SKILLS.md 文件结构

sm syncSKILLS.md 中维护一个被标记包裹的受管理区块:

<!-- SKILLS_TABLE_START -->
<!-- Managed by yeah-skills-manager (sm sync). Do not edit this block manually. -->
<available_skills>
  ... 给 AI 用的 <skill> XML 条目 ...
</available_skills>

## Selected Skills
  ... 给人看的 Markdown 表格 ...
<!-- SKILLS_TABLE_END -->
  • 两个标记之间的内容由 sm sync 全权管理,请勿手动编辑。
  • 标记之外的内容(如自定义说明)会被完整保留。

存储位置

路径 说明
~/.yeah-skills-manager/ 存储根目录
~/.yeah-skills-manager/skills/<name>/ 每个技能的副本(含 references/scripts/assets/
~/.yeah-skills-manager/registry.json 技能元数据登记表(来源、别名、安装/更新时间)
~/.yeah-skills-manager/.tmp/ 安装/更新时克隆 Git 仓库的临时目录

从源码开发

git clone <this-repo>
cd skills-manager
npm install

npm run dev -- <command>   # 用 tsx 直接运行源码,例如:npm run dev -- list
npm run typecheck          # 仅类型检查
npm run build              # 编译到 dist/
npm start -- <command>     # 运行编译产物

License

MIT

Keywords