Skills 管理的“万能钥匙“——一个 App 开 11 把 Agent 锁,SkillDeck 完全指南
【摘要】
SkillDeck 是首个用于管理多个 AI 代码代理技能的 macOS 原生桌面应用,支持 Claude Code、Codex、Gemini CLI 等 11 种主流 AI Agent。本文从痛点分析、核心功能、安装配置、实际使用和架构设计 5 个维度,带你全面掌握这款开源工具的使用方法。
【正文】
前言
作为一名经常同时使用 Claude Code、Copilot CLI、Gemini CLI 的程序员,你有没有遇到过这样的场景:某个 Agent 装了十几个 Skills,另一个 Agent 又装了一套,更新时根本不知道哪个是最新版,卸载还容易留残留。
最近开源社区出现了一个专门解决这个问题的工具——SkillDeck,今天来全面评测一下。
一、AI Coding Agent 技能管理的痛点
1.1 现状:一个技能,N 种折腾
目前主流的 AI Coding Agent 都有自己的 Skills 体系,用于扩展 Agent 的专业能力。但这些技能的管理方式非常原始:
| 操作 | 传统方式 | 痛点 |
|---|---|---|
| 安装技能 | git clone + 手动建软链接 |
重复操作,容易出错 |
| 多 Agent 共享 | 复制 N 份软链接 | 维护成本高 |
| 检查更新 | 手动 git pull 对比 |
根本不知道哪个该更新 |
| 卸载技能 | 手动删文件 + 清理软链接 | 容易残留 |
1.2 主流 Agent 及其技能目录
目前至少有 11 种主流 AI Coding Agent,每个都有自己的技能目录:
| Agent | 技能目录 | 是否支持共享 |
|---|---|---|
| Claude Code | ~/.claude/skills/ |
仅自身 |
| Codex | ~/.codex/skills/ |
支持 ~/.agents/skills/ |
| Gemini CLI | ~/.gemini/skills/ |
仅自身 |
| Copilot CLI | ~/.copilot/skills/ |
支持 ~/.claude/skills/ |
| Cursor | ~/.cursor/skills/ |
支持 ~/.claude/skills/ |
| OpenCode | ~/.config/opencode/skills/ |
支持多个共享目录 |
| Kiro | ~/.kiro/skills/ |
仅自身 |
| CodeBuddy | ~/.codebuddy/skills/ |
仅自身 |
💡 虽然有些 Agent 支持共享目录(如 Codex 可以读
~/.agents/skills/),但实际使用中还是很混乱。
二、SkillDeck 核心功能详解
2.1 统一仪表盘:一个界面管所有
SkillDeck 采用 macOS 原生 SwiftUI 三栏布局:
- 左侧:Agent 筛选面板(支持多选)
- 中间:技能列表(支持搜索、排序)
- 右侧:技能详情(SKILL.md 内容、安装状态、Agent 分配)
关键特性是 Symlink 去重——同一个技能安装到多个 Agent 时,列表中只显示一次,不会重复刷屏。
2.2 内置技能市场
集成了两个技能市场源:
| 市场源 | 说明 |
|---|---|
| skills.sh | 社区排行榜,支持 All Time / Trending / Hot 排序 |
| ClawHub | OpenClaw 的技能目录 |
支持关键词搜索、排序筛选、一键安装。安装过程自动处理 git clone、扫描 SKILL.md、创建软链接和更新锁文件。
2.3 Toggle 分配 Agent
这是我觉得最实用的功能。在技能详情页,每个 Agent 对应一个 Toggle 开关:
开关状态 = ON → 自动创建软链接到对应 Agent 目录
开关状态 = OFF → 自动删除软链接
代码逻辑示意:
// SkillDeck 的 Agent 分配逻辑(伪代码)
func toggleAgent(skill: Skill, agent: Agent, enabled: Bool) async {
let symlinkPath = agent.skillDirectory + "/" + skill.name
if enabled {
// 创建软链接
try fileManager.createSymbolicLink(
at: URL(fileURLWithPath: symlinkPath),
withDestinationURL: skill.originalPath
)
} else {
// 删除软链接
try fileManager.removeItem(at: URL(fileURLWithPath: symlinkPath))
}
}
2.4 自动更新检测
SkillDeck 通过对比远程 Git 仓库的 tree hash 来判断是否有更新:
| 检测方式 | 说明 |
|---|---|
| 本地 commit hash | 记录安装时的版本 |
| 远程 tree hash | 对比远程是否有变更 |
| UI 角标提示 | 有更新时显示红色角标 |
检测到更新后,一键 git pull 即可完成更新,不需要重新安装。
2.5 文件系统监听
SkillDeck 使用文件系统监控(File System Monitor),实时监听各 Agent 技能目录的变化:
- 如果通过 CLI(如
claude skills add)安装了新技能,GUI 自动刷新 - 如果手动删除了技能文件,GUI 也会即时响应
- 双向同步,CLI 和 GUI 操作不会冲突
三、安装与配置
3.1 安装方式
方式一:Homebrew(推荐)
brew tap crossoverJie/skilldeck
brew install --cask skilldeck
方式二:直接下载
从 GitHub Releases 下载 SkillDeck-v0.0.18-universal.zip,解压后将 SkillDeck.app 拖入 /Applications/。
方式三:从源码构建
# 环境要求:macOS 14+、Xcode 15+、Swift 5.9+
git clone https://github.com/crossoverJie/SkillDeck.git
cd SkillDeck
swift run SkillDeck
# 或使用 Xcode
open Package.swift # 然后按 Cmd+R 运行
3.2 首次启动配置
⚠️ 由于应用未签名,macOS 可能拦截启动。解决方法:
# 方法一:终端命令
xattr -cr /Applications/SkillDeck.app
# 方法二:右键点击应用 → 打开 → 在弹窗中点击"打开"
3.3 应用设置
SkillDeck 支持以下全局配置:
| 设置项 | 说明 |
|---|---|
| 语言切换 | 英文 / 简体中文,支持应用内一键切换 |
| 全局字体 | 自定义界面字体大小 |
| 代理网络 | 支持 HTTPS / SOCKS5 代理,Keychain 存储凭证 |
| 内联翻译 | macOS 26+ 支持中文界面下自动翻译技能文档 |
四、实战案例与踩坑记录
4.1 实战:从零开始管理 Claude Code 技能
以下是一个完整的使用流程:
Step 1:启动 SkillDeck,左侧选择 “Claude Code”
Step 2:点击"市场"标签,浏览 skills.sh 排行榜
Step 3:搜索 “pdf”,找到 PDF 相关技能,点击"安装"
Step 4:安装完成后,自动出现在技能列表中,SKILL.md 内容实时预览
Step 5:在详情页,打开 “Codex” 和 “Copilot CLI” 的 Toggle,一键共享给其他 Agent
Step 6:点击"检查更新",发现某个技能有新版本,一键更新
整个过程无需打开终端,全程 GUI 操作。
4.2 踩坑记录
| 坑点 | 描述 | 解决方案 |
|---|---|---|
| 首次启动被拦截 | macOS Gatekeeper 阻止未签名应用 | xattr -cr 命令解除 |
| 技能不显示 | 某些 Agent 未安装或未检测到 | 确保 Agent CLI 在 PATH 中 |
| 软链接失效 | 手动移动了原始技能目录 | 在 SkillDeck 中重新安装 |
| 中文翻译不生效 | 需要 macOS 26+ 系统支持 | 升级系统或关闭翻译功能 |
| 代理配置不生效 | SOCKS5 代理格式不正确 | 格式:socks5://host:port |
4.3 最佳实践
- 定期检查更新:SkillDeck 的更新检测功能可以一键批量更新所有技能
- 善用共享目录:Codex、OpenCode 等支持共享目录的 Agent,优先使用共享
- 用 Toggle 管理:不要手动操作软链接,全部通过 SkillDeck 的 Toggle 管理
- 配合 CLAUDE.md:在项目根目录放 CLAUDE.md 文件,规范 AI Agent 的行为
五、架构设计解析
5.1 技术栈
| 技术 | 说明 |
|---|---|
| 语言 | Swift 5.9+(占比 96.9%) |
| 框架 | SwiftUI |
| 架构 | MVVM(基于 @Observable) |
| 并发 | Swift Actor |
| 系统 | macOS 14+ (Sonoma) |
| 协议 | MIT |
5.2 核心架构
SkillDeck 的数据流向非常清晰:
Views (SwiftUI)
↓
ViewModels (@Observable)
↓
SkillManager
↓
Services (Swift Actor, 线程安全)
↓
File System (文件系统即数据库)
设计理念:文件系统即数据库(Filesystem as Database)。每个技能就是一个包含 SKILL.md 文件的目录,SkillDeck 通过读取文件系统来获取所有技能信息,不依赖额外的数据库。
5.3 值得关注的亮点
🤯 全程 AI 开发:整个项目从第一行代码到现在,全部使用 Claude Code 开发。作者 crossoverJie 的技术栈是 Java/Go/Python,Swift 零基础、SwiftUI 零经验,但借助 AI 完成了这个高质量的原生 macOS 应用。
这个案例本身就很有参考价值——它证明了 AI Coding 已经可以胜任跨语言、跨平台的完整应用开发。
六、总结与建议
6.1 适用场景
| 场景 | 推荐指数 | 说明 |
|---|---|---|
| 多 Agent 用户 | ⭐⭐⭐⭐⭐ | 同时使用 3+ 个 AI Agent 的程序员 |
| 技能重度用户 | ⭐⭐⭐⭐⭐ | 安装了 10+ 个 Skills 的用户 |
| 单 Agent 轻度用户 | ⭐⭐⭐ | 如果只用一个 Agent 且技能不多,CLI 足够 |
| 非 macOS 用户 | ❌ | 目前仅支持 macOS |
6.2 综合评价
| 维度 | 评分 | 说明 |
|---|---|---|
| 功能完整性 | ⭐⭐⭐⭐⭐ | 覆盖安装、更新、分配、市场全流程 |
| UI 体验 | ⭐⭐⭐⭐⭐ | 原生 SwiftUI,流畅直观 |
| 稳定性 | ⭐⭐⭐⭐ | 已迭代到 v0.0.18,日常使用稳定 |
| 文档质量 | ⭐⭐⭐⭐ | 中英文 README 齐全,有开发文档 |
| 社区活跃度 | ⭐⭐⭐ | 250+ Star,24 Fork,早期阶段 |
6.3 一句话总结
SkillDeck 是目前唯一一个能统一管理多个 AI Coding Agent 技能的桌面工具,如果你同时使用多个 AI 编程助手,强烈建议一试。
参考资料/延伸阅读
- SkillDeck GitHub 仓库
- SkillDeck 中文文档
- 全程用 Claude Code 搓了一个 macOS 原生应用:SkillDeck
- SkillDeck 官网
- Agent Skills 完全指南
📢 你在日常开发中用哪些 AI Coding 工具?遇到过技能管理的痛点吗?欢迎评论区交流!
如果本文有帮助,欢迎 点赞 👍 收藏 ⭐ 关注,持续输出 AI 工具深度评测!
更多 AI 实战干货,关注公众号「一粒黑子」,扫码关注不迷路👇
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)