WorkBuddy 同款技能选择器:输入框旁 ⚡ 按钮弹出全部技能列表,支持搜索与最近/常用排序,点选即插入官方 `/技能名` 手势,随消息发出自动加载执行。
安装
# npm 包(预构建)
dsh plugin --profile web add dsh-skill-picker
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:a735624258/dsh-skill-picker
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本——pnpm 默认拦截,所以安装可能停在 ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED 或 ERR_PNPM_IGNORED_BUILDS;dsh 会打印出需要添加的确切键名,把它加进该 profile 的 pnpm-workspace.yaml 的 allowBuilds 下,重跑一次即可装上。放行构建本身就是一次信任判断:请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。
README
给 DSH 的输入框加一个 ⚡ 按钮:点开是你装过的全部技能(带说明),搜一下、点一下,
/技能名就进了发送框,DSH 自己把技能加载起来执行。
English — A skill picker for the DSH Web GUI. A ⚡ button in the composer lists every installed skill with its description; picking one inserts the official /skill-name gesture into your draft, so DSH loads that skill with your message.
| 当前版本 | v0.5.29 |
| 许可 | MIT |
| 平台 | DSH 网页端 / 桌面端(Electron)/ 手机浏览器 |
| 内核 | DSH 0.1.x 与 0.2.x(见 4.4) |
1、为什么要做
DSH 本来就会认 /技能名 这个手势 —— 你在消息里写 /ji-zhang 午饭 12 块,它自动加载「记账」技能来执行。官方只配了一个 / 补全,而它靠两样东西:
- 前缀匹配 —— 你得打对技能名的开头几个字母
- 你的记忆 —— 装了五六十个技能,谁记得住每个叫什么
于是最常见的场面是:明明装了「备份记忆」,却想不起来它叫 backup-memory,翻不到就放弃了。
2、它做什么

- 看得见 —— 输入框旁边一个 ⚡,点开是全部技能 + 完整描述
- 搜得到 —— 中文、拼音(
jiyi/ji yi/jy)、英文都行,技能名和描述一起搜 - 选得快 —— 最近使用靠前、可手动置顶、
↑↓+Enter全程键盘 - 管得了 —— 右键(手机长按):置顶 / 关闭 / 在文件管理器中定位 / 卸载(移入备份,可撤回)
- 到处一致 —— 置顶和最近使用在桌面端、网页端、手机之间共用同一份
它和官方 / 补全不冲突,可以同时用:记得住名字用官方,记不住用它。
3、怎么用
- 看输入框右下角(模型选择器旁边),点 ⚡
- 敲关键字(中文 / 拼音 / 英文),列表实时过滤;也可以直接
↑↓翻 - 点中技能(或按
Enter)—— 发送框里出现/技能名,光标停在末尾 - 接着把话说完,回车发送 —— DSH 自动加载这个技能
例子:点 ⚡ → 搜 jiyi → 点 /ji-zhang → 打上「今天午饭 12 块」→ 发送。
| 操作 | 效果 |
|---|---|
| 点 ⚡ | 打开技能面板 |
↑ ↓ / Enter / Esc |
选择 / 插入 / 关闭 |
| 右键技能行(手机长按 500ms) | 管理菜单:置顶 / 关闭 / 定位 / 卸载 |
| 面板右下角「已关闭 N」 | 查看并恢复被关闭的技能 |
输入框直接打 / |
官方斜杠菜单(本插件同样增强了它的匹配与排序) |
4、安装
4.1 三条路,按需要选一条
- 要最新版 —— GitHub 直装(git 依赖直接拉最新 commit,不受 npm 24 小时门禁影响)
dsh plugin --profile web add "git+ssh://git@github.com:a735624258/dsh-skill-picker.git" - 要 npm 正式版 —— 先查版本号,再按版本号装(别用裸名)
npm view dsh-skill-picker version # 例如 0.5.28 dsh plugin --profile web add dsh-skill-picker@0.5.28 - 要改代码 —— clone 下来用 link 模式装
git clone https://github.com/a735624258/dsh-skill-picker.git dsh plugin --profile web add link:/path/to/dsh-skill-picker
⚠️ 裸名安装(
add dsh-skill-picker)在新版本发布后 24 小时内会被 pnpm 的minimumReleaseAge门禁拦下、自动落回旧版。照上面三条走就不会装错。
4.2 装完必须重启
host 路由是进程启动时加载的,只开个新标签页不生效:
| 你用的是 | 怎么重启 |
|---|---|
| 网页端 | 重启 dsh web 进程,必要时 Ctrl+F5 硬刷 |
| 桌面端 | 重启 DeepSeek Harness.exe 进程 |
4.3 网络与卸载
- HTTPS 慢或不通 → 改用 SSH:
git clone git@github.com:a735624258/dsh-skill-picker.git - 想让 pnpm 一律走 SSH:
git config --global url."git@github.com:".insteadOf "https://github.com/" dsh被 PowerShell 执行策略挡下 →powershell -ExecutionPolicy Bypass -Command "dsh plugin --profile web add link:C:\path\to\dsh-skill-picker"- 卸载:
dsh plugin --profile web remove dsh-skill-picker
4.4 兼容性与注意事项
| 内核版本 | 状态 |
|---|---|
0.1.0-rc.6 ~ 0.1.x |
支持 |
0.2.0-rc.1 / rc.2 及 0.2.x |
支持(当前主用、实测) |
1.0.0 及以上 |
需要重新确认 |
- peer 范围写得宽是故意的 ——
^0.1.0-rc.6 || >=0.2.0-rc.1 <1.0.0-0。内核包与内核锁步同版本,钉死一个小版本线会让插件在内核升级时被误拒(日志一句skipping profile bundle,表现是 ⚡ 按钮凭空消失) - 技能读哪些目录 —— 项目级
<工作区>/.dsh/skills、<工作区>/.agents/skills;用户级~/.dsh/skills、~/.agents/skills($DSH_AGENTS_HOME可覆盖);同名时项目级优先 - 符号链接 / Junction 型技能会被跟随读取;
user-invocable: false的技能不列出(列出来点了也会被官方静默跳过) - 桌面端无需任何手工处理(v0.5.15 起):官方技能 UI 在
app.asar里还是普通目录都不影响 - 手机端需配套 ——
dsh-pocket的「切会话不抢焦点」补丁与本插件的window.__dshSkillPickerFocusing豁免牌是一对,只装一边会出现「切会话抢焦点」或「插完技能光标不回」 - 暂不支持自定义技能目录(官方
customSkillDirs)—— 欢迎 PR
5、它是怎么做到的
[客户端] 输入框旁的 ⚡ 按钮
↓ 取技能列表(先官方 skills API,失败回退宿主扫描)
[宿主] 技能目录 → 名字 + 描述
↓ 你点选
[客户端] 把 "/技能名 " 追加进发送框
↓ 发送
[DSH] agent/pre-step 认出 /技能名 手势 → 加载技能 → 执行
本插件只补 UI 这一层,加载与执行走 DSH 官方既有机制(dsh-tool-skill 扫描用户消息里的 /kebab-case-name),不碰 agent、不改官方代码。
- 列表两条路 —— 优先走官方宿主 skills API(
remote.skills.list,与官方/补全同源、自动含用户级 + 项目级),不可用时回退到宿主扫描路由 /菜单的模糊 + 拼音(v0.5.15 起)—— 运行时接管官方触发源,一个文件都不动。原因:官方不允许注册同名/源(重名直接抛错),而改官方文件在app.asar/ pnpm 硬链接 / 悬空软链下会静默失效- 技能管理路由有三道闸 —— 必须带
x-dsh-skill-picker: 1自定义头;客户端只报技能名、路径由宿主自己查;路径必须恰好落在已知技能根的一层之下。「卸载」从不删除,只移进$DSH_HOME/skill-backups/ - 出错不拖垮 —— 插槽缺失时静默跳过,扫描失败返回空列表,状态同步失败退化成纯本地
6、开发
npm install # 装依赖
npm run build # src/ → lib/(client bundle 必须打成 __ModuleLoader__ 握手)
dsh plugin --profile web add link:$PWD # link 模式装进 web profile,改源码即生效
node --test # 测试
⚠️ 改完源码必须
npm run build:lib/client.js是构建产物,ESM 源码不能直接当 client bundle 加载(DSH web shell 要求window.__ModuleLoader__.load({ id, factory })握手格式),否则启动报loaded without registering "dsh-skill-picker"。
dsh-skill-picker/
├── package.json # dsh.bundle.patch + dsh.client 声明 + 兼容性表
├── cordis.patch.yml # bundle patch:把插件行插进 web profile
├── build.mjs # esbuild 构建:host ESM + client CJS
├── locale/ # 官方插件页显示的名字与说明(en 为锚点,zh 为中文)
├── src/
│ ├── index.js # host:技能目录路由 + agent 引导段
│ ├── skill-ops.js # host:关闭 / 开启 / 定位 / 卸载 / 撤回
│ ├── patch-ui-skill.js # host:旧文件补丁(默认关闭)+ 自动还原
│ ├── dir-entry.js # 目录项读取(跟随符号链接 / Junction)
│ └── client/
│ ├── index.jsx # client:⚡ 面板(搜索 / 分组 / 排序 / 右键菜单)
│ ├── slash-source.js # client:`/` 菜单的运行时接管
│ ├── shared-state.js # client:跨端共享的置顶 / 最近使用
│ └── session-view.js # client:会话身份与工作区 cwd
├── lib/ # 构建产物(勿手改)
├── test/ # node --test 用例(8 个文件)
└── docs/ # 截图
测试最近一次结果:88 用例 / 87 通过 / 1 跳过 / 0 失败(跳过那条需要 Windows 建符号链接的权限)。
locale/ 是给官方看的:插件页和「设置 → 内置插件」用 meta.title / meta.description 显示名字与一行说明,并且搜索框认这两个字段。官方拿 en.json 当目录锚点,所以两个文件都得有 —— 只放 zh.json 会被整份忽略;exports 里也要放行 ./locale/*,否则解析器取不到。
更新日志
最近 3 个版本:
- v0.5.29 —— 官方插件页显示「技能选择器」+ 中文说明,可用中文搜到
- v0.5.28 —— 新置顶的技能排到「置顶」分组的最前面
- v0.5.27 —— 手机端「插完技能光标不回」的配套豁免牌
各版本说明(版本速览 + 13 个版本的详细说明)见 CHANGELOG.md。
MIT License · LICENSE
链接
同类插件
zhu1090093659/dsh-web#packages/dsh-task-board★ 10406
侧边栏多列任务看板:卡片交给真实 DSH 智能体会话执行,支持 cron 定时(Host 侧到点执行,关浏览器也生效)。
zhu1090093659/dsh-web#packages/dsh-web-all★ 10406
DSH Web UI 插件与皮肤合集:任务看板、git 图、右侧面板、远程移动端 UI、桌宠、实时 token 统计与皮肤中心。
ccch1mneyyy/dsh-TUI★ 7675
Claude Code 风格全屏终端 UI:像素鲸鱼顶栏、实时工作状态行、思考流式展开。
MeteorNOX/DeepSeek-Balance-Whale-Widget★ 7201
右下角常驻的小鲸鱼挂件:余额、今日已用与每轮对话消耗(含峰谷价),余额预警与今日预算的泡泡内容都可编辑;泡泡点击序列模块化自定义,支持并列加权 A/B、随机台词与随机图片;内置 30+ 厂商模板(OpenAI / OpenRouter / Kimi / 硅基流动 / 方舟 / 智谱 / MiniMax 等),按模型查余额与订阅额度;另有任务结束音效、导入音频、自定义角色与资源管理。数据全在本机,无遥测。
omdsh-dev/DSH-better-sidebar★ 5142
侧边栏完整工作台:内置文件渲染编辑、终端、Git 与子代理,支持三方插件注册新 Tab。
Devin-AXIS/deepseek-design#deepseek-idesign★ 1816
可视化设计工作室,支持网站、App 原型、海报、信息卡、报告和杂志的模板创建、元素编辑、选区级 AI 草稿衔接与导出。
社区评论
评论公开保存在 GitHub Discussions。加载评论会连接 GitHub 和 Giscus;发表内容需要 GitHub 账号。