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일 내 코드 업데이트가 있습니다.
재현 가능한 정확한 설치 메타데이터가 아직 등록되지 않았습니다. 저장소 설명에 따라 직접 확인하세요.
검사한 패키지 메타데이터에 설치 라이프사이클 스크립트가 선언되지 않았습니다.