DeepSeek Harness Plugin

WODE25500/dsh-wsl

Stars ★ 0 Category Development & Runtime Added 2026-09-01

WSL (Windows Subsystem for Linux) bridge for DeepSeek Harness: run Linux commands, manage distros, convert paths, and copy across the Windows/Linux boundary.

Install

# from GitHub (first run asks for allowBuilds approval — follow the hint, retry)

dsh plugin --profile web add github:WODE25500/dsh-wsl

Any plugin you install runs third-party code with your own permissions — it can read your files, use your credentials, and reach the network, and tool approvals don’t sandbox it. GitHub-sourced plugins also run build scripts at install time — pnpm blocks those until you allow them, so an install can stop with ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED or ERR_PNPM_IGNORED_BUILDS; dsh prints the exact key to add under allowBuilds in your profile’s pnpm-workspace.yaml, and the install works on the next run. Allowing a build is a trust decision: only install sources you trust, and pin a commit (github:owner/repo#sha).

README

WSL (Windows Subsystem for Linux) bridge for DeepSeek Harness (dsh) — run Linux commands inside WSL, manage distributions, convert Windows↔WSL paths, and copy files across the boundary, all through native tools.

Independent community project, not official. Based on Microsoft's WSL (MIT).

Features

  • 5 native dsh tools: wsl_run / wsl_distro_list / wsl_status / wsl_path_convert / wsl_copy
  • Auto-normalizes WSL's UTF-16LE pipe output to UTF-8 (WSL writes UTF-16 to pipes — the single most common footgun this plugin solves)
  • Distro selection (distro param) and a configurable default
  • wslpath wrapper for reliable path conversion (no hand-rolled /mnt/c mapping)
  • Schemastery config + bundle patch layer
  • Honest error handling (virtualization-off etc. reported as-is)

Prerequisites

  • DeepSeek Harness (dsh)
  • Windows 10 2004+ / Windows 11 with WSL installed (wsl --version)
  • WSL2 requires the "Virtual Machine Platform" feature (wsl --install --no-distribution to enable)

Install

As a bundle in a profile

- insert:
    - id: wsl
      name: './src/index.js'
      config:
        wslPath: wsl
        defaultDistro: Ubuntu
        timeoutMs: 120000

Local patch overlay

pnpm dsh web --patch ./dsh-wsl/cordis.patch.yml

Then ask the agent: "Use wsl_status to check WSL state and wsl_run to run python3 --version."

Tools

Tool Behavior
wsl_run run a Linux command (wsl -e sh -lc "<cmd>")
wsl_distro_list list distros (state/version)
wsl_status WSL status and warnings
wsl_path_convert Windows ↔ WSL path conversion (wslpath -u/-w/-r)
wsl_copy cross-boundary copy (WSL-side cp + wslpath)

Config

Key Default Purpose
wslPath wsl path to wsl.exe
defaultDistro — default distribution (recommended with multiple distros)
timeoutMs 120000 per-call timeout

Known limitations

  • With virtualization off, WSL2 cannot start; commands return HCS_E_SERVICE_NOT_AVAILABLE — an environment issue, not a plugin bug
  • wsl_run is sh -lc semantics: interactive input and TUI programs don't work
  • WSL output encoding is mixed (UTF-8 Chinese errors + UTF-16 body); the plugin decodes both

Layout

dsh-wsl/
  src/index.js            # plugin entry: 5 tools + encoding handling + config
  skills/wsl/SKILL.md     # agent skill
  docs/                   # docs
  cordis.patch.yml        # bundle patch layer

License

MIT.

Content from the project README on GitHub ↗

Links

More in this category

View the whole category →

Community comments

Comments are public GitHub Discussions. Loading them connects to GitHub and Giscus; a GitHub account is required to post.