chengyimingvb/dsh-silent-pwsh
A DeepSeek-Harness plugin for Windows that makes sandboxed (confined) pwsh / bash calls spawn their console window hidden (SW HIDE) — no black console window flashes on every command.
これは DeepSeek Harness(DSH)プラグインです。当サイトは GitHub README、インストール情報、メンテナンス状況、公開セキュリティシグナルをまとめています。
dsh-silent-pwsh
DeepSeek-Harness 插件:让 Windows 上受限(沙箱)pwsh / bash 调用的控制台窗口创建即隐藏(SW_HIDE)——每次命令不再闪现黑框。
背景
DSH 每次受限 pwsh 调用都经过 windows-acl runner(dsh-sandbox-windows-acl/lib/runner.js),用原生 CreateProcessAsUserW 拉起子进程。出厂包里没给 STARTUPINFOW 设置 STARTF_USESHOWWINDOW | SW_HIDE,宿主又没有控制台,于是每个受限命令都会新建一个可见的控制台窗口(黑框闪现)。CREATE_NO_WINDOW 在受限令牌下会让子进程以 0xC0000142 启动失败(官方已验证),所以正确做法是 SW_HIDE:控制台保留(PowerShell 初始化不受影响)、窗口隐藏。
进程树终止用的 taskkill 和沙箱能力探测的 spawnSync 也缺 windowsHide,同样会闪框,本插件一并修复。
它做什么
DSH 插件模型只能补 Loader 配置、加载 Cordis 插件,无法通过任何配置缝修改上述原生 spawn 标志。因此本插件是一个自愈补丁插件:宿主每次启动时(任何受限命令执行前)校验并幂等重打三处补丁——
文件(<host>\node_modules 下) | 补丁 |
|---|---|
@deepseek-ai/dsh-sandbox-windows-acl/lib/types-CNjZgO4h.js | 两处 encodeStartupInfo:dwFlags: 256 → 257(+STARTF_USESHOWWINDOW),加 wShowWindow: 0(SW_HIDE) |
@deepseek-ai/dsh-subprocess-local/lib/index.js | taskkill 的 spawnSync 加 windowsHide: true |
@deepseek-ai/dsh-sandbox-local/lib/index.js | windows-acl 能力探测的 spawnSync 加 windowsHide: true |
补丁只在文件处于「预期旧形态」时替换;形态不匹配(上游改版)则告警跳过,绝不破坏文件。重装或升级 DSH 后无需手动改,下次启动自动修复。
安装
前置:DeepSeek-Harness 桌面应用,node 与 pnpm 在 PATH 上。
从 GitHub 安装(推荐)
dsh plugin --profile web add github:chengyimingvb/dsh-silent-pwsh
# 或完整 URL:
dsh plugin --profile web add https://github.com/chengyimingvb/dsh-silent-pwsh
从本地目录 / zip 安装
# 解压 zip 后进入 dsh-silent-pwsh 目录:
.\install.ps1 # 装入 web profile
.\install.ps1 -Profile headless # 或其它 profile
# 被执行策略拦截时:powershell -ExecutionPolicy Bypass -File .\install.ps1
然后重启 DeepSeek Harness。宿主日志会显示 [silent-pwsh] up to date(需要自愈时显示 [silent-pwsh] patched …)。
注意:若 pnpm 报供应链策略错误(
minimumReleaseAge),把报错的包名@版本加进该 profile 的pnpm-workspace.yaml的minimumReleaseAgeExclude列表后重试。
卸载
dsh plugin --profile web remove dsh-silent-pwsh
补丁文件保持不动。手动还原出厂文件:
$chunk = "$env:ProgramFiles\DeepSeek Harness\resources\host\node_modules\@deepseek-ai\dsh-sandbox-windows-acl\lib\types-CNjZgO4h.js"
(Get-Content $chunk -Raw) -replace 'dwFlags: 257,`n`t`twShowWindow: 0,', 'dwFlags: 256,' | Set-Content $chunk -NoNewline -Encoding utf8
# taskkill / 探测两处同理去掉 ', windowsHide: true'
环境变量
DSH_INSTALL_ROOT:指向含node_modules的宿主根目录(默认按process.execPath推导<app>\resources\host,另有 cwd、插件自身位置回退)。
验证
node test.mjs # 对真实文件的幂等校验 + 还原副本的重打往返
已验证:受限 pwsh 经 runner 执行正常(退出码 0、输出经继承 stdio 原样流出,无 0xC0000142 回归)。
给维护者的备注
出厂包内已带着修好的未启用 chunk(types-C1ecepac.js),把入口 import 指过去即为上游修复。本插件让正式版用户现在就能用上该行为,并在重装/升级后自愈。
License
MIT
セキュリティとインストールエビデンス
このスコアは公開リポジトリメタデータと当サイトに登録されたインストールエビデンスのみに基づくもので、コードセキュリティ監査とは異なります。
公開プラグインカタログから取得し、公開 GitHub リポジトリにリンクしています。
リポジトリは MIT ライセンスを宣言しています。
過去180日以内にコードの更新があります。
再現可能な正確なインストールメタデータはまだ登録されていません。リポジトリの説明に従って手動で確認してください。
確認したパッケージメタデータにインストールライフサイクルスクリプトは宣言されていません。