DSH Standard Mode on Windows uses PowerShell as the shell by default, but development work often requires Linux commands (such as grep, rsync, etc.). dsh-wsl-preset maps shell invocations in DSH Standard Mode to Windows Subsystem for Linux (WSL), giving Windows development environments full Linux command-line capabilities.
Plugin Positioning¶
- Name: dsh-wsl-preset
- Maintainer: yukitakasama
- Category: Workflow
- License: MIT
Core Capabilities¶
- One-click installation: Install the “WSL mode” agent preset with one click through
dsh plugin. - Environment mapping: Change the shell executor to
wsl -e bash -c, while preserving the standard persona and full tool surface (bash, file system, search, skills, workflows, delegation, present, etc.). - Automatic discovery: Automatically discover whether
wsl.exeis available, without hard-coded paths. - Sandbox awareness: WSL cannot be launched inside a Windows restricted-token sandbox. Execution is allowed only under the full-access policy; when restricted, clear escalation guidance is provided.
- Idempotent self-repair: On plugin startup, the preset is installed to
${DSH_HOME:-~/.dsh}/.agent-presets/wsl/. If existing files are inconsistent, they are automatically refreshed to resolve issues left behind by older versions.
Installation¶
Recommended: direct GitHub installation
dsh plugin --profile web add github:yukitakasama/dsh-wsl-preset
Pin a specific version:
dsh plugin --profile web add github:yukitakasama/dsh-wsl-preset#v0.3.0
Usage Flow¶
- Create a new session in the web UI and select WSL mode.
- Enable command execution:
- Switch the session sandbox to Full Access, after which all commands are routed directly through WSL.
- Or keep
workspace-write, and let the model follow the prompt and usesandbox_permissions: "danger-full-access"+ justification for a one-time escalation after the first call fails.
Configuration and Limitations¶
Preset configuration (wsl-executor in agent-presets/wsl/agent.cordis.yml):
* timeoutMs: 120000 (default timeout for a single command)
* maxTimeoutMs: 600000 (maximum timeout)
* maxOutputBytes: 64000 (bytes retained per stream)
* maxSpillBytes: 67108864 (spillover file limit)
* graceMs: 3000 (SIGTERM→SIGKILL grace period)
Plugin configuration (inserted lines in cordis.patch.yml):
* autoUpdate: true (automatically refresh when the installed preset files differ from the packaged files)
* force: false (overwrite even if the files are already in sync)
Limitations:
* Sandbox limitation: If the session sandbox is workspace-write (or narrower), WSL cannot be launched. You must switch to Full Access or perform a one-time escalation.
* State isolation: Each command invocation uses a new shell, so cd / export state is not preserved.
* Tool name: The tool name is fixed to bash.
* System requirements: WSL must already be installed and enabled on the system.
Ecosystem Context¶
The DSH philosophy is “everything is a plugin”. This plugin is maintained by the community and has no official affiliation with DeepSeek / High-Flyer.