DeepSeek Harness Hub
← 返回列表

远程主机托管Buzzso/dsh-sev

DeepSeek Harnessspec-screened在 GitHub 查看 ↗
✓ 可直接安装

在自有服务器跑无头实例,本地 GUI 混排远程会话

自动检查通过:npm 包已发布且 engines 声明满足基线(声明 Node >=18);该结论来自程序自动检查,未经人工实机验证。 · 最近上游提交 2026/8/27 · 已提供中文文档

DeepSeek Harness 的远程 DSH 主机管理——在你自己的服务器上运行无头 dsh,从本地 GUI 操作它(SSH 隧道、混合会话列表、自动修复)。

综合分
50.2
GitHub 分
50.2
用户评分
★ Stars
52
周下载量
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add dsh-sev
npm 包 dsh-sev 已校验归属本仓库,走 npm 安装最省事
🟢实装验证通过· 2026/9/19
由 dsh-plugin-verify(GitHub Actions)在真实 dsh 环境安装成功,非静态推断。
数据截至 2026/8/29(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
安装兼容性检查✓ 自动检查通过

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

npm 包dsh-sev @ 0.3.4
Node 引擎要求 >=18 · 基线 Node 22.19 满足
dsh CLI 依赖未声明 dsh 版本约束
入口文件main/exports/bin 已声明

验证方式:npm registry 存在性 + package.json 静态校验 · 最后验证 2026/9/17 15:49:42

依赖的 DSH / Cordis 模块
@deepseek-ai/dsh-tools
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

dsh-sev

面向 DeepSeek Harness 的远程 DSH 主机管理 —— 在你自己的服务器上运行无头 dsh 实例,并从本地 GUI 操作它,就像它是本地工作区一样。长时间运行的任务不会因你的笔记本电脑关机而中断。

中文简介:把一台服务器变成你的 DSH「分身」——本地 GUI 左侧边栏混排远程会话、一键打开远程 GUI、SSH 隧道掉线自动重连。长任务甩给服务器,关掉 Mac 也不中断。

- English documentation:见下文
- 中文文档:见文末「中文文档」一节

✨ 功能特性

- 双通道远程控制 —— 以两种方式操作远程 dsh:SSH 隧道 + 面板(查看其 GUI、浏览会话)以及 dsh CLI 控制(sev_run_task 智能体工具通过 ssh + dsh --profile headless 在远程运行一次性任务)。
- 远程项目 —— 将任务指向服务器文件夹(cwd);远程智能体在那里工作,任务文件落在服务器上,可通过 Syncthing / scp 取回。
- 左侧边栏混合列表 —— 远程会话就显示在本地会话旁边(标题、运行脉冲、相对时间),Codex 风格。
- 一键远程 GUI —— 在面板内(iframe)或标签页中打开远程实例的完整 Web UI。
- 自动修复 SSH 隧道 —— 断开的隧道会自动重连(看门狗),并在应用重启后恢复。
- 远程会话 API —— 会话列表 / 健康状态通过隧道从远程主机自身的 API 拉取。
- 可恢复配置 —— 主机注册表是一个纯 JSON 文件,带有自动滚动备份(.bak);删除时会要求确认。
- 零本地暴露 —— 远程主机仅监听 127.0.0.1;你通过 SSH 隧道访问它。仅限回环的 API 防护。

🏗 架构

┌─ your machine (local dsh) ────────────────────────────┐
│  web GUI  ⇄  /api/dsh-sev/*  ⇄  Node half             │
│   · browser half: sidebar entry, mixed session list   │
│   · node half: registry, tunnel lifecycle, watchdog    │
└──────────────┬────────────────────────────────────────┘
│ ssh -L :127.0.0.1:
▼
┌─ your server (headless dsh, systemd) ─────────────────┐
│  dsh --profile web --host 127.0.0.1 --port 3080        │
│  sessions persist here; long tasks survive laptop off  │
└────────────────────────────────────────────────────────┘

📦 安装

从 npm 安装(推荐)

on the machine running the local DSH GUI
npm i -g pnpm                                   # dsh plugin CLI needs pnpm
dsh plugin --profile web add dsh-sev
restart the DSH host / web GUI to load the plugin

从源码安装

git clone  && cd dsh-sev
npm install && npm run build
dsh plugin --profile web add link:$(pwd)

🖥 服务器设置(「远程主机」)

在服务器上安装无头 DSH(以 Ubuntu 22.04+ 为例):

1. Node + dsh (use a mirror if you are in CN)
npm i -g pnpm
npm i -g @deepseek-ai/dsh --registry=https://registry.npmmirror.com

2. Model credentials — the remote instance needs its own API keys:
~/.dsh/settings.yaml          (默认模型 / 提供商)
~/.dsh/.credentials.yaml      (DeepSeek / 提供商密钥)
~/.modlens/config.json        (视觉桥接,如使用)
export ARK_PLAN_API_KEY=...   (基于环境变量的提供商,如使用)

3. systemd 单元,使其在重启后仍能存活(调整路径)
sudo tee /etc/systemd/system/dsh-web.service >/dev/null
Environment=DSH_HOME=/home//.dsh
WorkingDirectory=
ExecStart=/usr/bin/node /node_modules/@deepseek-ai/dsh/lib/bin.js --profile web --host 127.0.0.1 --port 3080
Restart=always
RestartSec=3

[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload && sudo systemctl enable --now dsh-web

提示:将你本地的 ~/.dsh(设置、凭据、记忆、插件配置)一次性复制到服务器——当保持在相同路径时,链接的插件源会通过相对符号链接解析。参见 docs/server-migration.md。

🌐 网络

隧道使用你正常的 ssh——任何可达地址均可工作:

- 推荐:ZeroTier——在你的机器之间建立私有网状网络,无需公开端口。在两端安装,加入同一网络,并将服务器的 ZeroTier IP 填入 ~/.ssh/config。
- 或者:局域网 IP / VPN / 仅使用密钥的公开 IP。

示例 ~/.ssh/config:

Host my-server
HostName 203.0.113.1          # your server's ZeroTier / LAN IP
User your-user
IdentityFile ~/.ssh/id_ed25519
IdentitiesOnly yes

🚀 用法

1. 安装后,刷新 GUI。你将看到:
- 左侧边栏导航中出现一个 远程 条目,
- 工作区列表上方出现一个 远程会话 分组(当有主机在线时)。
2. 打开 远程 面板,输入 SSH 别名(例如 my-server),点击 添加。
3. 插件会自动启动隧道(ssh -L),并显示主机 在线 及其会话列表。
4. 点击任意远程会话(或 打开)即可在面板内操作远程 GUI。

主机会持久化保存在 ~/.dsh/remote-hosts.json 中(并带有滚动备份 remote-hosts.json.bak)。

🔒 安全

- 远程主机仅绑定 127.0.0.1——绝不暴露到网络。
- 所有插件 API 路由都强制执行 仅限回环 的防护(主机头 + 来源检查),与其他 DSH 插件保持一致。
- 你的模型 API 密钥仅存在于你控制的机器上(本地 + 服务器)。
- 隧道只是 ssh——复用你现有的密钥;切勿将密钥提交到此仓库。

🤖 智能体控制(一次性远程任务)

安装后,本地智能体会获得一个 sev_run_task(host, task) 工具,它通过远程主机自己的无头 dsh CLI(ssh + dsh --profile headless)在远程主机上运行任务。只需说:“在服务器上运行这个:……”。

服务器端无头设置(一次):
bash
1. a dedicated DSH_HOME with the plain DeepSeek provider
mkdir -p ~/.dsh-headless
cat > ~/.dsh-headless/settings.yaml  ~/.dsh-headless/profiles/headless/cordis.patch.yml :127.0.0.1:
▼
┌─ 服务器(headless dsh,systemd)─────────────────┐
│  dsh --profile web --host 127.0.0.1 --port 3080   │
│  会话持久在服务器;长任务不因本机关机而中断        │
└──────────────────────────────────────────────────┘

📦 安装

从 npm 安装(推荐)
bash
在本机(运行 DSH GUI 的机器)
npm i -g pnpm                                   # dsh 插件 CLI 需要 pnpm
dsh plugin --profile web add dsh-sev
重启 DSH host / web GUI 使插件生效

从源码安装
bash
git clone  && cd dsh-sev
npm install && npm run build
dsh plugin --profile web add link:$(pwd)

🖥 服务器部署(「远程分身」)

在服务器上装 headless DSH(Ubuntu 22.04+ 示例):
bash
1. Node + dsh(国内可用镜像加速)
npm i -g pnpm
npm i -g @deepseek-ai/dsh --registry=https://registry.npmmirror.com

2. 模型凭据——远程实例需要自己的 API key:
~/.dsh/settings.yaml          (默认模型 / 提供商)
~/.dsh/.credentials.yaml      (DeepSeek / 各厂商 key)
~/.modlens/config.json        (视觉桥,如使用)
export ARK_PLAN_API_KEY=...   (基于环境变量的提供商,如使用)

3. systemd 守护,重启不丢(按需改路径)
sudo tee /etc/systemd/system/dsh-web.service >/dev/null
Environment=DSH_HOME=/home//.dsh
WorkingDirectory=
ExecStart=/usr/bin/node /node_modules/@deepseek-ai/dsh/lib/bin.js --profile web --host 127.0.0.1 --port 3080
Restart=always
RestartSec=3

[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload && sudo systemctl enable --now dsh-web

提示:可以把本机 ~/.dsh(settings、credentials、memories、插件 profile)一次性复制到服务器——link 插件按相对路径解析,保持同路径即可。详见 docs/server-migration.md。

🌐 组网

隧道用你现有的 ssh,任何可达地址都行:

- 推荐 ZeroTier — 设备间私有组网,无需公网端口。两端安装、加入同一网络,把服务器的 ZeroTier IP 写进 ~/.ssh/config。
- 或者:局域网 IP / VPN / 仅密钥认证的公网 IP。

~/.ssh/config 示例:

Host my-server
HostName 203.0.113.1          # 你的服务器 ZeroTier / 局域网 IP
User your-user
IdentityFile ~/.ssh/id_ed25519
IdentitiesOnly yes

🚀 使用

1. 安装后刷新 GUI,你会看到:
- 左侧导航栏的 远程 入口,
- 工作区列表上方的 远程会话 分组(主机在线后出现)。
2. 打开 远程 面板,输入 SSH 别名(如 my-server),点 添加。
3. 插件自动建立隧道(ssh -L)并显示主机 在线 与会话列表。
4. 点任意远程会话(或 打开)即可在面板内操作远程 GUI。

主机配置持久化在 ~/.dsh/remote-hosts.json(每次保存自动留 remote-hosts.json.bak 备份)。

🔒 安全

- 远程实例只监听 127.0.0.1,不暴露到网络。
- 插件所有 API 路由带 loopback-only 围栏(host 头 + origin 校验),与其它 DSH 插件一致。
- 模型 API key 只存在于你控制的机器(本机 + 服务器)。
- 隧道就是 ssh——复用你现有的密钥;永远不要把密钥提交进本仓库。

🤖 Agent 控制(一次性远程任务)

安装后,本地 agent 会获得 sev_run_task(host, task) 工具——通过远程主机自己的 headless dsh CLI(ssh + dsh --profile headless)跑任务。直接说「帮我在服务器上跑:…」即可。

服务器端 headless 一次性配置:
bash
1. 独立 DSH_HOME + 原生 DeepSeek 提供商
mkdir -p ~/.dsh-headless
cat > ~/.dsh-headless/settings.yaml  ~/.dsh-headless/profiles/headless/cordis.patch.yml <<'CFG'
- enable:
- id: llm-deepseek
CFG
注意:provider id 是 deepseek-official;headless profile 默认禁用了 llm-deepseek,上面的 patch 即启用它。任务文本经 stdin 写入临时文件(任意引号都安全),5 分钟超时。

🛠 开发
bash
npm install        # devDeps: esbuild / typescript / @types/react
npm run build      # 打包 lib/client.js(浏览器半)
npm test           # node --test(11 用例:路由/围栏/看门狗/会话代理/.bak)
npm run typecheck  # 可选 tsc --noEmit

插件结构:

lib/index.js          # Node 半:注册表、隧道、看门狗、/api/dsh-sev 路由
src/client/index.tsx  # 浏览器半:侧边栏入口、混排列表、面板、iframe
scripts/build.mjs     # esbuild → lib/client.js(window.__ModuleLoader__.load 格式)
cordis.patch.yml      # bundle 层清单(id: sev / name: dsh-sev)

📦 发布
bash
npm run build && npm test   # prepublishOnly 会自动执行
npm publish                 # 需要 npm 账号;发布的包就是「安装包」

接入 DSH 插件市场:用 dsh plugin add dsh-sev 安装已发布包;市场收录按 DSH 插件注册流程。

📄 License / 许可证

MIT

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

💬 加入 DPharness 群聊

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

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