每日壁纸

用 Skills Manager 管理多个 Skill:统一管理、跨 Agent 分发与 GitHub 多设备同步

Published on
/18 mins read/---

随着 AI 编程工具越来越多,我的开发环境中逐渐积累了不少 Skill。

例如:

  • Claude Code:日常 AI 编程助手
  • Codex:代码开发、重构与自动化任务
  • Cursor:AI 辅助代码编辑
  • 其他支持 Agent Skills 的 AI 工具

不同工具都有自己的 Skill 存储目录。如果每个工具单独维护一份 Skill,就会产生一些问题:

  1. 重复维护:同一个 Skill 需要在多个目录中分别修改。
  2. 版本不一致:不同 Agent 使用的 Skill 可能不是同一个版本。
  3. 管理混乱:Skill 越来越多,很难快速找到需要的能力。
  4. 跨设备困难:换一台电脑后,需要重新安装和配置所有 Skill。
  5. 缺少版本管理:修改 Skill 后,如果效果不好,很难恢复之前的版本。

有没有一种方式,可以把所有 Skill 集中管理,再统一分发给不同的 AI Agent,同时支持 GitHub 备份和多设备同步?

这就是我使用 Skills Manager 的原因。

项目地址:

https://github.com/xingkongliang/skills-manager

官网:

https://skillsmanager.dev/


一、为什么需要 Skills Manager?

上面列的五个问题,本质上都是同一个根因:Skill 的存放位置和它的维护者不是同一个人。

Agent 工具的目录结构是被工具决定的,而 Skill 的内容是被人决定的。这两件事本来不该耦合,但一旦每个工具都自带一个目录,耦合就发生了 —— 于是「改一个 Skill 要动三个地方」。

Skills Manager 的做法是在中间加一层:不让任何 Agent 目录成为事实上的源头,而是把「谁在维护」和「谁在消费」这两件事分开。

角色传统做法Skills Manager
事实源头每个 Agent 目录各一份~/.skills-manager/skills/ 唯一一份
分发方式手动复制Symlink 或 Copy 部署
备份无,或靠系统备份GitHub 私有仓库自动提交
多设备重新装一遍连远程库,恢复即可
版本回退没有Git 提交历史 + 冲突前快照

二、Skills Manager 的核心设计

Skills Manager 的核心思路是:

建立一个统一的中央 Skill 仓库,由它负责管理所有 Skill,再根据需要分发到不同的 AI Agent。

整体架构可以理解为:

                 Skills Manager
                        |
                        |
              Central Skill Library
                ~/.skills-manager
                        |
            +-----------+-----------+
            |           |           |
       Claude Code    Codex      Cursor
            |           |           |
         Skills      Skills      Skills
            |           |           |
            +-----------+-----------+
                        |
                     GitHub
                        |
                  Remote Backup
                        |
                +---------------+
                |               |
             MacBook           PC
                |               |
          Local Library   Local Library

这里有三个重要概念。

1. Central Skill Library:中央技能库

Skills Manager 会将从本地目录、Git 仓库、压缩包或 Skills Marketplace 导入的 Skill,统一管理在中央仓库中。

默认目录:

~/.skills-manager/

其中主要的 Skill 文件集中在:

~/.skills-manager/skills/

例如:

~/.skills-manager/
└── skills/
    ├── frontend-design/
    │   ├── SKILL.md
    │   ├── references/
    │   └── assets/
    │
    ├── code-review/
    │   └── SKILL.md
    │
    ├── git-workflow/
    │   └── SKILL.md
    │
    └── database-design/
        └── SKILL.md

这样就不需要在 Claude Code、Codex 和 Cursor 中分别维护同一份 Skill。

2. Agent Workspace:Agent 工作区

中央仓库负责管理 Skill,而 Agent 工作区负责将 Skill 部署到具体工具。

Skills Manager 支持通过两种方式同步:

  • Symlink:符号链接
  • Copy:文件复制

如果使用 Symlink,Agent 目录中的 Skill 会指向中央仓库中的对应文件,修改中央仓库后,链接目标的内容也会随之变化。

如果使用 Copy,则会产生独立副本,中央仓库修改后,需要重新部署或同步。

因此,如果希望尽可能减少重复维护,可以优先考虑 Symlink,但需要注意不同操作系统和目录权限的差异。

3. GitHub Backup:远程备份

Skills Manager 还支持通过 GitHub 或其他 Git Remote 进行备份和多设备同步。

这样,中央仓库不再只是本地的 Skill 管理目录,也可以成为跨设备共享的技能库。

三、如何将已有 Skill 导入 Skills Manager?

如果之前已经积累了一些 Skill,不需要重新创建,可以直接导入。

例如,原来的 Skill 目录:

~/my-skills/
├── frontend-design/
│   └── SKILL.md
│
├── code-review/
│   └── SKILL.md
│
└── git-workflow/
    └── SKILL.md

打开 Skills Manager,选择从本地目录导入 Skill。

导入后,Skill 会进入中央技能库。

例如:

~/.skills-manager/
└── skills/
    ├── frontend-design/
    ├── code-review/
    └── git-workflow/

这里需要特别注意:

导入后,不要想当然地认为原始目录和中央仓库始终是实时同步的。

对于本地导入的 Skill,Skills Manager 提供重新导入功能来更新中央库内容。因此,建议以中央仓库中的版本作为后续维护的主要版本。

我的习惯是:

  • 原始目录:保留为备份。
  • 中央仓库:作为日常维护入口。
  • Agent 目录:作为实际使用和部署的位置。

这样可以避免同时维护多份文件造成混乱。

四、如何统一管理多个 Skill?

当 Skill 数量增加后,仅仅集中存储还不够,还需要分类和组织。

Skills Manager 提供了几种实用功能。

1. Skill 标签管理

可以根据 Skill 的用途添加标签,例如:

标签Skill 类型
frontend前端开发
backend后端开发
database数据库
devops运维和部署
workflow开发工作流
testing测试和质量保证

这样可以根据标签快速筛选需要的 Skill。

2. Preset:技能预设

这是一个非常实用的功能。

不同 Agent 或开发场景需要的 Skill 并不完全相同。

例如,可以建立以下预设:

Frontend Development

frontend-design
react-best-practices
ui-ux-guidelines
accessibility

Backend Development

api-design
database-design
code-review
testing

Full Stack Development

frontend-design
react-best-practices
api-design
database-design
git-workflow

之后可以通过 Preset 快速激活或停用一组 Skill。

需要注意:Preset 的应用是一次性部署,不是实时同步。中央库中后续修改 Skill,仍然需要按照部署方式更新对应 Agent。

3. 批量操作

当 Skill 数量较多时,可以通过批量操作:

  • 批量启用或停用。
  • 批量导出。
  • 批量删除。
  • 批量部署到 Agent。

对于需要同时管理多个 AI 编程工具的开发环境,这些功能可以减少大量重复操作。

五、最重要的问题:Skill 修改哪个目录?

这是我实际使用时特别关注的问题。

当我们将本地 Skill 导入 Skills Manager 后,通常会看到两个甚至多个相同名称的目录:

原始目录:
~/my-skills/frontend-design/
 
中央仓库:
~/.skills-manager/skills/frontend-design/
 
Agent 目录:
~/.claude/skills/frontend-design/

那么,后续应该修改哪一个?

我的建议是:

以 Skills Manager 中央仓库为主要维护入口。

例如:

code ~/.skills-manager/skills/frontend-design

修改:

SKILL.md
references/
scripts/
assets/

保存后,再根据 Agent 的部署方式决定是否需要重新同步。

目录定位建议
原始导入目录初始来源或备份不作为日常维护入口
~/.skills-manager/skills中央技能库日常编辑
~/.claude/skillsClaude Code 使用目录尽量不直接修改
~/.codex/skillsCodex 使用目录尽量不直接修改
Cursor Skill 目录Cursor 使用目录尽量不直接修改

这里有一个重要细节:

如果部署方式是 Symlink,修改中央仓库就可以让 Agent 读取到更新后的内容。

如果部署方式是 Copy,中央仓库修改后,还需要重新部署或同步。

另外,如果已经直接修改了 Agent 目录中的复制版本,不能默认这些修改会自动反向同步到中央仓库。

因此,最好建立统一的编辑习惯:中央仓库负责维护,Agent 目录负责使用。

六、使用 GitHub 实现 Skill 备份和多设备同步

这是 Skills Manager 最值得使用的功能之一。

以前更换电脑时,需要重新安装所有 Skill,逐个配置 Agent。

现在可以通过 GitHub 备份,将技能库放到远程 Git 仓库中。

1. 连接 GitHub

打开 Skills Manager 左侧的 Backup 页面。

选择:

Sign in with GitHub

按照提示完成授权。

根据项目文档,Skills Manager 可以自动创建一个私有仓库:

skills-manager-backup

也可以在设置中配置其他 Git Remote,例如:

  • GitHub 私有仓库
  • HTTPS + Personal Access Token
  • SSH Git 仓库
  • 自建 Git 服务

建议使用私有仓库,避免公开自己的定制 Skill。

2. 本地修改后自动同步

连接成功后,Skills Manager 会自动监测本地技能库变化。

整体流程:

     修改本地 Skill
          |
          v
       检测到文件变化
          |
          v
     自动生成 Git 提交
          |
          v
    Push 到 GitHub
          |
          v
       远程仓库更新

根据项目 README,停止编辑约两分钟后,通常会在后台自动提交并推送。

如果希望立即备份,也可以在 Backup 页面使用 Back Up Now。

所以日常情况下,不需要手动执行 Git 命令。

3. 另一台电脑同步 Skill

假设现在有两台电脑:

MacBook
Windows PC

MacBook 已经安装 Skills Manager,并完成 GitHub 备份配置。

在 Windows PC 上:

  1. 安装 Skills Manager。
  2. 打开 Backup 页面。
  3. 连接同一个 GitHub 账号或 Git Remote。
  4. 如果本地技能库为空,选择从远程备份恢复。
  5. 等待技能库同步完成。

之后两台设备就可以共享同一套 Skill。

例如:

   MacBook 修改 frontend-design
                |
                v
             GitHub
                |
                v
           Windows PC
                |
                v
      获取最新 frontend-design

反过来也一样。

在 Windows PC 上修改 Skill,同样可以同步到 GitHub,再由 MacBook 获取更新。

4. 多设备同时修改怎么办?

多设备同步最需要关注的就是冲突。

例如:

MacBook 修改:

frontend-design/SKILL.md

Windows PC 同时修改:

frontend-design/SKILL.md

两台电脑都产生了不同的修改。

Skills Manager 支持按 Skill 进行合并。

如果两个设备修改了不同的 Skill,通常可以自动合并。

如果两个设备修改了同一个 Skill,发生真正的冲突,则会出现在 Needs attention 中。

可以选择:

  • Keep mine:保留当前设备版本。
  • Use remote:使用远程版本。
  • Keep both:保留两份版本。

在处理冲突之前,Skills Manager 还会创建安全快照,方便后续恢复。

因此,不建议在多台设备上同时修改同一个 Skill。

更好的习惯是:

一台设备负责主要修改,完成后等待同步,再在另一台设备上继续工作。

七、哪些内容会同步到 GitHub?

并不是所有 Skills Manager 的配置都会上传。

根据项目文档,备份内容主要包括:

内容是否备份
Skill 文件是
Skill 标签是
Preset是
Agent Skill 启用状态是
API Key否
Token否
Proxy 配置否
机器相关配置否
SQLite 数据库否

这意味着 GitHub 保存的是技能库和相关管理数据,而不是整台电脑的完整 Skills Manager 配置。

另外,超过 100 MB 的 Skill 会保留在本地,不会自动进入备份。

对于包含敏感信息的 Skill,也建议在提交之前检查是否存在 API Key、访问令牌或其他个人凭据。

八、第三方 Skill 如何更新?

除了自己编写的 Skill,我们还会从 GitHub 或 Skills Marketplace 安装第三方 Skill。

这时需要区分两种情况。

1. 自己维护的 Skill

例如:

my-frontend-design/
my-code-review/
my-git-workflow/

这些 Skill 以中央仓库为准。

修改后通过 GitHub 备份同步即可。

2. 第三方 Skill

例如从某个 GitHub 项目安装的 Skill:

vercel-labs/
  └── react-best-practices/

这种 Skill 需要关注上游更新。

Skills Manager 支持检查 Git 类 Skill 的上游更新,也支持对本地来源的 Skill 重新导入。

推荐的维护流程:

        检查上游是否有更新
            |
            v
        查看上游修改内容
            |
            v
      与自己的定制内容进行比较
            |
            v
         合并需要的更新
            |
            v
         更新中央技能库
            |
            v
       同步到 GitHub

不要直接用第三方最新版覆盖自己已经修改过的 Skill,否则可能丢失自己的定制规则。

九、我的最终管理方案

综合以上功能,我更倾向于建立以下管理模式:

           GitHub Private Repository
                       |
                       |
                Skills Manager
                       |
                Central Library
                       |
          +------------+------------+
          |            |            |
       Claude        Codex       Cursor
          |            |            |
          +------------+------------+
                       |
                  Daily Usage

实际维护时遵循几个原则。

原则一:中央仓库作为唯一主要编辑入口。

所有自定义 Skill 都在中央仓库维护,避免不同 Agent 的目录出现多个不一致版本。

原则二:GitHub 作为远程备份和同步中心。

不需要手动复制 Skill 到其他电脑,统一通过 GitHub 进行同步。

原则三:第三方 Skill 与自定义 Skill 分开管理。

第三方 Skill 需要关注上游更新,自定义 Skill 则以自己的维护版本为准。

原则四:尽可能使用 Symlink。

在支持的环境中,优先采用符号链接部署,减少多份文件带来的维护成本。

原则五:多设备避免同时修改同一个 Skill。

先完成修改并同步,再切换到其他设备继续工作。

十、总结

Skills Manager 解决的不仅仅是 Skill 文件存放的问题,而是 AI Agent 技能的统一管理问题。

以前,每个 AI 编程工具都有自己的 Skill 目录,需要重复安装、重复修改和重复维护。

现在可以通过 Skills Manager 建立统一的中央技能库,再将 Skill 按需分发到 Claude Code、Codex、Cursor 等不同工具。

再结合 GitHub Backup,就可以进一步实现:

  • 多 Skill 统一管理。
  • 多 Agent 统一部署。
  • Skill 标签和 Preset 管理。
  • 自定义 Skill 统一维护。
  • GitHub 版本备份。
  • 多设备自动同步。
  • 冲突处理与历史版本恢复。

对经常使用多个 AI 编程工具的开发者来说,这种方式能够让 Skill 从零散的配置文件,逐渐变成一套可以长期维护、持续迭代和跨设备复用的个人 AI 开发能力库。

一句话总结:本地中央仓库负责维护,Skills Manager 负责分发,GitHub 负责备份和多设备同步。

项目地址:https://github.com/xingkongliang/skills-manager

官方网站:https://skillsmanager.dev/

评论区未配置

在 .env 中填入NEXT_PUBLIC_GISCUS_REPO/NEXT_PUBLIC_GISCUS_REPOSITORY_ID/NEXT_PUBLIC_GISCUS_CATEGORY/NEXT_PUBLIC_GISCUS_CATEGORY_ID 后重新构建站点即可启用评论。