dsh-shell:为 DSH 智能体与持久终端选择 Shell

前言

DeepSeek Harness(DSH)里,智能体的一次性命令和 minimal 持久终端默认走官方组装的执行器。若你习惯 Zsh 的插件链、fish 的提示符,或在 Windows 上依赖 Git Bash、MSYS2、WSL,希望命令与交互终端落在同一套 Shell 上,就需要在客户端侧显式指定环境,而不是每次手动改调用方式。

下面介绍社区插件 dsh-shell(维护者 Luca4Don3,分类:客户端)。它在 DSH 插件体系里负责为智能体命令与持久终端选择 Shell,并支持 v0.3.0 新增的 Default Native Passthrough(与 DSH 0.2.0-rc.2 对照验证)。配置在 Cordis 组合阶段生效,保存后需重启 DSH 并新建会话,不能当作运行中热切换。

这是什么

dsh-shell 是 DSH 插件:为智能体一次性命令与持久终端选择 Shell,覆盖 Bash、Zsh、fish、PowerShell、Git Bash、MSYS2、Cygwin、WSL 等(以本机检测到的安装为准)。

DSH 社区插件目录(如 SkillHub)为独立站点,与 DeepSeek / 幻方无官方从属关系;安装前请自行查看源码与许可证。插件以当前 DSH 进程权限运行,选型与沙箱策略需结合下文限制一并考虑。

三种运行模式

README 用表格说明三种选择及其行为,写作配置时以资料为准:

选择 行为
auto 保留 dsh-shell 既有执行器、启动与导出环境继承逻辑;不是原生直通。
default 直接组装 DSH 官方沙箱化 Bash(POSIX)或 PowerShell(Windows)执行器,保留官方预设工具、终端后端与持久化工具。
检测到的 Shell / 旧版 Shell 名称 手动选择;既有 Shell 适配器与启动行为仍可用。

default 不会实例化 SelectedExecutor、不包装 Shell 命令、不收集 login-shell 环境、不注入 dsh-shell 启动代码,也不改写工具注册或 Job 种类;Bash 任务仍保持官方 kind: 'bash' 及 ID、生命周期、取消、超时与输出管理。父环境清理、允许的 env/dshEnv 注入、沙箱与审批策略与官方 DSH 一致。

配置在 Cordis 组合 时选定,而非命令执行瞬间切换。官方执行器行仍为 disabled 声明;assembly 插件只加载一个官方或所选执行器。default 读取原始官方行的配置(含用户覆盖),而非所选执行器的 timeout;随包 POSIX 超时 60s,PowerShell schema 默认 120s。

可选环境

仅列出本机检测到的安装,探测路径包括常见位置、PATH、/etc/shells、Git 注册表,以及 MSYS2_ROOT / CYGWIN_ROOT。POSIX ID 由安装路径派生,避免其他安装变更后失效;旧名称如 bash 仍会选择该家族的第一个安装。

平台 可选
macOS / Linux Bash、Zsh、sh、dash、ksh、mksh、ash、fish、csh、tcsh
Windows PowerShell 7、Windows PowerShell、Git Bash、MSYS2、Cygwin、WSL

安装与启用

桌面端

  1. 侧栏打开 Plugins。
  2. 点击 Add plugin,粘贴下列 spec 之一。
  3. 选择 Enable now,然后重启 DSH。
github:Luca4Don3/dsh-shell
/absolute/path/to/dsh-shell

github: spec 经 HTTPS 从 codeload.github.com 下载;npm 镜像不代理该地址,主机需能访问 GitHub。

CLI 管理的 Web profile

add 会同时安装并选中 bundle;仍需重启 DSH 以完成组合:

dsh plugin --profile web add github:Luca4Don3/dsh-shell
# 或本地路径
dsh plugin --profile web add /absolute/path/to/dsh-shell

典型用法

  1. 打开 Plugins → dsh-shell,选择 Shell(若选 WSL,按提示选发行版)。
  2. 保存后重启整个 DSH 运行时,并新建会话。
  3. 新装 Shell 环境后,再重启一次以刷新列表。

不同 Shell 的启动文件加载顺序(节选):

选择 启动
Zsh .zshenv、.zprofile、.zshrc、.zlogin,尊重 ZDOTDIR
POSIX Bash /etc/profile,再按顺序尝试 .bash_profile、.bash_login、.profile;仅当以上都不存在时才读 .bashrc
其他 POSIX 先加载用户原 Shell,并携带已导出变量
Windows Bash 能力检查通过后,与 POSIX Bash 相同的 profile 规则;是否 source .bashrc 由 profile 控制

default 使用官方平台工具名。手动模式下工具名跟随实际运行的 Shell(如 zsh、fish;Windows Bash 环境仍报 bash),并附带对应语法说明。自定义 preset 可指向 dsh-shell/tool-posix 或 dsh-shell/tool-windows。

Profile 补丁中的 shellPath 可用同族可执行文件覆盖检测结果;不能与 auto、default 或 wsl 同时使用。模式仅在启动时生效:保存后必须重启并新开会话;在同一运行时改选并重新启用插件会报需重启错误。

预设与自定义

随包四个预设(preset-standard、preset-ptc、preset-cordis、preset-minimal)不再整段重写;运行时配置钩子仅在 Auto/Manual 下适配上述 carrier,default 不改它们的配置。用户插件行、嵌套组、表达式与覆盖会保留;独立自定义 preset 不会自动改写,可选用 dsh-shell/preset 或既有适配器 opt-in,全局执行器仍跟随所选模式。

适用场景与限制

适合谁

  • 希望智能体命令与 minimal 持久终端统一落在指定 Shell 的 DSH 用户。
  • macOS / Linux 上需要 Zsh、fish 等;Windows 上需要 PowerShell 系列或类 Unix 环境(Git Bash、MSYS2 等)。
  • 需要 default 模式贴近官方沙箱 Bash/PowerShell,又希望通过插件在 UI 中集中选型。

务必知晓的限制

  • WSL 需要 danger-full-access,在受限模式下会失败;其他 Windows Shell 仍走 DSH 沙箱。
  • v0.3.0 声明的对等版本为 DSH 0.2.0-rc.2;其他 DSH 版本需自行验证,不能假设兼容。
  • 配置保存不会 live-switch Shell;启用/禁用/升级/降级 bundle 后都要重启。assembly 失败时 rc.2 可保持 GUI 运行,但应在跑命令前解决错误。
  • 勿移动官方执行器行与 dsh-shell/assembly 的 loader 作用域;自定义 executor scope(isolate/intercept/inject)或把 native 行挪到其他组会显式失败。
  • 独立自定义 preset 不会自动适配;全局手动选了非 Bash 时,官方工具描述可能仍写 Bash,需用 opt-in 适配器。
  • README 说明:macOS 15+ (arm64) 与 DSH 0.2.0-rc.2 有完整验证;Windows / WSL 在模拟平台上断言,无原生 Windows 主机验收;Linux CI 未纳入随包 workflow。

升级、禁用与回滚:README 建议备份 profile 并保留上一版安装 spec/commit(正文截断处亦指向该流程,具体操作以仓库 Upgrade, disable and rollback 章节为准)。

结尾

dsh-shell 把「智能体命令 + 持久终端用哪套 Shell」收成客户端插件配置:Auto 保留既有适配行为,default 对齐官方沙箱执行器,手动项覆盖本机多 Shell 与 Windows 侧常见环境。安装 spec 以 README 为准,改选后重启 DSH 并新开会话即可生效。

羽毛球分组比赛记分
小程序二维码

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

小夜