SkillManager 是一个原生 macOS 应用,用来从 Git 仓库发现、安装、更新和应用 Agent Skills。仓库内容统一缓存在用户的 Application Support 目录中;应用到全局或项目时只创建软链接,因此项目不需要引入 Git submodule。
- 添加普通 Git URL,或者
github.com/.../tree/<branch>/<skill-path>URL - GitHub 来源统一显示为
owner/repo,同名仓库不会混淆;本地缓存以来源 UUID 隔离 - 自动扫描仓库中的
SKILL.md - 从具体目录导入后,可重新扫描整个来源以发现同仓库的其他 Skills
- 保存 commit 对应的不可变 Skill 快照
- 管理多个全局位置:
~/.agents/skills、~/.codex/skills、~/.claude/skills、~/.grok/skills和任意自定义目录 - 标准全局目录按需创建,同一个 Skill 可以应用到多个位置
- 应用到项目的
.agents/skills - 在项目详情中搜索、多选并批量应用 Library Skills
- 自动发现全局或项目目录中原本就存在、但不由 SkillManager 管理的 Skills
- 区分已管理、外部、Library 同内容和同名冲突状态
- 将外部 Skill 作为独立快照导入 Library,不接管、移动或改写原目录
- 项目链接自动写入本机
.git/info/exclude - 检查来源更新,并选择是否切换已应用位置
- 检测链接缺失、损坏或被修改
- 安全移除链接,保留版本缓存
- 查看版本占用并安全清理未被 Library 或应用链接引用的旧快照
要求 macOS 14 或更高版本,以及 Xcode 15/Swift 5.10 或更高版本。
swift build
env DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer swift test --disable-swift-testing --enable-xctest
swift run SkillManager也可以直接在 Xcode 中打开 Package.swift。
./Scripts/build-app.sh
open .build/SkillManager.app脚本会创建开发用 ad-hoc 签名应用。正式分发仍需配置 Developer ID、Hardened Runtime 和 notarization。
~/Library/Application Support/SkillManager/
├── registry.json
├── registry-backups/
├── repositories/
└── versions/
registry.json 使用带版本号的数据格式。应用会在覆盖前保留最近 5 份有效备份;如果主文件损坏,会保留损坏副本并从最近的有效备份恢复。
SkillManager 不执行第三方仓库中的 hooks 或 scripts。Git 调用不经过 shell,并显式禁用 hooks。项目应用默认是本机行为,不修改项目 .gitignore。
已存在的本地 Skills 会以只读清单显示。SkillManager 不会自动把它们变成受管理链接,也不会覆盖同名目录;用户可以显式选择“导入 Library”,此操作复制当时内容到不可变版本缓存,原 Skill 及其 Git 跟踪状态保持不变。