DeepSeek Harness plugin

powershell-fix

DeepSeek Harness (DSH) host-layer plugin: detects and auto-fixes Windows PowerShell command syntax mistakes — bash constructs, broken line continuations, pasted prompts, CRLF pollution — then

Jump to install

Source facts

Repository
GuTianshuo/powershell-fix
Latest update
Aug 19, 2026
Category
Tools & Capabilities
GitHub stars
1
Format
plugin
Catalog evidence
Upstream dsh.bundle evidence
Evidence path
package.json#dsh.bundle
Checked against
0.1.0-rc.8
Upstream check date
2026-08-20

This evidence comes from the upstream catalog. This site has not installed, run, or security-reviewed the plugin.

Install

Start with a prompt that asks an agent to review the GitHub repository and source. Switch to the command if you want to install it yourself.

Copy this prompt into DSH, Codex, or another agent and ask it to review the GitHub repository and source first.

Do not install or run any commands yet. Read this plugin's GitHub repository, README, and relevant source code. Then answer the questions below clearly and directly so I can decide whether it fits my needs:

1. What is this plugin, and what problem does it solve?
2. Who is it for, and what are its typical use cases?
3. How is it used after installation? Include one minimal example.
4. What known limitations or privacy, security, compatibility, or maintenance risks does it have?
5. Give a clear recommendation: recommend, conditionally recommend, or do not recommend, with reasons.

Distinguish statements documented by the repository, inferences from source code, and unknowns. If evidence is insufficient, say so explicitly. Do not guess or simply repeat the README.

GitHub: https://github.com/GuTianshuo/powershell-fix
Plugin: powershell-fix
Author: GuTianshuo

Check the source files

Read the README and other files from this plugin directory before installing.

File explorer3 files
README.mdSource · read only

powershell-fix

A host-layer plugin for DeepSeek Harness (DSH) that detects and auto-fixes Windows PowerShell command syntax mistakes before they burn a tool-call round-trip — then executes the corrected command through the host shell seam, under the normal sandbox/approval policy.

AI agents (and humans) frequently paste bash-flavored commands into a Windows terminal. This plugin gives the agent one tool — powershell_fix — that checks, repairs, and runs such commands safely.

What it fixes

Line hygiene (the most frequent real-world breakage)

problemfix
CRLF / stray \r from copy-pastenormalized to LF
pasted shell prompts (PS C:\> , C:\> , $ on every line)stripped
trailing whitespace after a continuation char (invisible breakage)removed
bash \ line continuationPowerShell backtick
missing continuation before a -Parameter linebacktick inserted
dangling backtick before an empty lineremoved
unbalanced quoteswarned (never blindly rewritten)

bash → PowerShell semantics

| bash | PowerShell | |---|---| | export NAME=value | $env:NAME='value' (same-command $NAME refs rewritten to $env:NAME) | | unset NAME | if (Test-Path Env:NAME) { Remove-Item Env:NAME } (guarded; inline-in-chain supported) | | > /dev/null, 2> /dev/null, &> /dev/null | > $null, 2> $null, *> $null | | a && b / a || b | kept on PowerShell 7+; split into if ($?) { … } on Windows PowerShell 5.1 (engine auto-detected) | | ls -la path | Get-ChildItem path -Force | | rm -rf x | Remove-Item x -Recurse -Force | | mkdir -p a/b/c | New-Item -ItemType Directory -Force … | | touch f | timestamp update or New-Item -ItemType File | | grep [-r] [-v] pat f… | Select-String (recursion via Get-ChildItem -Recurse) | | which x / command -v x | (Get-Command x -ErrorAction SilentlyContinue).Source | | head -n N f / tail -n N f / tail -f f | Get-Content -TotalCount N / -Tail N / -Wait | | sed, awk, chmod, bare $PATH-style env refs | warned with PowerShell equivalents (never blindly rewritten) |

Correct PowerShell passes through unchanged (no-op guarantee, covered by regression tests). The fixer is idempotent: fix(fix(x)) === fix(x).

Safety

  • Execution goes through the host ctx.shell seam — the same sandbox, approval, and timeout policy as the built-in pwsh tool. This plugin adds no privilege.
  • A built-in execution gate refuses to auto-execute semantically destructive commands even after fixing them: root-target recursive deletes (rm -rf /, Remove-Item C:\ -Recurse), Format-Volume, Clear-Disk, Set-ExecutionPolicy, del /s|/q, and environment/system persistence writes (setx, [Environment]::Set*, New-ItemProperty, Set-ItemProperty, reg add).
  • execute: false (or autoExecute: false config) gives a dry-run: fix only, no execution.

Install (host layer — available to every session)

The package declares dsh.bundle.patch, so installing it into a profile adds it to the profile's layer stack automatically — no agent-preset line needed:

dsh plugin --profile web add file:/path/to/powershell-fix

Reconciling notices the dsh.bundle declaration and appends powershell-fix to dsh.profile.bundles; the bundled cordis.patch.yml inserts the plugin row at the host layer. Restart the harness, and every session on that profile gets:

  • tool powershell_fix
  • a system-prompt section teaching native PowerShell syntax and when to call the tool

> Note: pnpm file: dependencies copy lib/*.js — after editing the source, delete node_modules/powershell-fix in the profile and re-run the add command ("Already up to date" is misleading).

Tool contract

// powershell_fix({ command, shell?, execute?, description? })
{
  "ok": true,
  "platform": "win32",
  "shell": "powershell51",          // auto-detected engine: pwsh | powershell51
  "original": "export A=1 && echo $A",
  "fixed": "$env:A='1'; if ($?) { echo $env:A }",
  "changed": true,
  "fixes": [{ "rule": "ENV_EXPORT", "notes": ["…"] }],
  "warnings": [{ "rule": "BARE_VAR", "note": "…" }],
  "execution": { "mode": "auto", "exitCode": 0, "stdout": "…", "stderr": "…" }
  // execution.mode: auto | dry-run | skipped-dangerous | aborted
}

Config (cordis row / dsh.bundle defaults): autoExecute (default true), timeoutMs (default 60000).

Development

Zero runtime dependencies (engine is pure JS); peer deps @deepseek-ai/dsh-tools and @deepseek-ai/schemastery resolve from the host.

node --test                          # unit tests (engine, 57 assertions)
node acceptance/mount_check.mjs <profile_web_dir>   # mount + live-path check
node acceptance/real_pwsh_e2e.mjs    # fixed commands executed by the real engine

中文说明

DSH host 层插件:在 Windows 终端上自动检测并修复 PowerShell 命令语法错误(bash 语法、续行符错误、粘贴带入的提示符与 CRLF),修复后经宿主 shell 缝隙执行——沙箱/审批策略与内置 pwsh 工具完全一致,危险命令只修复不执行。声明 dsh.bundle.patch,装入 profile 即对所有会话生效,无需改任何 preset。

License

MIT