deepseek-harness
deepseek-ai
DeepSeek Harness: Everything is a Plugin.
PROJECT TOPICS
PROJECT README
技能记不住名字?官方
/补全靠前缀记忆,装了几十个技能谁记得住? 本插件让技能看得见、翻得到、选得快——点一下 ⚡,全部技能带描述排在你面前,搜索、点选、插入,随消息发出自动加载。
DSH Web GUI 的技能选择器:在输入框(composer)工具行右侧加一个按钮,点开可以搜索并点选已安装的技能,选中后把官方 /技能名 手势插入发送框——随消息一起发出,DSH 原生机制就会自动加载该技能并执行。WorkBuddy 式"把技能写进发送框"的交互,DeepSeek Harness 复刻版。
English: A skill picker for the DSH Web GUI — a button in the composer's right tool row opens a searchable list of installed skills; picking one inserts the official /skill-name gesture into the draft, so DSH's native user-invocation path loads the skill with your message.
/ 补全)官方内置了 / 技能补全,但它是记忆驱动的——你得先记得技能名,打 / + 前缀才能过滤出来。技能一多就抓瞎:
官方 / 补全 |
dsh-skill-picker | |
|---|---|---|
| 触发 | 输入框打 / |
输入框旁 ⚡ 按钮 |
| 查找方式 | 前缀记忆驱动,忘了名字就找不到 | 全列表浏览 + 关键字搜索,忘了名字也能翻到 |
| 排序 | 固定 | 最近使用置顶、常用靠前 |
| 描述可见 | 精简 | 完整描述一眼看全 |
记得名字用官方,忘了名字用本插件——两者互补,可同时使用。
~/.dsh/skills(官方技能 provider 同源目录,标准安装即用)/技能名 手势,加载/执行走 DSH 原生机制,零 agent 侧改动# 方式一:GitHub 克隆 + link(推荐,无需发布 npm)
git clone https://github.com/a735624258/dsh-skill-picker.git
dsh plugin --profile web add link:/path/to/dsh-skill-picker
# 方式二:Git 依赖直装
dsh plugin --profile web add "github:a735624258/dsh-skill-picker"
# 方式三:发布到 npm 后(预构建安装,体验最佳)
dsh plugin --profile web add dsh-skill-picker
注:目前尚未发布 npm(
npm view dsh-skill-picker会 404),请用方式一或方式二。 若dsh命令因 PowerShell 执行策略被拒(File ... cannot be loaded),用:powershell -ExecutionPolicy Bypass -Command "dsh plugin --profile web add link:C:\path\to\dsh-skill-picker"
重启 dsh web(或刷新页面加载新 bundle)后生效。
/技能名/技能名 手势,自动加载该技能并按其指令执行示例:点选 duo-xuan-pi-gai 后发送框变为 /duo-xuan-pi-gai 帮我批改多选,发送后技能自动加载。
DSH 的 dsh-tool-skill 在 agent/pre-step 阶段扫描用户消息中的 /kebab-case-name 手势(SKILL_GESTURE 正则),命中后把对应技能内容作为 skill-invocation 注入对话——即"用户消息里写 /技能名 就会自动加载技能"是官方既有能力,只是没有 UI。
本插件只补 UI 一层:
[client] ⚡ 按钮 → fetch('/dsh-skill-picker/skills')
↓
[host] 扫描用户级 $DSH_HOME/skills + 项目级 <cwd>/.dsh/skills 等 → 技能目录(name + description)
↓
[client] 点选 → inputActions.setDraft(draft + '/技能名 ')
↓
[DSH] agent/pre-step 识别手势 → 自动加载技能 → 执行
conversation.input.right 插槽(composer 工具行、发送按钮左侧的控件位),技能列表优先走官方宿主 skills API(connection.api.skills.list——与 DSH 内置 / 补全同源,会话作用域,自动含用户级/项目级技能),失败时回退到 host 扫描路由;插入文本走框架输入机的 inputActions.setDraft(单一路径,撤销/草稿持久化自动处理);最近/常用排序存 localStorage/ 补全的关系DSH 官方已内置技能补全:在输入框输入 / 会弹出技能菜单,按前缀过滤(如输入 /sk 列出 skill 开头的技能)。本插件不替代它,而是补上官方方案的盲区:
官方 / 补全 |
dsh-skill-picker | |
|---|---|---|
| 触发 | 输入框打 / |
输入框旁 ⚡ 按钮 |
| 查找方式 | 前缀记忆驱动——需要先记得技能名才能打出来 | 全列表浏览 + 关键字搜索——忘了名字也能翻到 |
| 排序 | 固定顺序 | 最近使用置顶、常用靠前(localStorage) |
| 适合场景 | 记得名字的老手 | 技能多、记不全名字、想翻着选的人 |
一句话:记得名字用官方,忘了名字用本插件。两者互补,可同时使用。
connection.api.skills.list——与 DSH 内置 / 补全完全同一个数据源,会话作用域,自动覆盖用户级 ~/.dsh/skills、项目级 <workspace>/.dsh/skills、<workspace>/.agents/skills 等全部官方目录);官方 API 不可用时自动回退到内置扫描(用户级 + 项目级目录)。两条路都支持 DSH_HOME 环境变量。~/.agents/skills 与自定义技能目录(customSkillDirs 配置)——需要的话欢迎 PR。ctx.slots.inject(等 conversation.input.right 插槽声明存在才注册,插槽缺失时静默跳过,不会拖垮启动);host 端路由 try/catch,扫描目录不存在时返回空列表而非报错。0.1.0-rc.6 API 编写(cordis 4 / web profile 标准装配)。如遇 DSH 大版本更新导致 API 变化,插件会以启动日志的插件错误提示为准,卸载 dsh plugin --profile web remove dsh-skill-picker 即可回退。# 安装依赖(提供 esbuild)
npm install
# 构建(源码 src/ → 产物 lib/;client 半自动包 __ModuleLoader__ 握手)
npm run build
# 安装到 web profile(link 模式,改源码即生效)
dsh plugin --profile web add link:$PWD
# 语法自检(产物)
node --check lib/index.js
node --check lib/client.js
⚠️ 改完源码必须
npm run build:lib/client.js是构建产物,ESM 源码不能直接作 为 client bundle 加载——DSH web shell 要求 client bundle 以window.__ModuleLoader__.load({ id, factory })的 CJS 握手格式注册,否则启动报loaded without registering "dsh-skill-picker" via __ModuleLoader__.load。 构建脚本(build.mjs)会通过 esbuild 的 banner/footer 自动注入这段握手。
目录结构:
dsh-skill-picker/
├── package.json # dsh.bundle.patch + dsh.client 声明 + build script
├── cordis.patch.yml # bundle patch:把插件行插入 web profile
├── build.mjs # esbuild 构建:host ESM + client CJS(__ModuleLoader__握手)
├── src/
│ ├── index.js # host 半源码:/dsh-skill-picker/skills 路由 + prompt section
│ └── client/
│ └── index.jsx # client 半源码:conversation.input.right 插槽组件
├── lib/ # 构建产物(勿手改,`npm run build` 生成)
│ ├── index.js
│ └── client.js
└── README.md
@deepseek-ai/cordis、@deepseek-ai/dsh-host-webserver、@deepseek-ai/dsh-skill、@deepseek-ai/dsh-system-prompt@deepseek-ai/dsh-client-runtime、@deepseek-ai/dsh-client-ui-slots、reactMIT
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: 无有效分类标签。