dsh-web
zhu1090093659/dsh-webDeepSeek Harness(DSH)Web 插件聚合生态包 · 一切皆插件,创意工坊分发(dsh-market.com)
DeepSeek Harness 的 SSH/SFTP 工作区插件。安装到现有 Harness,通过侧栏的 SSH 打开;顶部 DSH SSH 返回 Harness,连接保持到关闭会话、刷新页面或退出 Harness。
在 Harness 中连接服务器、管理文件,并随时让 AI 协助排查命令问题。
DSH SSH 是可安装的社区插件,无需另装独立 SSH 客户端。适合日常服务器维护、日志查看和配置修改。AI 使用宿主已配置的模型服务,模型调用费用由对应服务商计算。
| 功能 | 说明 |
|---|---|
| 主机管理 | 添加、编辑、删除主机;核对服务器指纹;可选择记住密码 |
| SSH 终端 | 多会话标签、交互式终端、快捷命令 |
| SFTP 文件 | 目录浏览、彩色文件类型、拖放/选择多文件上传、安全替换、下载、UTF-8 文本编辑 |
| 工作区布局 | 文件与终端上下排列,拖动分隔线调整比例 |
| 传输管理 | 手动上传及 AI 直传均显示字节进度、百分比和速度;支持取消与清理记录 |
| AI 助手 | 选中终端内容即可引用解决、分析常见报错、流式回答、停止生成 |
| 命令操作 | AI 单行 Shell 代码块可填入终端,或确认后执行 |
当前稳定版本为 0.1.0,正在提交 DSH Market 收录。macOS 已完成实际 SSH 连接验证;Windows 已通过构建与自动测试,尚未完成 SSH 实机验收。
文件区、终端区和 AI/传输区可以左右拖动;打开文件后,文件预览与终端也可以上下拖动。超过 64 KB 的 UTF-8 文本会以只读方式显示,超过 512 KB 时显示文件末尾约 512 KB,并保留完整文件下载入口。
更多界面和逐步操作见 中文使用教程。
在宿主输入框输入 @服务器,从 Harness 原生候选菜单选择目标,然后直接描述任务,例如“检查 Java 环境并部署这个 jar”或“分析 Nginx 启动失败并修复”。主机以行内引用显示,提交时才序列化为模型可见的 SSH 上下文。宿主 Agent 调用 dsh_ssh_hosts、dsh_ssh_exec、dsh_ssh_read、dsh_ssh_edit、dsh_ssh_upload,过程和结果显示为 Harness 原生工具卡片。输入 /ssh 可打开完整 SSH 工作区。若当前 Agent 预设限制了工具,需选择允许这些工具的预设。
命令、日志/文件内容和配置修改以对话卡片展示,命令输出支持运行时查看;执行结果返回给 Agent 继续分析。卡片的 打开 SSH / 在 SSH 中打开文件 会定位到同一主机或文件。卡片在会话历史中保留;运行时输出缓存最多保留 100 条,重启清空。
首次先在工作区核对指纹并连接。已保存密码的主机可由对话按需连接,私钥主机需保留手动连接。远程命令、读取文件及修改服从当前 Harness 会话的访问模式;宿主要求确认时,插件会补充主机信息供核对。每条命令使用独立 Shell,须指定远程目录,不继承手动终端的环境。默认命令超时 60 秒,输出上限 128 KB,超限停止且不自动重试;停止不能保证远程脱离终端的子进程已结束。
配置修改需要先读取文件,提交修改前后内容和版本,经确认后创建同目录备份、检查冲突并原子替换。修改成功不代表服务恢复,需继续运行配置检查及健康检查。备份路径会返回,当前不提供一键回滚。对话中的 JAR、压缩包等工作区文件由 dsh_ssh_upload 通过 SFTP 直传服务器,不经过公网临时文件站;工具卡片显示实时字节数、百分比和速度,并返回本地 SHA256。默认拒绝同名文件;用户明确要求替换时,先上传同目录临时文件,完整成功后再原子替换,随后仍应校验并完成健康检查。
手动操作报错后,点击 交给宿主 AI,回到对话点击 加入 SSH 报错上下文,检查内容后发送。不会覆盖已有草稿或自动发送。右侧独立 AI 面板仍可使用,其历史尚未合并到宿主会话。
DSH_HOME/ssh-workbench/hosts.json,供对话工具与工作区共用;旧版浏览器主机配置在首次打开服务器菜单或工作区时迁移。布局偏好仍在浏览器本地。DSH_HOME/ssh-credentials。密钥文件与密文位于本机,并以当前用户文件权限保护;这不是系统钥匙串,也不抵御已取得该用户文件访问权限的程序。需要 Node.js 22.19+ 或 24+、pnpm、DeepSeek Harness Web。最低兼容/测试基线为官方 @deepseek-ai/dsh@0.1.2-rc.1;旧版 0.1.0-rc.7 不支持所需接口。先确认或升级 Harness,再安装插件。
如果全局安装了旧版,先运行 npm install -g @deepseek-ai/dsh@0.1.2-rc.1。可以从 GitHub Release 下载固定名称的预构建包:
curl -fL -o dsh-plugin-ssh.tgz https://github.com/techflag/dsh-plugin-ssh/releases/latest/download/dsh-plugin-ssh.tgz
在下载目录安装并启动:
npx @deepseek-ai/dsh@0.1.2-rc.1 plugin --profile web add ./dsh-plugin-ssh.tgz --ignore-scripts
npx @deepseek-ai/dsh@0.1.2-rc.1 web
已有 dsh 命令时可直接使用 dsh plugin --profile web add ... --ignore-scripts。安装进自己的 profile 时,将 web 换成该名称,该配置必须包含 Harness Web UI。安装后刷新浏览器。
--ignore-scripts 跳过 ssh2 的可选原生加速构建,使用其 JavaScript 实现;不需要 Electron、独立客户端或编译器。首次运行 Harness 本身所需的环境按官方快速开始准备。
卸载:
dsh plugin --profile web remove dsh-plugin-ssh
⌘/Ctrl + J;发送前可检查、编辑上下文。普通问题默认不附带终端输出,AI 不自动执行命令。回答中的命令使用独立颜色与代码块展示;完整的单行 Shell 代码块支持“填入终端”及确认目标主机后“执行”。执行前应确保终端停在空命令提示符。多行代码及含占位符的示例仅供阅读。DSH_HOME/.credentials.yaml,重启或安装 SSH 插件不会清除;设置页显示“已配置”且输入框为空是隐藏密钥的正常状态。模型调用失败时,AI 面板会区分密钥未配置/无效、额度、限流、网络、超时和空响应。SSH 路由仅接受本机 http://127.0.0.1:<端口>,远程访问 Harness 或 localhost 地址暂不支持。会话保存在当前页面内,刷新会断开连接。
单文件下载上限 32 MB;64 KB 以内的 UTF-8 文本可编辑,更大的文本可只读预览,超过 512 KB 时显示末尾约 512 KB;最多 12 个并发 SSH 会话。暂不支持跳板机、目录递归传输、断点续传、自动重连、终端分屏、主机分组、语法高亮。文本替换要求服务器支持 OpenSSH 原子 rename;版本检查不等同于远端文件锁。不提供 CPU/延迟监测或可靠的命令退出码识别。
克隆本仓库后运行:
corepack enable
corepack yarn install --immutable
corepack yarn check
corepack yarn pack:plugin
产物在 dist/,包含 Host 模块、Harness Client 模块、静态工作区和 bundle patch。不会包含 Electron 或 Desktop 包。
实现:Host 使用 ssh2 + ws,通过 ctx.webServer 注册路由,ctx.effect 清理资源;AI 使用 ctx.llm。Client 通过 dsh.client 被发现,向 sidebar.footer.action 和 shell.overlay 添加独立条目。
安装冒烟测试(使用单独安装的官方 CLI,避免命中旧版全局命令):
npm install --prefix /tmp/dsh-official --ignore-scripts @deepseek-ai/dsh@0.1.2-rc.1
node scripts/smoke-install.mjs /tmp/dsh-official/node_modules/@deepseek-ai/dsh/lib/bin.js dist/dsh-plugin-ssh.tgz
GitHub Actions 的 Plugin checks 工作流在 macOS/Windows 执行构建、类型检查和测试,并在 Linux 验证安装包。工作流通过不等同于 Windows SSH 实机验收。