DSH 命令优化插件 dsh-command-opt 介绍

前言

在 DeepSeek Harness(DSH)里使用斜杠命令时,常见的问题不只是“命令能不能执行”,还包括命令名怎么补全、参数格式怎么提示、tool 开启的会话(subagent)里为什么没有命令选项、空对话里执行命令后输出和头部按钮为什么不正常。

下面介绍 csiroqa/dsh-command-opt。它是一个 DSH 命令优化插件,主要覆盖命令名补全、参数格式引导、命令提示弹框、subagent 会话补丁和空对话命令输出修复。

这是什么

dsh-command-opt 是 DSH 命令优化插件:

  • Tab/Enter 补全命令名
  • 参数格式引导与提示弹框
  • tool 开启会话(subagent)补丁
  • 空对话命令输出修复

仓库地址为:

https://github.com/csiroqa/dsh-command-opt

维护者为 csiroqa,许可证为 MIT License。

它主要面向 DSH web 页面使用,解决的是斜杠命令输入、参数提示、命令执行和会话状态这几个环节的具体问题。

核心功能

Tab/Enter 补全命令名

在输入 / 加前缀后,按 Tab 可以补全命令名。

多候选场景下:

  1. 先补全公共前缀
  2. 再按 Tab 轮转候选
  3. / 选中后,用 TabEnter 补全选中项

这个能力针对的是命令目录中已经存在的命令,不是任意自由文本补全。

参数格式引导

补全到带参数位的命令后,可以进入参数位。

参数引导包含:

  • input hint 幽灵文本与输入对齐
  • Tab 轮转参数选项
  • 输入参数过程中保持提示弹框常驻

例如补全到 /schedule 这类命令后,可以继续输入参数,并由提示弹框显示当前命令的上下文。

命令提示弹框

命令提示弹框使用 conversation.input.overlay 槽位。

它的作用是在输入命令参数时持续显示命令提示,而不是只在命令名补全阶段出现一次。对于多参数命令,输入参数后提示不会直接消失。

tool 开启的会话(subagent)补丁

tool 开启的会话(subagent)中,内置命令目录可能返回空,导致这类会话看起来“没有选项”,无法直接执行 /archive 等命令。

这个插件为这类会话提供补丁:

  • 命令目录直连宿主命令目录
  • 回车时执行完整命令
  • 会话头部注册“操作”菜单

头部“操作”菜单提供:

  • 归档
  • 复制会话
  • 定位父会话

空对话命令输出修复

在空会话里执行命令后,这个插件让输出和头部操作恢复正常:

  • 命令输出正常渲染
  • 头部选项按钮出现
  • 不被下一次“新建对话”复用扫描合并

目录缓存

插件对命令目录做了缓存处理:

  • 键入 / 时预热
  • commands/changeagent-preset/selected 事件主动失效
  • TTL 兜底
  • 同会话并发去重
  • 会话删除时剪枝

这些缓存策略主要服务于命令补全和命令提示,不改变 DSH 本身的命令定义。

安装与启用

前置条件:

  • Node.js >= 22
  • pnpm
  • 本机 deepseek-harness 源码检出
  • 依赖以 link: 指向 ../deepseek-harness

先克隆并构建插件:

git clone https://github.com/csiroqa/dsh-command-opt.git
cd dsh-command-opt
pnpm install
pnpm build

然后安装进 web profile。插件以 link: 指向当前目录安装:

dsh plugin --profile web add link:$(pwd)

安装完成后:

  1. 重启 dsh web
  2. 浏览器 Ctrl+F5 硬刷新

如果后续修改插件源码,需要重新构建并硬刷新:

pnpm build

配置说明

安装后,cordis.patch.ymlcommand-opt insert 行支持可选配置。

但需要注意一个 DSH 固有行为:浏览器半区收不到 patch config,默认值内置在代码里,修改 config 不会改变浏览器行为。

因此,日常使用时更依赖插件代码默认行为和实际运行效果,而不是通过配置文件调整浏览器侧行为。

典型用法

1、补全命令名

输入:

/

继续输入命令前缀,然后按 Tab

如果命令目录中有多个候选:

  1. 先补全公共前缀
  2. 继续按 Tab 轮转候选
  3. / 选中目标命令
  4. TabEnter 补全选中项

2、输入命令参数

补全到带参数位的命令后,例如 /schedule,直接进入参数位。

此时:

  • 幽灵提示显示参数格式
  • Tab 可以轮转参数选项
  • 输入参数过程中,提示弹框保持常驻

3、在 tool 开启的会话中执行命令

在 tool 开启的会话中:

  1. 输入 /archive 等命令
  2. 按回车直接执行
  3. 通过头部“操作”菜单执行归档、复制会话、定位父会话

4、在空会话中执行命令

在空会话里执行命令后:

  • 输出正常渲染
  • 头部选项按钮出现
  • 该会话不会被下一次“新建对话”复用

适用场景与注意

适合以下场景:

  • 在 DSH web 页面中频繁使用斜杠命令
  • 希望命令名补全更快
  • 希望命令参数格式有提示
  • 需要在 tool 开启的会话中执行 /archive 等命令
  • 需要在空会话里执行命令并保留正常输出

使用前需要注意:

  • 插件运行在当前 dsh 进程权限下
  • 安装前应检查源码与许可证
  • 许可证为 MIT License,保留 LICENSE 文件与版权声明,并标明出处(本仓库链接)
  • 插件只在本机页面上生效,不涉及网络监听
  • 插件代码以 link: 指向本仓库目录安装,改动源码后需要重新构建并硬刷新生效

兼容性方面:

  • 针对 DSH 0.1.1-rc.2 源码检出开发验证
  • 依赖 dsh-client-runtime 的公开面
  • 少量内部面以运行时特性检测保护,缺失时静默降级

已知限制:

  • 空对话激活是浏览器侧行为
  • 宿主 summary 仍报 blank
  • 刷新页面后,该空会话会从列表消失,直到有真实 turn

结尾

dsh-command-opt 解决的问题比较具体:斜杠命令补全、参数提示、subagent 会话命令执行、空对话命令输出。它不是改变 DSH 命令定义,而是围绕 DSH 的 web 命令体验做补齐。

GitHub 仓库:

https://github.com/csiroqa/dsh-command-opt

目录页地址未在已核实资料中出现,本文不列出。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye