前言¶
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 等(以本机检测到的安装为准)。
- 目录页:https://www.skillhub.cn/plugins/Luca4Don3/dsh-shell
- 源码:https://github.com/Luca4Don3/dsh-shell
- 当前包版本:0.3.0(
package.json) - 对等依赖:
@deepseek-ai/dsh0.2.0-rc.2 - 许可证:MIT(仓库含
LICENSE)
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 |
安装与启用¶
桌面端¶
- 侧栏打开 Plugins。
- 点击 Add plugin,粘贴下列 spec 之一。
- 选择 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
典型用法¶
- 打开 Plugins → dsh-shell,选择 Shell(若选 WSL,按提示选发行版)。
- 保存后重启整个 DSH 运行时,并新建会话。
- 新装 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 并新开会话即可生效。