前言¶
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 並新開會話即可生效。