DeepSeek Harness Hub
← 返回列表

SSH 远程部署工作区qigelunbiya/dsh-ssh-files-sidebar

DeepSeek Harnessspec-screened在 GitHub 查看 ↗
未验证

连接服务器管理文件终端,沉淀部署流程并自动发布

尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/9/7 · 已提供中文文档

DeepSeek Harness 的远程 SSH 工作区与部署 Agent —— SSH 文件、终端、远程编辑、从零到一 Bootstrap、Runbook 与闭环部署。

综合分
29.8
GitHub 分
29.8
用户评分
★ Stars
1
周下载量
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add qigelunbiya/dsh-ssh-files-sidebar
该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
数据截至 2026/9/16(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
依赖的 DSH / Cordis 模块
@deepseek-ai/dsh-client-connection@deepseek-ai/dsh-client-locale@deepseek-ai/dsh-client-runtime@deepseek-ai/dsh-client-ui-settings@deepseek-ai/dsh-client-ui-slots
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

DSH 远程工作区与部署代理

dsh-ssh-files-sidebar

为 DeepSeek Harness 提供一套完整的 Remote SSH 工作区:文件、终端、远程编辑、从零部署、Runbook、自动化与发布闭环。

build
release
license
DSH Plugin

简体中文 · English

30 秒看懂它

如果你在 DeepSeek Harness 里经常做这些事:

- 连接 Linux / SSH 服务器;
- 浏览、编辑、上传、下载远程文件;
- 在本地 Workspace 写代码,但去服务器启动、看日志、查端口;
- 接手一个完全陌生的项目,不知道它到底该怎么部署;
- 希望把已经跑通的部署流程沉淀成 DEPLOYMENT.md;
- 流程稳定后,再逐步变成一键脚本,最后让 Agent 自己发布、自检、诊断和回滚;

这个插件就是把这些环节放进同一个 Conversation、同一个 SSH 安全边界、同一条部署成熟路径里。

它和“只有 SSH 文件侧栏”最大的区别

| 能力 | dsh-ssh-files-sidebar |
| --- | --- |
| SSH Files / SFTP / Terminal | ✅ |
| Remote Workspace | ✅ |
| 本地源码 + 会话级 Linked SSH | ✅ |
| 远程图片 Vision / 系统 OCR | ✅ |
| 从零研究陌生项目并尝试部署 | ✅ |
| DEPLOYMENT.md Runbook | ✅ |
| 按用户真实习惯决定自动化边界 | ✅ |
| 一键脚本 | ✅,但只在 Runbook 验证后生成 |
| Agent 自主发布 + Health / 日志自检 | ✅ |
| 用户验收后的诊断 / 修复 / 回滚闭环 | ✅ |

核心原则:先搞清楚真实环境和真实流程,再文档化;先验证,再自动化;自动化成熟后,再让 Agent 自主闭环。

一分钟安装

推荐:预构建 GitHub Release,一条命令

如果你使用已经安装好的 dsh CLI:

dsh plugin --profile web add https://github.com/qigelunbiya/dsh-ssh-files-sidebar/releases/latest/download/dsh-ssh-files-sidebar.tgz

如果你是在 DeepSeek Harness 源码目录里运行:

pnpm dsh plugin --profile web add https://github.com/qigelunbiya/dsh-ssh-files-sidebar/releases/latest/download/dsh-ssh-files-sidebar.tgz

然后启动或重启 Web Profile:

dsh web

源码运行则:

pnpm dsh web

Release tarball 已包含构建后的 lib/,用户不需要 clone、pnpm install、pnpm build 或允许依赖安装脚本。

DeepSeek Harness 官方也支持直接从 GitHub 安装源码包,但 pnpm 10 会要求用户显式允许 Git dependency 的 prepare 构建脚本。因此本项目把 预构建 Release tarball 作为普通用户的推荐安装方式。

GitHub 源码安装(开发者 / 调试)

dsh plugin --profile web add github:qigelunbiya/dsh-ssh-files-sidebar

本项目提供 prepare,Git 安装时可以自行构建 runtime bundle。若 pnpm 10 拒绝运行构建脚本,请按照 DSH / pnpm 输出,把 dsh-ssh-files-sidebar: true 加到对应 Profile 的 pnpm-workspace.yaml -> allowBuilds 后重试。

产品能力

1. Remote SSH Workspace

一个顶层插件内部整合:

- dsh-better-sidebar
- @linxin666/dsh-ssh
- dsh-rw
- 本项目自己的 SSH Files / Linked SSH / Deployment Layer

SSH 主机与凭据只维护一份:

~/.dsh/dsh-ssh.json

一个 Conversation 只绑定一个 SSH 目标,Agent 不会为了完成任务自由枚举或切换到其他主机。

2. SSH Files + Editor + Terminal

SSH Files 支持:

- 远程目录树;
- CodeMirror 编辑 / 保存;
- PNG / JPG / GIF / WebP / BMP / ICO / AVIF;
- PDF;
- HTML 源码 / sandbox 预览;
- TAR / TGZ / ZIP / 7Z / RAR 等归档目录查看;
- 多选;
- 上传 / 下载;
- 原地重命名;
- 新建目录 / 删除;
- 会话级目录展开记忆。

快捷键:

| 操作 | 快捷键 |
| --- | --- |
| 多选增减 | Ctrl/Cmd + 点击 |
| 范围选择 | Shift + 点击 |
| 选择当前可见项 | Ctrl/Cmd + A |
| 原地重命名 | F2 |
| 删除 | Delete |
| 保存 | Ctrl/Cmd + S |
| 搜索 / 替换 | Ctrl/Cmd + F |

3. 本地 Workspace + Linked SSH

推荐的日常开发 / 发布模式:

LOCAL Workspace(真实源码)
+
Conversation Linked SSH(唯一目标服务器)
+
项目根目录 DEPLOYMENT.md

本地 Git、构建和产物检查留在本机;上传、服务管理、日志和 Health Check 固定在当前会话绑定服务器。

4. Remote Vision / OCR

Agent 可以直接读取当前 SSH 上的图片做视觉分析;文本模型或不希望走视觉模型时,可以使用支持平台上的系统 OCR 路径,不需要为了识别一张服务器截图先把它手工复制进本地 Workspace。

从“完全不会部署”到“Agent 自己闭环”

项目现在支持两条入口。

flowchart TD
A1["已有部署经验历史命令 / 旧文档 / 已知流程"] --> B1["核对 LOCAL + REMOTE"]
B1 --> R["DEPLOYMENT.md可审查 Runbook"]

A2["完全陌生的项目只有源码 + 目标服务器"] --> L["研究 LOCAL结构 / Runtime / 产物 / 依赖"]
L --> S["研究 REMOTEOS / Runtime / 目录 / 端口 / 权限"]
S --> Q["逐步确认用户真实部署需求"]
Q --> P["Bootstrap Plan"]
P --> T["尝试部署 / 启动"]
T --> X{"技术验证通过?"}
X -->|否| D["stderr / 日志 / 进程 / 端口诊断"]
D --> C{"能否安全修复?"}
C -->|是| F["最小修复并重试"]
F --> T
C -->|否| STOP["明确承认当前目标无法安全部署"]
X -->|是| BASE["总结实际成功路径"]
BASE --> R

R --> V["用户实际使用并确认稳定"]
V --> H["访谈真实操作习惯确定自动化边界"]
H --> O["生成并验证一键脚本"]
O --> E["Agent 自主发布"]
E --> K["进程 / 端口 / Health / 日志自检"]
K --> G["分析 Change Set给出重点测试"]
G --> U{"用户业务验收"}
U -->|正常| DONE["完成"]
U -->|异常| Z["诊断"]
Z --> RISK{"继续修复还是恢复?"}
RISK -->|修复| FIX["最小修复"]
RISK -->|风险较高| RB["回滚"]
FIX --> RE["再次验证"]
RB --> RE
RE --> U

Zero-to-One Bootstrap:先跑通,再写 Runbook

对于没有可靠历史部署方式的项目,Agent 不会先“猜”一份完整 DEPLOYMENT.md。

它会先:

1. 只读检查本地项目,识别技术栈、运行时、入口、产物、配置、外部依赖、端口、持久化等;
2. 判断真正需要上传的 runtime payload,而不是默认把整个仓库复制到服务器;
3. 只读检查当前绑定服务器的 OS、架构、Runtime、可写目录、端口、服务管理方式、权限和磁盘;
4. 能自己查到的事实自己查,只把真正的偏好 / 业务决策交给用户确认;
5. 通过临时 Bootstrap Plan 逐步执行、观察、修正;
6. 启动失败时根据 stderr、日志、进程和端口证据做最小修复,而不是随机试命令;
7. 如果目标服务器确实不满足条件,明确说明 blocker 和可选方案,不为了“必须跑起来”扩大修改范围;
8. 第一次真正稳定后,把实际成功路径总结成 DEPLOYMENT.md。

详细行为模型见 Project Deployment Runbook。

Runbook → 自动化,而不是一开始就黑盒

DEPLOYMENT.md 是完整、可读的项目部署知识,但文档里有一条命令,不代表用户希望脚本自动执行它。

在脚本生成前,Agent 会和用户确认真实使用习惯,并把每个阶段标记为:

AUTOMATE             → 纳入脚本
KEEP MANUAL          → 保留人工操作
EXTERNAL / HAND-OFF  → 由其他工具 / 流程完成
NOT IN NORMAL RUN    → Runbook 保留,但不进入日常一键路径

所以最终脚本可以只自动化 30% 的 Runbook,只要这 30% 才是用户真正希望交给机器做的部分。

发布后的闭环

当 Runbook、自动化边界和脚本都已经被用户实际验证后,Agent 的角色会从“给命令”升级为“执行这次发布”:

确认本次发布内容
↓
Agent 执行已验证自动化
↓
独立检查进程 / 端口 / Health / 日志
↓
基于 Git / Workspace 证据总结主要修改
↓
告诉用户重点测试哪些业务功能
↓
用户验收
↙         ↘
正常         异常
↓            ↓
完成      诊断 / 修复 / 回滚
↓
再验证

脚本退出码为 0 不等于部署成功;回滚命令返回成功也不等于已经恢复。两者都需要独立验证。

架构

一个顶层安装:dsh-ssh-files-sidebar
│
├─ dsh-better-sidebar
│  └─ 右侧工作台 / Files / Editor / Terminal / Browser
│
├─ @linxin666/dsh-ssh
│  └─ SSH Host / Web Terminal / SFTP / Tunnel / Engine
│
├─ dsh-rw
│  └─ Local / Remote Workspace + Read/Write/Edit/Glob/Grep/Bash shim
│
├─ SSH Files + Linked SSH
│  ├─ remote tree / editor / preview / transfer
│  ├─ session-bound SSH tools
│  ├─ remote vision
│  └─ OCR fallback
│
└─ Deployment Layer
├─ zero-to-one Bootstrap discovery
├─ Bootstrap Plan
├─ DEPLOYMENT.md Runbook
├─ automation coverage interview
├─ one-click automation
└─ autonomous deploy → verify → UAT → diagnose / rollback

安全边界

- 一个 Conversation 只操作一个 SSH 目标;
- Remote Workspace 优先决定目标,否则使用会话级 Linked SSH;
- DEPLOYMENT.md 的 target-ssh 必须匹配当前 session lock;
- 高风险动作仍走 Harness 原生审批;
- 数据库恢复 / 迁移、递归删除、系统包、Firewall、磁盘、主机重启等不会因为存在 Runbook 就自动获得授权;
- 陌生项目 Bootstrap 期间,不会为了“让它跑起来”默认修改全局 Runtime、Firewall、反向代理、数据库或其他已有服务;
- 除非用户已经明确批准自动回滚条件,否则生产异常不会静默自动回滚。

开发者安装

git clone https://github.com/qigelunbiya/dsh-ssh-files-sidebar.git
cd dsh-ssh-files-sidebar
pnpm install
pnpm build

在 Harness 源码目录:

pnpm dsh plugin --profile web add link:E:/你的路径/dsh-ssh-files-sidebar
pnpm dsh web

当前版本只需要一个顶层 dsh-ssh-files-sidebar loader row;不要再单独挂载 dsh-better-sidebar、@linxin666/dsh-ssh 或 dsh-rw。

更新

Release 安装用户建议安装最新预构建包:

dsh plugin --profile web remove dsh-ssh-files-sidebar
dsh plugin --profile web add https://github.com/qigelunbiya/dsh-ssh-files-sidebar/releases/latest/download/dsh-ssh-files-sidebar.tgz

源码开发用户:

git pull
pnpm install
pnpm build

文档

- Deployment Runbook:从零部署 → Runbook → 自动化 → 闭环
- Deployment Agent 设计草案
- Distribution / 发布与曝光清单

上游依赖与致谢

- dsh-better-sidebar — MIT
- @linxin666/dsh-ssh — Apache-2.0
- dsh-rw — MIT

完整归属信息见 NOTICE。

License

MIT

上游仓库有新提交时邮件通知你(每天最多一封,无更新不打扰),随时一键退订。

同作者(qigelunbiya)的其他插件

💬 加入 DPharness 群聊

插件用法、部署报错、新插件第一时间同步——群里问,比一个人翻文档快。

点击加入 QQ 群
DPharness 群聊二维码,手机 QQ 扫码进群
扫码进群