DeepSeek Harness Hub
← 返回列表

Culeot/dsh-no-console-flash

DeepSeek Harnessspec-screened在 GitHub 查看 ↗
未验证

修掉 DSH 在 Windows 上"弹一下终端窗口"的问题——运行命令时屏幕闪一个黑窗口又消失,打字都被打断。

尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/8/15 · 已提供中文文档

补丁:阻止 DSH 在 Windows 上闪现控制台窗口(对沙箱使用 STARTF_USESHOWWINDOW+SW_HIDE,对子进程使用 windowsHide)

综合分
28.1
GitHub 分
28.1
用户评分
★ Stars
2
周下载量
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add Culeot/dsh-no-console-flash
该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
数据截至 2026/9/18(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

dsh-no-console-flash

修掉 DSH 在 Windows 上"弹一下终端窗口"的问题——运行命令时屏幕闪一个黑窗口又消失,打字都被打断。

问题

DSH 在 Windows 上执行命令(沙箱里的 pwsh/bash、普通子进程)时,如果宿主没有控制台(桌面启动、后台服务、双击图标),Windows 会给每个子进程新建一个可见的控制台窗口,闪一下再关闭。

三个官方讨论区帖子都报了这个:

- #1344:沙箱子进程弹出可见控制台,给出了修复方案
- #1102:无控制台宿主下 shell 命令弹 PowerShell 窗口
- #1142:工作时频繁弹出 CMD 窗口

为什么直接隐藏窗口会崩(关键背景)

不能简单加 CREATE_NO_WINDOW——DSH 的 Windows ACL 沙箱用受限令牌跑子进程,隐藏控制台会让子进程死于 STATUS_DLL_INIT_FAILED (0xC0000142)(DLL 初始化失败,#810 有详细记录)。所以正确做法是 #1344 的方案:保持 dwCreationFlags = 0,改用 STARTUPINFO 的 STARTF_USESHOWWINDOW + SW_HIDE,把新建的控制台窗口设为隐藏。

补丁改了什么(共享层 + 各 profile 副本)

| 文件 | 改动 | 来源 |
|---|---|---|
| dsh-sandbox-windows-acl/lib/types-.js | 两处 spawn:dwFlags: 256 → 257(加 STARTF_USESHOWWINDOW),新增 wShowWindow: 0(SW_HIDE) | #1344 方案 |
| dsh-subprocess-local/lib/index.js | spawn 加 windowsHide: true | #1102 方案 |

两条路径都覆盖:沙箱命令路径(最常弹)+ 通用子进程路径。

补丁同时作用于共享层以及各 profile 的独立副本(profiles/web、profiles/headless 各有自己的 node_modules)。DSH Web GUI 跑在 web profile 下,profile 副本不补的话命令照样弹窗——脚本一次运行全部处理。

用法

node patch.cjs
默认补 ~/.dsh;指定其他 DSH_HOME 就传路径:
node patch.cjs C:/path/to/other/.dsh

- 幂等:重复运行不会重复改动(已验证)
- 有备份:每个改动的文件旁边存 .noconsole.bak,想还原就拷回去
- 升级后重跑:DSH 升级会覆盖 node_modules,重新执行一次即可

验证

功能:补丁后沙箱命令仍正常
dsh --profile headless "用 pwsh 执行 echo hello"
预期输出 hello

弹窗:从无控制台方式启动 DSH(双击图标/服务),跑任意命令
预期:不再闪窗口

本机已验证:
- 补丁前后沙箱命令输出一致(功能无回归)
- 隐藏窗口子进程检测:hwnd=0 visible=no-window(SW_HIDE 生效)
- 脚本幂等:重跑全部 skip

兼容性

- 只改 Windows 路径(dsh-sandbox-windows-acl 仅 Windows 生效;windowsHide 在非 Windows 被 Node 忽略)
- 不影响 stdio 管道、沙箱权限、退出码
- 不影响有控制台的终端启动方式(继承宿主控制台,本来就不弹)

License

MIT

上游仓库有新提交时邮件通知你(每天最多一封,无更新不打扰),随时一键退订。

同作者(Culeot)的其他插件

💬 加入 DPharness 群聊

插件用法、部署报错、新插件第一时间同步——群里问,比一个人翻文档快。

点击加入 QQ 群
DPharness 群聊二维码,手机 QQ 扫码进群
扫码进群