🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

静默窗口补丁 Culeot/dsh-no-console-flash

DeepSeek Harness
Culeot81 天前有提交已提供中文文档扫描:含敏感能力

消除 Windows 上命令执行时弹出的黑窗口

28.1/100
综合分
2
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/9/18 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add Culeot/dsh-no-console-flash
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么
dsh 原生插件 · security
装得上吗
本站已真实安装成功
非静态推断
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 81 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

读写/删除本地文件
查看扫描证据(共 23 处,展示前 11 条)
  • 读取本地文件
    patch.cjs:23
    if (!fs.existsSync(full)) { console.log(`skip ${label}: file not found (${relPath})`); skipped++; return false; }
  • 读取本地文件
    patch.cjs:25
    if (!fs.existsSync(bak)) fs.copyFileSync(full, bak);
  • 读取本地文件
    patch.cjs:26
    let c = fs.readFileSync(full, 'utf8');
  • 写入本地文件
    patch.cjs:33
    fs.writeFileSync(full, c, 'utf8');
  • 读取本地文件
    patch.cjs:45
    if (fs.existsSync(sandboxFile)) {
  • 读取本地文件
    patch.cjs:46
    const files = fs.readdirSync(sandboxFile).filter((f) => f.endsWith('.js') && f !== 'index.js' && f !== 'invariant.js' && f !== 'runner.js');
  • 读取本地文件
    patch.cjs:49
    const c = fs.readFileSync(p, 'utf8');
  • 写入本地文件
    patch.cjs:66
    fs.writeFileSync(full, c, 'utf8');
  • 写入本地文件
    patch.cjs:85
    fs.writeFileSync(full, c.replace('detached: platform !== "win32"', 'detached: platform !== "win32",\n\t\twindowsHide: true'), 'utf8');
  • 写入本地文件
    patch.cjs:99
    fs.writeFileSync(sub, c.replace('detached: platform !== "win32"', 'detached: platform !== "win32",\n\t\twindowsHide: true'), 'utf8');
  • 写入本地文件
    patch.cjs:119
    fs.writeFileSync(sfull, sc, 'utf8');
扫描于 2026/11/3(1 天前) · 范围 全包扫描 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 消除命令执行黑窗口
  • 隐藏控制台窗口
  • 子进程窗口隐藏

补丁:让 DSH 在 Windows 上不再闪控制台窗口(沙箱用 STARTF_USESHOWWINDOW+SW_HIDE,子进程用 windowsHide)

README

由 DeepSeek 最新模型翻译生成
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,把新建的控制台窗口设为隐藏。
展开完整文档(README 剩余 1 节)
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/dsh-no-console-flash
分享 · DeepSeek Harness Hub
Culeot/dsh-no-console-flash

消除 Windows 上命令执行时弹出的黑窗口

这是你的仓库?认领条目

回到顶部