skls-mgr:统一管理 Agent Skills 的 CLI 工具

28 阅读4分钟

现在用 AI 工具 skills 是越加越多,之前我一直用 vercel-labs/skills 管理技能,但我感觉这个项目迷惑的是:不管技能安装到全局还是项目,它始终会将技能文件保存到全局或项目下的 .agents/skills 目录下,再软链到要安装的目录。

我很少将技能安装到全局,大部分是在项目中按需安装。所以每有一个新项目,我就需要去找技能的安装命令(这难道是增加 skills.sh 访问量的手段?),安装后项目中又多了一份技能副本和我不想要的 .agents 目录。

这种当我面在项目里拉屎的感觉让我很难受,索性自己参照实现了一个新工具 skls-mgr

skls-mgr 的解法

核心思路只有一句话:集中存储,按需软链。

所有技能统一安装到 ~/.config/skls-mgr 这一个目录下,无论是从 GitHub 拉取的托管技能,还是自己写的本地技能,都在这里统一管理。

需要在某个项目中使用时,只需执行 install 命令,从已有技能库中选择并软链过去(全局安装就软链到全局目录)。

技能文件只有一份,修改立即生效,所有项目同步更新。

快速开始

skills.sh 中查找目标技能,将安装命令中的 skills 改为 skls-mgr

npx skls-mgr add https://github.com/vercel-labs/skills --skill find-skills

安装完成后,技能会被复制到 ~/.config/skls-mgr 目录,随后在任意项目中执行:

npx skls-mgr install

交互式选择项目所需技能,确定后安装完成。


添加技能

npx skls-mgr add <source>

默认会进入交互式界面,列出来源包含的全部技能。

选项

选项说明
-s, --skill <names...>直接指定要安装的技能名,跳过技能选择

示例

# GitHub shorthand(owner/repo)
npx skls-mgr add vercel-labs/skills

# GitHub 仓库 URL
npx skls-mgr add https://github.com/vercel-labs/skills

# GitHub 仓库中的子路径
npx skls-mgr add https://github.com/vercel-labs/skills/tree/main/skills/find-skills

# 任意 Git URL
npx skls-mgr add https://github.com/vercel-labs/skills.git
npx skls-mgr add git@github.com:vercel-labs/skills.git

# 本地路径(复制)
npx skls-mgr add ./my-local-skills

# 安装指定技能(重复写 --skill)
npx skls-mgr add vercel-labs/agent-skills --skill frontend-design --skill skill-creator

# 安装指定技能(单个 --skill 后跟多个名称)
npx skls-mgr add vercel-labs/agent-skills --skill frontend-design skill-creator

冲突处理

如果待安装技能的目录名和 ~/.config/skls-mgr 中已有一级目录重名:

  • 交互模式下,会要求你输入新的目录名
  • 非交互模式下,如果使用了 --skill,命令会直接终止,不会自动改名

安装到项目

npx skls-mgr install

默认会进入交互式界面,列出 ~/.config/skls-mgr 下全部一级目录(包括手动创建的技能)。

选项

选项说明
-s, --skill <names...>直接指定要安装的技能名,跳过交互式技能选择
-a, --all安装全部技能
-d, --dir <path>安装到目标目录,支持相对路径或绝对路径
-l, --link使用符号链接
-c, --copy使用复制方式

示例

# 交互式安装到项目
npx skls-mgr install

# 安装指定技能,跳过交互式选择
npx skls-mgr install --skill skill-one skill-two --dir ./.claude/skills --link

# 将所有技能复制到 Claude Code 技能目录
npx skls-mgr install --all --dir ./.claude/skills --copy

# 交互式选择所需技能,链接到 .agents/skills 目录
npx skls-mgr install --dir ./.agents/skills --link

覆盖策略

如果目标目录下已存在同名技能目录,skls-mgr install 会直接覆盖,不再额外确认。当选择 --link 时,如果当前环境无法创建符号链接,会自动回退为复制安装。


其他命令

命令说明
npx skls-mgr find [query]搜索远程技能;不传关键词时可交互式搜索并添加选中的技能
npx skls-mgr list列出 ~/.config/skls-mgr 中的全部技能,支持区分托管技能与手动技能
npx skls-mgr update [names...]交互式或根据指定名称更新技能
npx skls-mgr remove [names...]交互式或根据指定名称删除技能
npx skls-mgr help显示帮助
npx skls-mgr version显示版本

示例

# 显示全部技能(包括手动添加技能)
npx skls-mgr list

# 按关键词搜索远程技能
npx skls-mgr find react performance

# 交互式搜索,并添加选中的技能
npx skls-mgr find

# 交互式更新技能
npx skls-mgr update

# 按名称强制更新技能
npx skls-mgr update skill1 skill2

# 交互式删除技能
npx skls-mgr remove

# 按名称删除技能
npx skls-mgr remove skill1 skill2

skls-mgr update 依赖 GitHub API。为避免匿名请求带来的限流限制(每小时 60 次),建议在环境变量中配置 GITHUB_TOKENGH_TOKEN 以提升配额(每小时 5000 次)。


find-skills

find-skills 技能也参考实现了一份,推荐使用本项目中的 find-skills 技能,让 AI 帮你查找可能有用的技能并安装。

# 添加技能
npx skls-mgr add Xaviw/skills-manager --skill find-skills

# 安装技能到全局
npx skls-mgr install --skill find-skills --dir ~/.claude/skills --link

# 或者按需安装到项目
npx skls-mgr install --skill find-skills --dir ./.claude/skills --link