🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

远程主机托管 Buzzso/dsh-sev

DeepSeek Harnessv0.3.4
Buzzso68 天前有提交已提供中文文档扫描:含敏感能力

远程 DSH 主机管理,为 DeepSeek Harness 打造 —— 在你自己的服务器上跑一个无头 dsh…

50.2/100
综合分
139
GitHub 星标
50
npm 周下载
—/5
用户评分

数据截至 2026/8/29 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add dsh-sev
npm 源 · dsh-sev 的发布者账号已校验与本仓库一致

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么
dsh 原生插件 · dev
装得上吗
本站已在 dsh 0.2.1-rc.2 下真实安装成功
非静态推断
L5 · 运行时冒烟等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 68 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查✓ 自动检查通过
展开查看检查明细 ↓

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

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

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/30 02:39:36

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

可执行外部命令读写/删除本地文件发起外部网络请求
查看扫描证据(共 12 处,展示前 12 条)
  • 读取本地文件
    lib/index.js:86
    const raw = JSON.parse(readFileSync(this.file, 'utf8'))
  • 写入本地文件
    lib/index.js:91
    mkdirSync(dirname(this.file), { recursive: true })
  • 读取本地文件
    lib/index.js:94
    const existing = readFileSync(this.file, 'utf8')
  • 写入本地文件
    lib/index.js:95
    if (existing.length > 0) writeFileSync(`${this.file}.bak`, existing)
  • 写入本地文件
    lib/index.js:97
    writeFileSync(this.file, JSON.stringify({ hosts: this.hosts }, null, 2))
  • 执行外部命令固定命令
    lib/index.js:124
    const proc = spawn('ssh', [
  • 发起网络请求
    lib/index.js:338
    const r = await fetch(`http://127.0.0.1:${tunnel.localPort}/`, { signal: AbortSignal.timeout(5000) })
  • 发起网络请求
    lib/index.js:361
    const r = await fetch(`http://127.0.0.1:${tunnel.localPort}${remotePath}`, {
  • 发起网络请求
    lib/index.js:389
    const r = await fetch(`http://127.0.0.1:${tunnel.localPort}/api/session.list`, {
  • 发起网络请求
    lib/index.js:440
    const rpc = (method, payload) => fetch(`${base}/api/${method}`, {
  • 发起网络请求
    lib/index.js:478
    const r = await fetch(`http://127.0.0.1:${tunnel.localPort}/api/workspace.archiveSession`, {
  • 执行外部命令固定命令
    lib/index.js:517
    const proc = spawn('ssh', [alias, remote], { stdio: ['pipe', 'pipe', 'pipe'] })
扫描于 2026/11/3(1 天前) · 范围 入口闭包 + 全包扫描 · 来源 npm 发布包

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

依赖的 DSH / Cordis 模块
@deepseek-ai/dsh-tools
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 远程管理DSH主机
  • 本地GUI操作
  • SSH隧道连接

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

v0.3.42026-08-27
· 修复 · 混排列表删除按钮 ReferenceError(共享 archiveRemoteSession 助手) · 面板会话行补上删除按钮 · 版本号提升以强制 pnpm 刷新已安装 bundle · 验证 · 面板删除 / 混排删除均已浏览器级验证 · 12s 不回弹(服务端 archivedIds 过滤) · 安全审计 PASS
v0.3.22026-08-27
· 会话列表现在会过滤掉已归档的远程会话(node 端保留归档集合) · 已删除的会话在多次轮询后不会再出现 · 15 项测试
v0.3.12026-08-27
· 远程会话行(面板和左侧混合列表)现在有 🗑 删除按钮,通过 workspace.archiveSession 归档会话 · 新增路由 POST /api/dsh-sev/session-archive · 14 个测试
数据来自仓库的 GitHub Release,可能与插件实际版本不一致。

README

由 DeepSeek 最新模型翻译生成
dsh-sev 远程 DSH 主机管理,为 DeepSeek Harness 打造 —— 在你自己的服务器上跑一个无头 dsh 实例,从本地 GUI 操作它,就像操作本地工作区一样。长任务不会因为你关掉笔记本而中断。 中文简介:把一台服务器变成你的 DSH「分身」——本地 GUI 左侧边栏混排远程会话、一键打开远程 GUI、SSH 隧道掉线自动重连。长任务甩给服务器,关掉 Mac 也不中断。 - English documentation:见下方 - 中文文档:见文末「中文文档」一节 ✨ 功能 - 双通道远程控制 —— 两种方式操作远程 dsh:SSH 隧道 + 面板(看它的 GUI、浏览会话)以及 dsh 命令行控制(sev_run_task 智能体工具通过 ssh + dsh --profile headless 在远程跑一次性任务)。 - 远程项目 —— 把任务指向服务器上的某个文件夹(cwd);远程智能体在那里干活,任务文件落在服务器上,可用 Syncthing / scp 取回。 - 左侧边栏混排列表 —— 远程会话就排在你本地会话旁边(标题、运行脉冲、相对时间),Codex 风格。 - 一键打开远程 GUI —— 在面板里(iframe)或新标签页里打开远程实例的完整 Web UI。
展开完整文档(README 剩余 1 节)
dsh-sev

远程 DSH 主机管理,为 DeepSeek Harness 打造 —— 在你自己的服务器上跑一个无头 dsh 实例,从本地 GUI 操作它,就像操作本地工作区一样。长任务不会因为你关掉笔记本而中断。

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

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

✨ 功能

- 双通道远程控制 —— 两种方式操作远程 dsh:SSH 隧道 + 面板(看它的 GUI、浏览会话)以及 dsh 命令行控制(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 <local>:127.0.0.1:<remote dsh port> <alias> ▼ ┌─ 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 <this-repo> && 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 <<'EOF'
[Unit]
Description=DSH web (remote host)
After=network-online.target

[Service]
Type=simple
User=<your-user>
Environment=DSH_HOME=/home/<your-user>/.dsh
WorkingDirectory=<dsh-install-dir>
ExecStart=/usr/bin/node <dsh-install-dir>/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 路由都强制 仅限回环 校验(host 头 + origin 检查),与其他 DSH 插件保持一致。
- 模型 API 密钥只存在你自己掌控的机器上(本地 + 服务器)。
- 隧道就是 ssh——复用你现有的密钥;切勿把密钥提交到这个仓库。

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

安装后,本地智能体会多出一个 sev_run_task(host, task) 工具,通过远程主机自己的无头 dsh 命令行(ssh + dsh --profile headless)在远程执行任务。直接说:「在服务器上跑这个:……」。

服务端无头环境配置(只需一次):

1. a dedicated DSH_HOME with the plain DeepSeek provider
mkdir -p ~/.dsh-headless
cat > ~/.dsh-headless/settings.yaml <<'CFG'
llm-deepseek:
baseURL: https://api.deepseek.com
agent-default-model:
provider: deepseek-official
model: deepseek-v4-flash
reasoningEffort: high
CFG
ln -s ~/.dsh/.credentials.yaml ~/.dsh-headless/.credentials.yaml

2. enable the built-in (but disabled) DeepSeek provider for the headless profile
dsh plugin --profile headless add @deepseek-ai/dsh-llm-deepseek
mkdir -p ~/.dsh-headless/profiles/headless
cat > ~/.dsh-headless/profiles/headless/cordis.patch.yml <<'CFG'
- enable:
- id: llm-deepseek
CFG

说明:服务商 id 是 deepseek-official;headless 配置档默认禁用 llm-deepseek —— 上面的补丁把它启用。工具把任务经 stdin 管道写入临时文件(任意引号都安全),5 分钟后超时。

🛠 开发

npm install # dev deps: esbuild / typescript / @types/react
npm run build # bundles lib/client.js (browser half)
npm test # node --test (11 cases: routes, fence, watchdog, sessions proxy, .bak)
npm run typecheck # optional tsc --noEmit

插件结构:

lib/index.js # Node half: registry, tunnels, watchdog, /api/dsh-sev routes
src/client/index.tsx # Browser half: sidebar entry, mixed list, panel, iframe
scripts/build.mjs # esbuild → lib/client.js (window.__ModuleLoader__.load format)
cordis.patch.yml # bundle layer manifest (id: sev / name: dsh-sev)

📦 发布

npm run build && npm test # prepublishOnly runs this automatically
npm publish # requires an npm account; the package is the "installer"

上架 DSH 插件市场:用 dsh plugin add dsh-sev 安装已发布的包;能否进入市场,走 DSH 插件注册流程。

📄 许可证

MIT

中文文档

✨ 功能特性

- 双通道远程控制 — 两种方式操控远程 dsh:SSH 隧道 + 面板(看远程 GUI、浏览会话)与 dsh CLI 控制(sev_run_task 智能体工具经 ssh + dsh --profile headless 在远程跑一次性任务)。
- 远程项目 — 给任务指定服务器文件夹(cwd),远程智能体就在那里工作,任务文件落在服务器上,可经 Syncthing / scp 取回。
- 左侧会话混排 — 远程会话直接显示在左侧边栏,跟本地任务并列(标题、运行态呼吸点、相对时间),Codex 同款体验。
- 一键远程 GUI — 面板内以 iframe 打开远程实例的完整网页界面(也可在标签页打开)。
- 隧道自动自愈 — SSH 隧道意外断开自动重连(看门狗),App 重启后自动恢复。
- 远程会话 API — 会话列表 / 健康状态经隧道调用远程实例自身的 API。
- 配置可恢复 — 主机注册表是纯 JSON 文件,每次保存前自动写滚动备份(.bak);删除前有确认弹窗。
- 零暴露 — 远程实例只监听 127.0.0.1,本机经 SSH 隧道访问;插件 API 全部 loopback 围栏。

🏗 架构

┌─ 本机(本地 dsh)──────────────────────────────┐ │ web GUI ⇄ /api/dsh-sev/* ⇄ Node 半 │ │ · 浏览器半:侧边栏入口、混排会话列表 │ │ · Node 半:注册表、隧道生命周期、看门狗 │ └──────────────┬──────────────────────────────────┘ │ ssh -L <本地端口>:127.0.0.1:<远程 dsh 端口> <别名> ▼ ┌─ 服务器(headless dsh,systemd)─────────────────┐ │ dsh --profile web --host 127.0.0.1 --port 3080 │ │ 会话持久在服务器;长任务不因本机关机而中断 │ └──────────────────────────────────────────────────┘

📦 安装

从 npm 安装(推荐)

在本机(运行 DSH GUI 的机器)
npm i -g pnpm # dsh 插件 CLI 需要 pnpmbash
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 <<'EOF'
[Unit]
Description=DSH web (remote host)
After=network-online.target

[Service]
Type=simple
User=<你的用户名>
Environment=DSH_HOME=/home/<你的用户名>/.dsh
WorkingDirectory=<dsh 安装目录>
ExecStart=/usr/bin/node <dsh 安装目录>/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——复用你现有的密钥;永远不要把密钥提交进本仓库。

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

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

服务器端 headless 一次性配置: bash

1. 独立 DSH_HOME + 原生 DeepSeek 提供商

mkdir -p ~/.dsh-headless
cat > ~/.dsh-headless/settings.yaml <<'CFG'
llm-deepseek:
baseURL: https://api.deepseek.com
agent-default-model:
provider: deepseek-official
model: deepseek-v4-flash
reasoningEffort: high
CFG
ln -s ~/.dsh/.credentials.yaml ~/.dsh-headless/.credentials.yaml

2. 启用 headless 内置(默认禁用)的 DeepSeek 提供商

dsh plugin --profile headless add @deepseek-ai/dsh-llm-deepseek
mkdir -p ~/.dsh-headless/profiles/headless
cat > ~/.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
预览分享卡片长什么样 ↓Buzzso/dsh-sev
分享 · DeepSeek Harness Hub
Buzzso/dsh-sev

远程 DSH 主机管理,为 DeepSeek Harness 打造 —— 在你自己的服务器上跑一个无头 dsh…

这是你的仓库?认领条目

回到顶部