DSH 标准模式在 Windows 上默认使用 PowerShell 作为 shell,但开发工作常需 Linux 命令(如 grep、rsync 等)。dsh-wsl-preset 将 DSH 标准模式中的 shell 调用映射到 Windows Subsystem for Linux (WSL),让 Windows 上的开发环境拥有完整的 Linux 命令行能力。
插件定位¶
- 名称:dsh-wsl-preset
- 维护者:yukitakasama
- 类别:工作流
- 许可证:MIT
核心能力¶
- 一键安装:通过
dsh plugin一键安装「WSL 模式」agent preset。 - 环境映射:将 shell 执行器改为
wsl -e bash -c,保留标准 persona 和完整工具表面(bash、文件系统、搜索、技能、工作流、委托、present 等)。 - 自动探测:自动探测
wsl.exe是否可用,无需硬编码路径。 - 沙箱感知:WSL 无法在 Windows 受限令牌沙箱内启动,仅允许在完全访问策略下执行,受限时给出明确的升级指引。
- 幂等自修复:插件启动时将预设装进
${DSH_HOME:-~/.dsh}/.agent-presets/wsl/,已存在文件不一致时自动刷新,修复旧版本遗留问题。
安装¶
推荐方式:GitHub 直装
dsh plugin --profile web add github:yukitakasama/dsh-wsl-preset
锁定特定版本:
dsh plugin --profile web add github:yukitakasama/dsh-wsl-preset#v0.3.0
使用流程¶
- Web 界面新建会话,选择 WSL 模式。
- 启用命令执行:
- 将会话沙箱切换到完全访问,之后所有命令直接走 WSL。
- 或保持
workspace-write,让模型在第一次调用失败后按提示使用sandbox_permissions: "danger-full-access"+ justification 单次升级。
配置与限制¶
预设配置(agent-presets/wsl/agent.cordis.yml 中的 wsl-executor):
* timeoutMs:120000(单次命令默认超时)
* maxTimeoutMs:600000(超时上限)
* maxOutputBytes:64000(单流保留字节数)
* maxSpillBytes:67108864(spill 文件上限)
* graceMs:3000(SIGTERM→SIGKILL 宽限)
插件配置(cordis.patch.yml 插入行):
* autoUpdate:true(已装预设与包内文件不一致时自动刷新)
* force:false(即使文件已经一致也覆盖)
限制:
* 沙箱限制:会话沙箱为 workspace-write(或更窄)时,WSL 无法启动,必须切换完全访问或单次升级。
* 状态隔离:每次命令调用均为新 shell,不保持 cd/export 状态。
* 工具名:工具名固定为 bash。
* 系统要求:需系统已安装并启用 WSL。
生态背景¶
DSH 理念为「一切皆插件」。本插件由社区维护,与 DeepSeek / 幻方无官方从属关系。