deepseek-harness
deepseek-ai
DeepSeek Harness: Everything is a Plugin.
PROJECT TOPICS
INSTALL REFERENCE
dsh plugin --profile web add github:ginkgonine/dsh-server-hub
该命令指向仓库当前默认分支;尚无绑定当前 commit 的完整验证结果。
PROJECT README
专为 DeepSeek Harness Web 打造的多实例 / 多服务器统一控制台与状态雷达
当你在本地并行开发多个项目,或在多台远程 GPU/开发服务器上同时跑 DeepSeek Harness (DSH) 任务时,常常被两件事困扰:
DSH Server Hub 将本地运行的所有 DSH 实例以及通过隧道转发到本机的远程 DSH 节点,全部聚合进同一个原生工作台中。自动识别端口、单页无感热切、全矩阵 Agent 状态雷达与全局被动唤醒,让你在一个窗口内从容调度全部算力与会话。
📌 按需安装,轻重随心:
- 基础多实例/多服切换(Hub):仅需在本地主控端安装! 其它本地实例或远端服务器无需任何插件,只要端口在本机处于监听状态,即可立刻享受单页聚合与多标签切换;
- 全景状态雷达与提醒:如果你想在标签栏、浏览器 Tab 和桌面弹窗上实时看到各个实例的 Agent 运行状态(是否正在运行、是否卡在等待授权),只需在对应实例上也安装该插件即可。

浏览器标签页会跟随多服务器 Agent 状态自动变化:
| 工作中 | 等待人工操作 | 已完成 |
|---|---|---|
![]() |
![]() |
![]() |
本地-电商重构、A100-训练机、4090-测试节点),配置持久化保存于浏览器本地,重启不丢。各实例的 Agent 动向尽收眼底,一眼看透全局进度:
无需切回网页,看一眼浏览器 Tab 标题就能洞察一切:
⠋ ➔ ⠙ ➔ ⠹ ➔ ⠸...),直观感知后台仍在全力运转;❗;✅ 提示交付。┌─────────────────────────────────────────────────────────────────┐
│ 本地工作站 (Windows / macOS / Linux PC) │
│ │
│ DSH 主控 Web ── 侧栏入口: [服务器 Hub] │
│ │ │
│ ├── 聚合标签 [主控本机] [本地项目B] [A100训练机] [测试节点] │
│ │ │
│ └── 常驻监控调度器 (Host + Client Overlay) │
│ │ (每30s自动扫描端口 / 约每1.5s轻量状态轮询) │
│ │ │
│ ├── 127.0.0.1:3001 (本机另一个项目目录跑的 DSH) │
│ │ │
│ ├── 127.0.0.1:3101 (SSH 隧道) ── 远程服务器 A (带插件) │
│ │ │
│ └── 127.0.0.1:3102 (SSH 隧道) ── 远程服务器 B (纯 DSH) │
└─────────────────────────────────────────────────────────────────┘
在作为主控的 DSH 实例上安装,启用 Hub 面板与智能发现:
dsh plugin --profile web add github:ginkgonine/dsh-server-hub
dsh web
如果希望监控某个实例(本地或远程)的 Agent 工作/等待/完成状态,在该实例上也执行安装并重启对应的 DSH Web:
dsh plugin --profile web add github:ginkgonine/dsh-server-hub
# 停止旧进程后重新启动
dsh web
(被 Hub 嵌入时会自动切换为纯后台轻量桥接模式,不产生冗余 UI)
无论是本地多开还是远程映射,只要端口在本地处于监听状态,Hub 都会自动发现:
方式 A:本机多实例并行(多项目开发) 在另一个项目目录中,以指定端口启动第二个 DSH:
cd ~/another-project
dsh web --port 3001
方式 B:远程服务器映射(多服务器集群) 通过 SSH 将远端 DSH 服务的端口映射到本地的独立端口:
# 将远程服务器 A、B 分别映射到本地 3101 和 3102 端口
ssh -N -L 3101:127.0.0.1:3080 user@server-a.internal
ssh -N -L 3102:127.0.0.1:3080 user@server-b.internal
本地-前端重构、A100-训练);| 操作 | 说明 |
|---|---|
| 切换实例 | 点击顶部标签,即开即切,各实例上下文与草稿均完整保留 |
| 命名实例 | 选中标签后点击「命名」,输入自定义别名(持久化于本地浏览器缓存) |
| 手动添加端口 | 若使用了特殊端口或未自动列出,在输入框填写端口号并回车即可直连 |
| 桌面通知授权 | 点击工具栏「通知」按钮,浏览器授权后生效,等待操作与任务完成均有专属弹窗 |
| 返回主控会话 | 点击工具栏「主控」或左侧普通会话即可离开 Hub,后台监控依然在浏览器 Tab 标题与通知中生效 |
在主控以及已安装状态桥接的被监控端分别执行:
dsh plugin --profile web update dsh-server-hub
更新后停止旧进程并重新运行 dsh web。如果主控与远端暂时没有同时更新,已有的 v1 状态协议仍可继续通信,但建议最终保持版本一致。
dsh plugin --profile web remove dsh-server-hub
卸载后同样需要重启对应的 DSH Web。远端卸载后仍可在 Hub 中打开,但不再提供 Agent 状态和通知;主控卸载后 Hub 入口会消失。
/api/dsh-server-hub/status 仅接受无浏览器 Origin 的 Loopback GET/HEAD 请求(127.0.0.1 / ::1)。127.0.0.1 和 ::1 上的 HTTP 服务;仅绑定其他网卡地址、HTTPS 或任意完整 URL 的场景暂不支持。X-Frame-Options: DENY 或严格的 CSP frame-ancestors,需调整代理响应头或采用主控反向代理方案。本项目已包含预构建的发布产物(位于 lib/)。构建过程完全基于标准 ESM 与 DSH 模块规范,不依赖闭源私有工具链。
# 1. 克隆代码仓库
git clone https://github.com/ginkgonine/dsh-server-hub.git
cd dsh-server-hub
# 2. 构建与运行测试
npm run build
npm test
npm run check
# 3. 安装本地源码版本至 DSH
dsh plugin --profile web add .
├── src/
│ ├── index.js # Host 端:端口智能发现、极轻状态桥接、常驻监控与受保护 API
│ └── client.js # Client 端:Slot 注入、iframe 容器组、状态动效与通知控制
├── lib/ # 预编译产物目录
├── cordis.patch.yml # Web profile 插件描述补丁
└── scripts/build.mjs # 轻量构建脚本
本项目基于 MIT 许可证 开源。
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: 无有效分类标签。