Back to home@sunzhyang1616-ui

dsh-ssh-terminal

在 DSH 侧边栏(dsh-better-sidebar)连接远程主机的 SSH 终端:逐步查看 agent 命令与输出,内置 ssh_connect / ssh_exec 等工具,记录本机持久化。

Stars
0
Language
JavaScript
Created
Aug 29, 2026
Updated
Aug 29, 2026
GitHub repo

Introduction

dsh-ssh-terminal

🌏 English · 中文

SSH 远程终端:在 dsh-better-sidebar 侧边栏里连接远程主机,逐步查看 agent 输入的命令和输出,不影响对话主流程;同时为 Agent 提供 SSH 工具。

SSH 终端面板

功能

  • Better-sidebar「SSH 终端」tab:右侧栏 + 菜单里出现,点击即打开面板,含连接表单 + 命令输入 + 实时命令→输出转录(带时间戳、颜色跟随 DSH 皮肤)。
  • Agent 工具(独立可用):ssh_connect / ssh_exec / ssh_disconnect / ssh_status
  • 记录持久化:本机会话内跨重启保留(写盘到 ~/.dsh/ssh-terminal-history.json),面板右上角「清空记录」可手动清空。

依赖

  • DSH web(dsh web / DSH Desktop)
  • dsh-better-sidebar(>= 0.12.0)——只有「侧边栏面板」需要它;Agent 的 SSH 工具不依赖 better-sidebar,单独装本插件即可用。

可选增强:未安装 better-sidebar 时,本插件只提供 Agent 的 SSH 工具(模型可连接、执行、断开,结果在对话里看到);不显示侧边栏「SSH 终端」面板。

安装

dsh plugin add github:sunzhyang1616-ui/dsh-ssh-terminal

装完硬刷新浏览器(Cmd/Ctrl+Shift+R)即可(Client 改动无需重启;仅 Host 改动才需重启 DSH)。

本地安装(源码 / link 方式)

1. 让 profile 使用本包:编辑 ~/.dsh/profiles/<profile>/package.json 的 dependencies 加入
   "dsh-ssh-terminal": "link:<本目录绝对路径>"
2. 挂载 bundle patch(package.json 已声明 "dsh": { "bundle": { "patch": "./cordis.patch.yml" } })
3. 在 profile 目录执行 pnpm install
4. 硬刷新浏览器(Cmd/Ctrl+Shift+R)

文件说明

文件说明
lib/index.jsHost 半:启动 ssh -tt、维护转录、注册工具 + /ssh-terminal/api HTTP 路由
lib/client.jsClient 半ctx.betterSidebar.registerTab 注册「SSH 终端」tab + 实时转录 UI
src/client/index.tsxClient 源码(tsdown 构建入口)
tsdown.config.tsclient 构建配置
cordis.patch.ymlbundle 挂载补丁

限制 / 说明

  • SSH 连接为 Host 进程态,DSH 重启即断(连接不自动重连);操作记录会本机落盘、跨重启保留。
  • 密码仅本次调用内使用,不回显、不写入转录;推荐 identity(私钥文件)认证。
  • 若目标 DSH 版本对已安装插件不暴露 harness,Host 已改用 ctx.tools.register + webServer 路由,无需 harness