把 PowerShell 脚本 base64 编码后执行,引号、$、反斜杠、中文全部原样传递,免去转义地狱。走与内置 pwsh 工具相同的沙箱通道。
安装
# npm 包(预构建)
dsh plugin --profile web add dsh-tool-pwsh-safe
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:sryimnoob123/dsh-tool-pwsh-safe
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本——pnpm 默认拦截,所以安装可能停在 ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED 或 ERR_PNPM_IGNORED_BUILDS;dsh 会打印出需要添加的确切键名,把它加进该 profile 的 pnpm-workspace.yaml 的 allowBuilds 下,重跑一次即可装上。放行构建本身就是一次信任判断:请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。
README
你是否见过 dsh 疯狂肘击 PowerShell?
单引号、双引号、反斜杠、$ 展开、反引号、换行、中文……
每个 AI agent 都曾在 PowerShell 转义地狱里被肘击到怀疑人生。
这是什么
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 |
会话工作目录 | 脚本工作目录 |
timeoutMs |
120000 | 超时自动 kill |
License
MIT
链接
同类插件
Tencent/WeKnora#dsh-weknora★ 35688
把 WeKnora 知识库接入 dsh 的四个只读工具:列出知识库、混合检索原文片段、按顺序还原单篇文档,以及直接取用 WeKnora 自己带引用的 RAG 或 ReAct agent 回答(含可续聊的 session id)。
superdesigndev/treg★ 6403
给 Agent 的工具目录:按「要做的事」检索约 2,600 个外部接口(SEO 与 SERP、外链、社交、人物与公司信息补全、广告库、抓取),查看参数与单次调用价格后直接调用,凭据由服务端注入。附带技能,MCP 行在未设置 TREG_TOKEN 前保持禁用。
T-Auto/dsh-ops★ 4593
为 Windows 的 DSH 提供 bash、PowerShell 7 及 Rust 高性能工具,减少 token 消耗。
sixtysevenlf/dsh-blender-plugin★ 1388
让 DSH agent 通过直连 TCP 通道驱动本地 Blender,提供 15 个工具:视口帧、自定义视角渲染、Python 执行、无头与作业卸载、事务回滚,以及 34 个 family / 228 个 op 的规划层。
TencentCloudBase/CloudBase-AI-Toolkit#dsh-plugin★ 1152
把腾讯云 CloudBase 后端接入 DeepSeek Harness——在对话里搭好并部署全栈应用,查询结果渲染为表格卡片(分页、排序、导出 CSV),部署后可预览真实域名,并提供 CloudBase MCP 工具集(`mcp__cloudbase__*`),登录走 device-code 流程。
anysearch-team/anysearch-dsh★ 665
基于 AnySearch 的实时网页与垂直搜索插件,为 DeepSeek Harness 提供搜索工具。
社区评论
评论公开保存在 GitHub Discussions。加载评论会连接 GitHub 和 Giscus;发表内容需要 GitHub 账号。