dsh-bang-shell
中文 | English
在 DeepSeek Harness Web 输入框中以 ! 开头直接执行 Shell 命令:命令不发送给 AI 模型,在当前会话工作目录运行,结果作为命令卡片保存到会话流。
效果
- 输入第一个
!时整行立即切换为终端配色(琥珀色!提示符 + 绿色命令文字,无背景色,明暗主题自适应),模式切换一眼可辨; - 回车执行:stdout / stderr / 超时与信号信息 / 退出码渲染为持久化命令卡片,跨标签页可见,不消耗任何模型 token。
使用
!pwd
!git status
!pnpm test- 仅当消息去掉前导空白后第一个字符是
!时被拦截;行内!不触发; - 单独输入
!保留草稿并提示需要填写命令; - 命令经 DSH 当前
ctx.shell执行器运行,沿用现有超时与沙箱策略; - 非零退出码显示为错误命令卡片,不触发 AI 回合。
安装
前置要求:DSH 核心需包含 ! 触发字符扩展(TriggerChar、detectTrigger、输入 adjudication;见下方「核心配套修改」)。在满足条件的 checkout 上:
dsh plugin --profile web add /path/to/dsh-bang-shell重启 dsh web 后刷新浏览器页面。
核心配套修改
! 触发字符需要 DeepSeek Harness 核心输入管道的扩展(约 20 行,均带先行测试):
packages/client/ui-input-trigger:TriggerChar增加'!',detectTrigger识别!packages/client/ui-conversation:InputMachine.onEnter对!草稿进入 adjudication;装饰层新增bang区间;InputBar 以双色(琥珀!+ 绿色命令,无背景)渲染
开发
DSH_CHECKOUT=/path/to/deepseek-harness npm run build
npm test构建复用 DSH checkout 的工具链(tsc + tsdown + clientBundle 预设),零额外 npm 依赖。
已知限制
- 依赖核心
!触发扩展,未包含该扩展的 DSH 版本上浏览器半面不生效; - 命令输出渲染复用通用命令卡片(
command/done文本),暂无专属终端块; - 多行命令按整行提交,不支持 shell 历史替换(
!!)。
许可证
[BSD-3-Clause](LICENSE)