前言¶
DeepSeek Harness(DSH)的插件化设计让开发者可以按需扩展能力。对于需要频繁在会话目录中执行 Shell 命令、查看文件状态或运行临时脚本的开发者来说,每次切换到终端窗口再复制粘贴命令比较繁琐。dsh-hint-shell 插件把终端的 ! 前缀机制搬进了 DSH 的 composer,让 Shell 命令直接在对话中运行,结果以工具交换的形式返回。
这是什么¶
mooling0602/dsh-hint-shell 是一个 DeepSeek Harness 客户端插件,由维护者 Mooling0602 开发。它在 DSH 的 composer 中把 ! 标记为 shell 前缀,在同一行输入命令后按回车即可在当前会话的工作目录执行,并将输出记录为一条合法的工具调用和结果,不消耗额外的 model request。
核心功能¶
- Composer 中的
!前缀:在 composer 中输入!后继续输入命令(如!ls或!git status),!后面会显示灰色提示Enter a shell command…,确认命令被识别。 - 命令在会话工作目录运行:命令继承当前 DSH 会话的工作目录,无需手动切换路径。
- 输出以工具交换形式返回:命令执行结果作为 tool call 和 result 返回,模型可以在下一次请求中直接使用这些结果,无需再次执行命令。
- 无额外 model request:
!行本身不计入 token 消耗,只有命令输出部分计入。 - 支持 Shell 语法:支持引用、管道(
|)和通配符(*),命令通过/bin/sh -c(Linux/macOS)或cmd.exe(Windows)执行。 - 一个配置项:在插件安装后,Installed 页面会出现该插件的一行配置,可设置命令长度上限(默认 10,000 字符)。
- 不影响现有行为:插件不新增按钮、不替换组件、不改变键盘行为,仅对 composer 中以
!开头的行生效。
安装与启用¶
在 DSH 的 Plugin 页面选择 Add plugin,将仓库地址粘贴到输入框:
https://github.com/Mooling0602/dsh-hint-shell
插件仓库直接打包了构建产物(index.js、client.js),无需额外构建步骤,安装后重启 DSH 即可。
通过命令行安装(适合脚本化配置):
dsh plugin --profile web add https://github.com/Mooling0602/dsh-hint-shell
更新时重复上述安装命令即可。
典型用法¶
- 确保 composer 为空。
- 输入
!并继续输入命令,例如!ls或!git status。提示会确认!被识别。 - 按 Enter 执行。
执行后,命令输出会显示在对话中,模型可以在下一次请求中看到命令及其结果。
! 的触发规则:
!ls→ 执行ls! ls→ 执行ls(空格被忽略)!单独一行 → 作为普通文本发送给模型hello !world→ 作为普通文本,!不会被当作前缀
超过命令长度上限的行会在执行前被拒绝。
适用场景与注意¶
适合需要从对话上下文直接操作文件系统、查看目录结构或运行临时脚本的开发者。例如:
- 在项目目录中列出文件:
!ls - 查看当前分支和改动:
!git status - 查看最近一次提交信息:
!git log -1 --oneline
注意:
- 插件以当前 DSH 进程的权限运行,请确保插件来源可信(可查看 GitHub 仓库)。
- 命令执行时间、输出大小等限制继承自 terminal 插件的设置(
timeoutMs、maxOutputBytes)。 - 模型看到的命令结果前会有一行标记:
[run by the user via \!` prompt symbol]`,用于提示来源,并非隔离边界。
结语¶
dsh-hint-shell 让 Shell 命令无缝融入 DSH 对话流程,开发者无需离开 composer 即可在当前工作目录执行命令,结果直接可供模型使用。安装后重启 DSH,在 composer 中输入 ! 即可开始使用。
- 目录页:https://www.skillhub.cn/plugins/Mooling0602/dsh-hint-shell
- GitHub:https://github.com/Mooling0602/dsh-hint-shell