Back to home

Kevoyuan

dsh-skill-fuzzy

Fuzzy search + description preview for the / skill menu in DeepSeek Harness (dsh) Web UI — /markdown finally finds baoyu-markdown-to-html

Stars
0
Language
TypeScript
Created
Aug 15, 2026
Updated
Aug 15, 2026

Introduction

dsh-skill-fuzzy

English | 中文

DeepSeek Harness(dsh)Web UI 的 / 技能菜单增强插件:模糊搜索 + 描述预览

一图看懂

同样输入 /design

安装前 —— 只会前缀匹配,4 个结果,描述被 ... 截断,看不全:

before

安装后 —— 模糊匹配 7 个结果(canvas-designmobile-design 这类名字带 design 但开头不是的也能找到),名称完整显示,右侧面板实时预览完整描述:

after

解决什么问题

dsh 内置的 / 技能菜单是前缀匹配:想用 baoyu-markdown-to-html,必须记得输入 /baoyu-…;输入 /markdown 是找不到的。技能一多(几百个),基本等于没法搜。

装上这个插件后,像使用现代编辑器的命令面板一样:

  • /markdown —— 名字里含这些字母的都能搜到(baoyu-markdown-to-htmlweb-to-markdownmarkitdown…)
  • /mdhtml/bmth —— 按字母子序列也能命中
  • ↑↓ 选择,右侧同步显示完整描述,回车即插入

安装

前提:已安装 dsh(npm i -g @deepseek-ai/dsh)。

dsh plugin --profile web add dsh-skill-fuzzy

重启 dsh(dsh --profile web)即可,输入 / 试试。

💡 你现有的其他插件、会话、设置都不受影响。此插件只接管技能菜单,/compact/plan 等命令菜单照旧。

卸载

dsh plugin --profile web remove dsh-skill-fuzzy

恢复 dsh 内置的原生行为。

常见问题

Q: 装完没变化? 确认用的是装了插件的 profile 启动(如 dsh --profile web),并刷新浏览器页面。

Q: 选中技能后发生了什么? 和内置行为完全一致:插入 /技能名 ,dsh 会在发送时自动加载技能内容。disable-model-invocation 的技能照样可以手动调用。

Q: 中文能搜吗? 技能名目前以英文为主,搜索对大小写不敏感;中文字符同样按子序列匹配。

Q: 支持 TUI(终端界面)吗? 暂不支持,仅 Web UI(浏览器界面)。TUI 需要官方提供补全扩展点。

进阶

工作原理(点开看)

dsh 的 Web UI 每个界面模块本身就是一个插件。本插件通过 dsh 官方的 bundle 分层机制,禁用内置的技能菜单插件(ui-skill,前缀匹配)并注册自己的替代实现:相同的会话目录缓存、相同的选中行为,仅把过滤换成模糊打分排序,并新增一个跟随菜单高亮的描述预览面板。

本地开发 / 从源码安装(点开看)
git clone https://github.com/Kevoyuan/dsh-skill-fuzzy.git
cd dsh-skill-fuzzy
pnpm install && pnpm build && pnpm test
dsh plugin --profile web add .          # 从本地目录安装
  • pnpm watch 增量构建;改完重启 dsh 生效
  • pnpm check 类型检查
dsh 升级后异常怎么办?(点开看)

本插件复刻了上游约 20KB 的界面代码(MIT 许可,来源已在 LICENSE 中注明)。dsh 大版本升级后如果技能工具行显示异常,重新构建无效时需要对照上游同步(见插件仓库 README 的同步指引);一般小版本升级不受影响。

License

MIT(含来自 deepseek-harness 的 MIT 代码,来源见 LICENSE