dsh-windows-shell-policy:DeepSeek Harness 的 Windows 默认 Shell 策略插件

前言

在 DSH 的 Windows 使用场景里,shell 工具面经常是一个具体问题:agent 可能需要执行 bash 风格命令,但当前生效 shell 可能是 pwsh;如果工具面中同时暴露 bash 和 pwsh,提示词与工具选择都会变得更复杂。

dsh-windows-shell-policy 针对这个点做收敛:它探测本机可用的 git-bash/MSYS2/Cygwin,在「设置 → 插件 → 插件配置」提供「默认 Shell」折叠卡片,支持自动 / bash / pwsh 三选一;在策略为 bash 时动态注册 bash 工具,并裁剪提示词工具面,使 agent 只面对一个 shell 工具。

这是什么

  • 插件名:dsh-windows-shell-policy
  • 维护者:LAN-TINA-WS
  • 版本:0.0.5package.json
  • License:MIT
  • GitHub:https://github.com/LAN-TINA-WS/dsh-windows-shell-policy

一句话定位:它是 DeepSeek Harness(DSH)的 Windows 默认 Shell 策略插件,用于在 Windows 上探测 bash、切换 bash/pwsh、注册 bash 工具,并控制 agent 可见的 shell 工具面。

核心能力

Shell 探测

插件按以下顺序探测可用 bash:

1、显式 bashPath
2、Git 常见安装路径(Program Files / x86)
3、MSYS2 / Cygwin
4、PATH

找到即用。

配置卡片

在「设置 → 插件 → 插件配置」中,插件提供「默认 Shell」折叠卡片。卡片会显示探测状态与当前生效 shell,并支持三选一:

  • 自动
  • bash
  • pwsh

策略生效

策略行为如下:

  • auto:探测到 bash 则用 bash,否则使用 pwsh。
  • bash:强制使用 bash;若未探测到 bash,会回落 pwsh 并提示。
  • pwsh:强制使用 pwsh。

切换保存后,下一次请求生效。

bash 工具注册

effective=bash 时,插件动态注册 bash 工具,并使用 subprocess 通道执行,支持超时、输出截断、exit code 标记。

提示词工具面裁剪

插件在 system-prompt/assemble 中按策略隐藏 pwsh/bash,使 agent 工具面只保留一个 shell 工具。

持久化

preferred 持久化于 settings 文档的 shell-policy section,重启保留。

卸载即净

卸载可使用:

dsh plugin --profile web remove

或在开发环境使用:

dev_uninject_plugin <本目录>

可完成工具注销、提示词恢复、junction 清理。

安装与启用

GitHub 直装

下面命令从 GitHub 添加插件:

dsh plugin --profile web add github:LAN-TINA-WS/dsh-windows-shell-policy

安装后重启 dsh web,打开「设置 → 插件 → 插件配置」开始配置。

npm 安装

下面命令从 npm 添加插件:

dsh plugin --profile web add dsh-windows-shell-policy

然后打开「设置 → 插件 → 插件配置」开始配置。

Release ZIP 安装

先下载 dsh-windows-shell-policy-v*.zip 并解压,然后使用解压目录安装:

dsh plugin --profile web add link:<解压目录>

重启 dsh web 后,进入「设置 → 插件 → 插件配置」。

开发环境注入器安装

下面命令先构建插件产物:

DSH_CHECKOUT=<checkout> bash scripts/build.sh

生成 lib/index.jslib/client.js 后,注入当前目录:

dev_inject_plugin <本目录>

典型用法

选择默认 Shell

1、打开「设置 → 插件 → 插件配置」。
2、展开「默认 Shell」卡片。
3、选择自动、bash 或 pwsh。
4、保存;切换下一次请求生效。

配置显式 bash 路径

当需要指定 bash 可执行文件路径时,可配置 settings.yaml 的 shell-policy.bashPath。面板编辑在规划中,当前可通过配置文件设置。

shell-policy:
  bashPath: <本机 bash 可执行文件路径>

配置后,插件会按探测顺序优先读取显式 bashPath

运行依赖

插件声明的 peerDependencies 如下:

@deepseek-ai/dsh-llm >=0.0.1-rc <2
@deepseek-ai/dsh-tools >=0.0.1-rc <2
@deepseek-ai/dsh-subprocess >=0.0.1-rc <2
@deepseek-ai/dsh-settings >=0.0.1-rc <2
@deepseek-ai/dsh-sandbox >=0.0.1-rc <2
@deepseek-ai/dsh-sandbox-policy >=0.0.1-rc <2
@deepseek-ai/dsh-jobs >=0.0.1-rc <2
cordis >=4.0.0-rc <5
schemastery ^3.18.0
@deepseek-ai/dsh-client-ui-slots >=0.0.1-rc <2

适用场景与注意

适合谁:

  • 在 Windows 下使用 DSH web。
  • 希望 agent 执行 shell 命令时使用 bash,或稳定只暴露一个 shell 工具。
  • 需要在 bash/pwsh 之间按策略切换,并在重启后保留配置。
  • 需要卸载后还原工具注册与提示词状态。

注意:

  • 插件以当前 dsh 进程权限运行;安装前检查源码与许可证。
  • 切换 Shell 保存后,下一次请求生效。
  • 显式 bash 时,若未探测到 bash,会回落 pwsh 并提示。
  • shell-policy.bashPath 的面板编辑在规划中。
  • 社区目录是独立站点,与 DeepSeek / 幻方无官方从属关系,不要理解为官方应用商店。

结尾

dsh-windows-shell-policy 把 Windows 下的 shell 选择变成一个可探测、可配置、可持久化、可卸载还原的策略项:它提供 bash 探测、默认 Shell 卡片、bash 工具注册、提示词工具面裁剪,以及卸载后还原。

  • GitHub 仓库:https://github.com/LAN-TINA-WS/dsh-windows-shell-policy
  • 反馈 issue:https://github.com/LAN-TINA-WS/dsh-windows-shell-policy/issues/1
  • 社区目录页:已核实资料未提供 URL。
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜