Back to home@sryimnoob123

dsh-tool-pwsh-safe

Elbow-proof PowerShell for DeepSeek Harness: pwsh_safe tool runs scripts via base64 -EncodedCommand, immune to quoting/escaping pain, sandbox-seam based

Stars
1
Language
JavaScript
Created
Aug 20, 2026
Updated
Aug 25, 2026
GitHub repo

Introduction

🥊 dsh-tool-pwsh-safe

你是否见过 dsh 疯狂肘击 PowerShell?

单引号、双引号、反斜杠、$ 展开、反引号、换行、中文…… 每个 AI agent 都曾在 PowerShell 转义地狱里被肘击到怀疑人生。

License: MIT

这是什么

dsh-tool-pwsh-safe 是一个 DSH 工具插件:模型要跑 PowerShell 时,把整个脚本原样交给我,剩下的转义问题我来扛。

你的脚本(多行随便写)
   ↓
base64 编码(纯 ASCII,引号/$/反斜杠全部变安全字符)
   ↓
走 DSH 沙箱化 pwsh 执行器(ctx.shell,和内置 pwsh 同一条通道)
   ↓
结果带沙箱标记 / 完整输出 spill 落盘路径 / 退出码

对比:肘击 vs 不肘击

场景内置 pwsh 的日常pwsh_safe
想输出 他说:"你好"转义套转义,祈祷能跑原样写,原样跑
多行脚本每行拼接、层层转义整段直接贴
$env:PATH -replace ';',';'连环事故没事发生
中文输出乱码/编码错误UTF-8 编码,稳

特性

  • DSH 沙箱通道:和内置 pwsh 工具同一执行器,沙箱策略 / ConstrainedLanguage / 权限升级全部生效
  • 长输出自动 spill:超限不丢,完整输出落盘并报告路径
  • 超时保护:默认 120s,可自定义
  • 脚本长度守卫:脚本转 base64 后超过 24000 字符会直接报错提示拆分,避免撞上 Windows 命令行 32KB 上限
  • 结果规范化:执行器返回形状异常时也会被归一化,不会因缺字段崩渲染
  • 中文友好:UTF-8 全链路
  • 零依赖:无 @deepseek-ai 依赖,纯 Node 内置

安装

cd $DSH_HOME/profiles/<你的profile>
pnpm add dsh-tool-pwsh-safe@github:sryimnoob123/dsh-tool-pwsh-safe
# 或本地开发:pnpm add link:/绝对路径/dsh-tool-pwsh-safe

然后把它加进 profile 的 package.json bundles 列表,重启 DSH。

使用

{
  "script": "Write-Host \"这是中文 + 引号 + $env:USERNAME\"; Get-Location",
  "description": "演示转义免疫"
}

配置

参数默认说明
script(必填)完整 PowerShell 脚本,多行随便
description(必填)一句话说明(UI 显示用)
workdir会话工作目录脚本工作目录
timeoutMs120000超时自动 kill

License

MIT