SkillDeck · 可视化 Skill 控制台:把本地 Skill 变成卡片墙,一键把命令发送到 Codex 会话执行(Codex 原生 widget 插件 + 独立 web 版)
概览
把本地一堆 Skill(自动扫描 Codex 和 Claude Code 两处,可能上百个)变成一面**:搜索、按分类筛选,挑一张点「使用」,**粘到 Codex 就能跑。还能把相关 Skill 打包成**(如「内容创作专家」「配图设计专家」),让 Codex 在整段对话里按你的关键词自动挑用。支持**皮肤。 启动时 SkillDeck 会自动扫描本机两个默认位置,扫到什么左侧栏就列什么: 每个来源右边的数字是扫到的 Skill 数量。目录不存在就标 并置灰,目录在但一个 SKILL.md 都没有就显示 0,点进去是空态页,页面上直接给一个「手动选择目录」的按钮。 想加别的目录,点左下角 (macOS 原生选择框),选完自动加进列表并切过去。自定义目录 hover 时右边有个 × 可以从列表移除(只是从列表里去掉,本地文件不动)。两个内置来源不能删。 切来源时**,专家是按目录隔离的,Codex 下建的专家不会串到 Claude Code 里。顶栏右上角的刷新按钮可以重新扫描(新装了 Skill 之后点一下)。 SkillDeck 会读每个子文件夹里的 SKILL.md,解析名称/描述并**成卡片。 点任意卡片的「使用」→ 填写具体任务(可留空)→ 选口令类型 → 点「」→ 粘贴到 Codex 对话框发送。 - (默认,推荐):请调用 Skill:X + 补充说明 + SKILL.md 调用地址。口令短,Codex 按地址自己读说明书,不依赖它有没有装这个 Skill。 - :把整篇 SKILL.md 注入口令里。换机器 / Codex 读不到那个路径时用。 - :不复制,直接让 SkillDeck 后端调用本机 codex / qodercli 跑,结果在右侧抽屉回显。
README
SkillDeck · 可视化 Skill 控制台(技控台)
把本地一堆 Skill(自动扫描 Codex 和 Claude Code 两处,可能上百个)变成一面卡片墙:搜索、按分类筛选,挑一张点「使用」,复制口令粘到 Codex 就能跑。还能把相关 Skill 打包成专家(如「内容创作专家」「配图设计专家」),让 Codex 在整段对话里按你的关键词自动挑用。支持深色 / 浅色皮肤。
「deck」一语双关:一副技能卡组 + 控制台(control deck)。
首次使用(独立 web 版,推荐先跑这个)
零依赖,只需要 Node ≥ 18。
1. 启动
cd skilldeck
node server.js
# 打开 http://localhost:4177
2. Skill 从哪来(自动扫描,不用手填路径)
启动时 SkillDeck 会自动扫描本机两个默认位置,扫到什么左侧栏就列什么:
| 来源 | 目录 |
|---|---|
| Codex | ~/.codex/skills |
| Claude Code | ~/.claude/skills |
每个来源右边的数字是扫到的 Skill 数量。目录不存在就标 未安装 并置灰,目录在但一个 SKILL.md 都没有就显示 0,点进去是空态页,页面上直接给一个「手动选择目录」的按钮。
想加别的目录,点左下角 添加本地目录(macOS 原生选择框),选完自动加进列表并切过去。自定义目录 hover 时右边有个 × 可以从列表移除(只是从列表里去掉,本地文件不动)。两个内置来源不能删。
界面层级是两级:
Codex / Claude Code / 自定义目录 ← 一级,左侧栏切换
└── 技能 / 专家 ← 二级,顶栏分段切换
切来源时技能和专家一起换,专家是按目录隔离的,Codex 下建的专家不会串到 Claude Code 里。顶栏右上角的刷新按钮可以重新扫描(新装了 Skill 之后点一下)。
SkillDeck 会读每个子文件夹里的 SKILL.md,解析名称/描述并自动分类成卡片。
3. 用一个 Skill
点任意卡片的「使用」→ 填写具体任务(可留空)→ 选口令类型 → 点「复制口令」→ 粘贴到 Codex 对话框发送。
- 路径口令(默认,推荐):
请调用 Skill:X + 补充说明 + SKILL.md 调用地址。口令短,Codex 按地址自己读说明书,不依赖它有没有装这个 Skill。 - 完整口令:把整篇
SKILL.md注入口令里。换机器 / Codex 读不到那个路径时用。 - 本地运行:不复制,直接让 SkillDeck 后端调用本机
codex/qodercli跑,结果在右侧抽屉回显。
4. 打包成专家
切到顶栏「专家」:
- 让 Codex / Claude Code 自动分类:SkillDeck 不接任何大模型 API,不需要配 key。 点一下会生成一段口令(里面装着完整 Skill 清单 + 聚类要求 + 一条回传命令),复制粘到 Codex 或 Claude Code 发送,它分好类后自己
curl把结果回传,弹窗会实时轮询并显示「建了几个专家、覆盖了多少个 Skill」。agent 不方便跑 curl 的话,展开「把它输出的 JSON 贴这里」手动导入也行。 - 手动创建:填名字和描述 → 勾选要归入的 Skill → 保存。
回传的结果会做校验:skills 里对不上真实 folder 的一律丢掉,模型编出来的假 Skill 进不了库。口令带一次性 token,过期或无效会明确报错。
专家的「使用」也是复制口令,但内容是——让 Codex 在本轮对话里随时按你的关键词自动挑用这组 Skill,并在每完成一步后主动提示接下来还能用哪些 Skill。
5. 删除 Skill / 专家
两种卡片右下角都有一个垃圾桶按钮,点了一定会先弹二次确认,没有任何路径能绕过。
| 删什么 | 实际发生什么 |
|---|---|
| Skill | 本地文件夹移到系统废纸篓(不是 rm -rf),误删可在访达里找回。同时把它从所有引用它的专家里摘掉,确认框会提前告诉你有几个专家受影响 |
| 专家 | 只删 experts.json 里的这条分组记录,组里的 Skill 文件一个都不动 |
删 Skill 的确认框里会显示完整路径,删之前看清楚再点。后端有多层防护:Skill 名里出现 /、\、.. 一律拒绝;解析后的路径必须正好是当前 Skill 目录的直接子目录;文件夹里必须真的有 SKILL.md,否则拒绝删除。
6. 换皮肤
左下角 深色 / 浅色 一键切换,选择会记住。
界面说明
界面里没有任何 emoji,图标全是内联 SVG(跟着文字颜色走,深浅色皮肤都自适应)。Codex 和 Claude Code 用各自的官方 logo,自定义目录用文件夹图标。专家卡片用名字首字做标记。
零密钥
SkillDeck 不需要任何 API Key。 早期版本会直连 DeepSeek 做专家聚类,现在这条路已经整个拿掉了:聚类交给你本来就在用的 Codex / Claude Code,SkillDeck 只负责出口令、开一个本机回传口子、显示结果。
所以:
- 代码里没有任何模型 API 调用,也没有「模型设置」界面
/api/config只返回默认目录和检测到的本地 agent- 不再读写
.skilldeck.local.json(老用户的这个文件可以直接删掉) experts.json仍在.gitignore里,专家数据不进仓库
Codex 原生 widget(另一种形态)
除了独立 web 版,SkillDeck 也能作为 Codex 插件,把卡片墙渲染成 Codex 里的原生 widget,点「使用」通过 sendFollowUpMessage 把命令直接发进当前 Codex 会话(这套改编自 Cowart)。
npm install # 这套形态要装 MCP 依赖
codex plugin marketplace add ~
codex plugin add skilldeck@personal
装好后在 Codex 里说「打开 SkillDeck」即可。不需要 codex 也能验证 server:
node scripts/probe.mjs # 输出工具列表、读到的 Skill 数、widget 桥接是否注入
文件结构
skilldeck/
├── server.js 独立 web 版后端(零依赖):来源扫描 / Skill 解析 / 口令 / 专家 / 分类任务回传
├── public/ 独立 web 版前端
│ ├── index.html 侧边栏来源列表 + 顶栏分段 + 各弹窗(含删除确认)
│ ├── app.js 来源切换、视图切换、口令复制、删除确认、专家增删、分类任务、主题
│ ├── icons.js 图标系统:Claude / OpenAI 官方 logo + 线性图标,全内联 SVG
│ └── style.css 深/浅两套主题(CSS 变量)
├── experts.json 专家数据(本地;被 gitignore)
├── mcp/ Codex 原生 widget 形态(server.mjs / widget / 桥接)
└── scripts/probe.mjs 不需 codex 的验证探针
Skill 卡片的自动分类规则
按 name + description 关键词分成:写作 / 标题·爆款 / 图片·设计 / PPT·幻灯片 / 视频·音频 / 产品·PM / 飞书·协作 / 编程·开发 / 信息获取 / 数据·表格 / 其它。规则在 server.js 的 CATEGORY_RULES。
推荐工具
换一个关键词,或者移除筛选条件。
安装
npx skillfish add spacezephyr/skilldeck