修复 Windows 中文乱码与转义,稳定跑脚本
30/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/7 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add jxb01/dsh-shell-bridge该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:需留意
是什么
dsh 原生插件 · dev
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 25 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
⚠︎ 实装验证未通过(unknown · 2026/10/7) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0⚪ 扫描:无法判定尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0已尝试扫描但取不到可分析的源码:仓库或包不存在、已删除,或为非 JS/TS 实现、未随包发布源码。无法判定,不代表安全。
- · 包内无可扫 JS
- · TS 源码(可能为非 JS 实现或未发布源码),无法判定
扫描于 2026/10/31(1 天前) · 范围 全包扫描(包内未声明入口) · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- WindowsCJK转码
- shell转义桥接
为 DeepSeek Harness 的 pwsh 工具提供 Windows CJK(cp936)转码与 shell 转义桥接
README
由 DeepSeek 最新模型翻译生成dsh-shell-bridge
给 DeepSeek Harness(DSH)的 pwsh 工具用的 Windows 中文编码 / 转义桥。
在真实的中文 Windows(控制台代码页 936)上,DSH 的 pwsh 工具会出现下面这些问题;这个桥把它们一次修掉,并把「写脚本 -> 跑脚本」变成一条不会踩转义坑的固定工作流。
实测的问题
| # | 现象 | 复现 | 根因 |
| 1 | 原生工具输出乱码 | ipconfig、python -c "print('中文')" | 子进程没有控制台,[Console]::OutputEncoding=UTF8 改不动代码页;工具按 cp936 输出,被按 UTF-8 解码 |
| 2 | 中文管道进原生工具乱码 | '中文' \| python -c "..." | pwsh 用 UTF-8 写管道,原生工具按 cp936 读 |
| 3 | param() / using 直接报错 | param([string]$x='hi'); ... | DSH 会在命令前拼编码语句,二者不再是第一句;解析期错误还早于编码设置,所以错误也是乱码 |
| 4 | 长脚本 spawn ENAMETOOLONG | 约 36 KB 的命令 | 整段脚本作为一个 argv,撞 Windows 32K 命令行上限 |
展开完整文档(README 剩余 1 节)
dsh-shell-bridge
给 DeepSeek Harness(DSH)的 pwsh 工具用的 Windows 中文编码 / 转义桥。
在真实的中文 Windows(控制台代码页 936)上,DSH 的 pwsh 工具会出现下面这些问题;这个桥把它们一次修掉,并把「写脚本 -> 跑脚本」变成一条不会踩转义坑的固定工作流。
实测的问题
| # | 现象 | 复现 | 根因 |
| 1 | 原生工具输出乱码 | ipconfig、python -c "print('中文')" | 子进程没有控制台,[Console]::OutputEncoding=UTF8 改不动代码页;工具按 cp936 输出,被按 UTF-8 解码 |
| 2 | 中文管道进原生工具乱码 | '中文' \| python -c "..." | pwsh 用 UTF-8 写管道,原生工具按 cp936 读 |
| 3 | param() / using 直接报错 | param([string]$x='hi'); ... | DSH 会在命令前拼编码语句,二者不再是第一句;解析期错误还早于编码设置,所以错误也是乱码 |
| 4 | 长脚本 spawn ENAMETOOLONG | 约 36 KB 的命令 | 整段脚本作为一个 argv,撞 Windows 32K 命令行上限 |
| 5 | 转义层级过多 | 路径 \、正则 \d、引号 | 模型 JSON -> PowerShell -> cmd 三层转义;DSH 不做 JSON 修复,出格即 tool input is invalid JSON |
| 6 | 标点语义坑 | @('a',)、[1]、"“”" | 尾逗号是 PS 语法错误;[] 是通配符(要用 -LiteralPath);中文弯引号被 PowerShell 当引号分隔符 |
| 7 | 退出码丢失 | 子进程退出 3,工具报 1 | pwsh -Command "& script" 结束时按 $? 给码 |
完整的复现命令与观察结果见 docs/diagnosis.md。
安装
git clone https://github.com/<you>/dsh-shell-bridge.git
cd dsh-shell-bridge
pwsh -NoProfile -File ./install.ps1
默认装到 $env:DSH_HOME(没有就 ~/.dsh):
- tools/dsh-shell.ps1 —— 桥本身
- tools/revert-dsh-shell.ps1 —— 卸载脚本
- tasks/main.ps1 —— 示例任务(已存在则不覆盖)
- AGENTS.md —— 插入一段带标记的 DSH-SHELL-BRIDGE 规则,之后每个会话都会自动走桥
选项:
./install.ps1 -DshHome D:/dsh-home # 指定 DSH home ./install.ps1 -SkipInstructions # 不动 AGENTS.md ./install.ps1 -Force # 覆盖已有 bridge/tasks/main.ps1
卸载:
pwsh -NoProfile -File ./revert.ps1
或 pwsh -NoProfile -File (Join-Path $env:DSH_HOME 'tools/revert-dsh-shell.ps1')
用法
两步:
1. 用 DSH 的 write 工具把脚本原样写到 $DSH_HOME/tasks/main.ps1(cmd 任务写 main.cmd)。
文件内容是字面写入的,反斜杠、引号、中文标点不需要再套一层转义。
2. 用 pwsh 工具执行,结尾必须带 ; exit $LASTEXITCODE,退出码才会原样传回:
& 'C:\Users\<you>\.dsh\tools\dsh-shell.ps1'; exit $LASTEXITCODE
其它形式(同样以 ; exit $LASTEXITCODE 结尾):
| 场景 | 命令 |
| 默认任务 tasks/main.ps1 | & '<bridge>'; exit $LASTEXITCODE |
| 指定任务 | & '<bridge>' -Name build; exit $LASTEXITCODE |
| cmd 批处理 | & '<bridge>' -Shell cmd -Name build; exit $LASTEXITCODE |
| 指定目录 / 超时 | & '<bridge>' -Name build -WorkDir 'D:/repo' -TimeoutSec 600; exit $LASTEXITCODE |
| 小命令内联 | & '<bridge>' -Command 'Get-Date'; exit $LASTEXITCODE |
写脚本时的标点规则
- 路径优先用正斜杠 D:/work/_lab,完全绕开 JSON 反斜杠转义。
- 含 [ ] & # % ! ^ , ; = + @ ~ 或空格的路径必须配 -LiteralPath。
- 数组/哈希最后一项不要尾逗号:@('a',) 会语法报错。
- 中文弯引号 “ ” ‘ ’ 会被 PowerShell 当引号分隔符:“ ” 放进单引号串,‘ ’ 放进双引号串,或用 [char]0x201C 构造。
- cmd 内建命令用 -Shell cmd,不要在 PowerShell 里套 cmd /c。
原理
桥做三件事:
1. 脚本落盘再执行:把 payload 交给子 shell 以脚本文件方式运行,消掉外层引号/转义、param()/using 与 32K 长度限制。
2. 隐藏控制台 + 代码页 65001:用 CreateNoWindow 起子 shell,让 chcp 真正生效,再设 [Console]::OutputEncoding、$OutputEncoding,并注入 PYTHONUTF8/PYTHONIOENCODING。
这样 PowerShell、cmd.exe 和所有原生子进程对「UTF-8」达成一致,输入输出都能往返。
3. 原始字节透传:子进程 stdout/stderr 用 CopyToAsync 直接泵到桥的流上,不做二次编码,保留流式输出,后台任务照常;退出码原样返回。
目录结构
dsh-shell.ps1 桥 install.ps1 安装到 $DSH_HOME revert.ps1 卸载 samples/main.ps1 示例任务 docs/instructions-block.md 写进 AGENTS.md 的规则块(含 @@BRIDGE@@ / @@TASKS@@ 占位符) docs/diagnosis.md 问题复现与根因
已验证
在 Windows 11 / PowerShell 7.6 / 代码页 936 上实测:
- 中文:你好, 世界、python中文输出、node中文、ipconfig 的「以太网适配器」
- param()、using namespace、40000 字符脚本
- cmd 模式:中文 + dir /b + 特殊字符路径
- 退出码:0 / 3 / 9 / 124(超时)
- write / read 对反斜杠、引号、中文标点逐字节一致
限制
- 面向 Windows + PowerShell 7(pwsh);PowerShell 5.1 未验证(桥会取当前进程的可执行文件,5.1 下部分语法可用性未测)。
- 依赖能被创建隐藏控制台;若宿主禁止,会退化成普通子进程,编码问题可能回来。
- 需要每个会话都带规则时,规则块写在 $DSH_HOME/AGENTS.md(DSH 的用户级指令文件)。
License
MIT预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
jxb01/dsh-shell-bridge
修复 Windows 中文乱码与转义,稳定跑脚本
相关插件 · 开发 / 工程
隐私简历生成器reactive-resume/reactive-resume
Reactive Resume 已迁至 GitHub 上的…
★ 45,125已汉化MCP
71.7
AI 架构文档生成器sopaco/deepwiki-rs
🚀 Litho 已进化为 Terrain —— 给你的 AI 智能体一张会呼吸的代码库地图。
★ 3,157已汉化DSH
70.8
长时任务执行闭环AMAP-ML/LongHorizon-Harness
面向 Computer-Use Agent 的 Loop Engineering
★ 1,764已汉化DSH
70.5
AI 编程纪律方法包GanyuanRan/Aegis
让 AI 编程 agent 变得可信:少返工、更安全、说“完成”前先给证据。
★ 1,384已汉化DSH
69.6
多代理编排运行时Enderfga/claw-orchestrator
面向编程智能体的运行时。把 Claude Code、Codex、Antigravity、Grok…
★ 586已汉化MCP
69.4
记忆进化插件csyangwen/dsh-memory-evolve
dsh-memory-evolve 使用场景指南
★ 461已汉化DSH
67.9