dsh-skill-picker 使用指南
DSH Web 技能选择器,在输入框旁加 ⚡ 按钮,一键搜索/点选已安装技能并把官方 `/技能名` 手势插入发送框。
本文为派生内容(基于 wiki / faq / compatibility_json 自动组装),非 AI 即时创作。
本文由本站基于该插件已收录的字段自动派生(wiki / faq / compatibility_json / readme),非 AI 即时创作。每节末尾标源字段。
快速上手
dsh-skill-picker
— 源: plugin_wiki.wiki_content
安装与验证
dsh plugin --profile web add dsh-skill-picker
复制以上命令在 DSH Web Profile 内运行。安装完成后在「插件列表」启用即可。
— 源: plugins.install
关键要点
- ⚡ 一键弹出全部技能(闪电图标,人人看得懂)
/直接补全:输入斜杠即列出全部技能,模糊搜索(技能名+描述任意匹配)+ 常用排序(v0.2.0)- 🔍 实时搜索(技能名 / 描述都搜)
- 🧠 最近使用置顶、常用靠前的智能排序(WorkBuddy 同款)
- 📋 走官方宿主 skills API(与 DSH 内置
/补全同一数据源,自动覆盖用户级+项目级技能)
— 源: plugin_wiki.readme_zh (fallback readme_raw)
常见问题
安装后输入框旁没有出现 ⚡ 按钮怎么办?
必须用 dsh --profile web 安装(命令带 --profile web),安装后重启 dsh web 进程并刷新浏览器。package.json 里 dsh.client.platform 固定为 web,只有 web profile 会扫描并加载这个 client bundle(package.json:24-29 / README.md:51)。
⚡ 按钮和 DSH 自带的 / 补全有什么区别?能同时用吗?
同时用。官方 / 补全是「前缀记忆驱动」——必须先打 /+ 前缀才能过滤;⚡ 按钮是「全列表浏览 + 关键字模糊搜索」,并且按最近使用/常用频率排序。两种交互最终都把 /技能名 文本插入草稿,由同一套原生机制加载(README.md:80-91 / src/client/index.jsx:388-474)。
选好技能后是如何被 DSH 加载并执行的?
本插件只负责把 /技能名 文本写入草稿框,并不直接调用任何 agent。消息发出后由 DSH 官方 agent/pre-step 阶段的 SKILL_GESTURE 正则扫描用户消息中的 /kebab-case-name 手势,命中后把对应技能内容作为 skill-invocation 注入对话,由模型按技能指令执行(README.md:62-78)。
安装了很多技能后,怎么快速找到常用那几个?
每次点选技能都会被记录到浏览器 localStorage(key dsh-skill-picker:usage),含使用次数与最近使用时间戳;弹窗默认按「最近使用优先 → 使用次数 → 名称字母序」排序,搜索框在此基础上再做关键词模糊匹配(src/client/index.jsx:25-46,53-65,270-276)。
哪些技能会被列出来?是不是和 DSH 内置补全一致?
优先走官方宿主 skills API(connection.api.skills.list,与 DSH 内置 / 补全同源,会话作用域,自动覆盖用户级与项目级全部技能);官方 API 不可用时回退到插件内置目录扫描——扫描 $DSH_HOME/skills、<workspace>/.dsh/skills、<workspace>/.agents/skills,都尊重 DSH_HOME 环境变量(src/index.js:36-96 / src/client/index.jsx:192-215)。
改完源码直接重启为什么没生效?
lib/client.js 是构建产物,DSH web shell 要求它以 window.__ModuleLoader__.load({ id, factory }) 的 CJS 握手格式注册。改完 src/ 后必须执行 npm run build 重新生成 lib/,否则 web shell 启动时会报 loaded without registering "dsh-skill-picker" via __ModuleLoader__.load(README.md:117-121 / build.mjs:37-54)。
卸载插件会影响已安装的技能文件吗?
不会。本插件是只读扫描 + UI 注入层,从不写入 $DSH_HOME/skills 或 <workspace>/.dsh/skills,卸载后技能本身仍保留在原目录,下次重新安装插件即可再次看到(src/index.js:55-80 仅读取)。
「最近使用」排序存哪里?换浏览器或清缓存会丢吗?
存浏览器 localStorage(key dsh-skill-picker:usage,JSON 格式记录每个技能的 count 与 lastUsed),与账号无关。换浏览器、隐私模式、清缓存都会重置——重置后回退到字母序(src/client/index.jsx:25-46,52-65)。
输入框里已经写了别的话,再点 ⚡ 会不会把之前内容覆盖掉?
不会覆盖。插件会读取当前草稿内容(优先 input.draft,回退到 useInput 状态机),把 /技能名 追加到草稿末尾,自动补一个空格做分隔;如果草稿为空或结尾已经是空格/换行则不重复加分隔符(src/client/index.jsx:222-245)。
— 源: plugin_wiki.faq_json
兼容性
- DSH: ^0.1.0-rc.6
- Node: 未声明
- Platforms: macOS, Windows, Linux
— 源: plugin_wiki.compatibility_json
踩坑提醒
安装前请审阅上游仓库;本指南基于已收录字段自动派生,可能滞后于最新版本。如发现与官方文档冲突,请以上游为准。
— 来源:通用规则