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

实时桌面镜像 Kuaizr/dsh-vps-live

DeepSeek Harness
Kuaizr26 天前有提交已提供中文文档扫描:高危

在侧边栏实时观看智能体操作浏览器与桌面并随时接管

29.9/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分

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

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add Kuaizr/dsh-vps-live
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:待复验
是什么
dsh 原生插件 · browser
装得上吗
曾在 dsh 0.2.0-rc.2 下真实安装成功,但当前 dsh 已更新至 0.2.1-rc.5,本站尚未在新版下复验
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 26 天前
档位由哪些信号合成

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

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
🔴 安全扫描发现高危能力自动 · 静态分析源码
v2.7.0
🔴 扫描:高危尚无人工评估

静态扫描发现安装期即执行代码,或命令参数由运行时变量拼接(参数来源无法静态判定,从严处理)。

命令参数由运行时变量拼接读写/删除本地文件
查看扫描证据(共 16 处,展示前 16 条)
  • 写入本地文件
    build.mjs:5
    mkdirSync('lib', { recursive: true })
  • 执行外部命令运行时拼接
    build.mjs:8
    execSync(
  • 执行外部命令运行时拼接
    build.mjs:15
    execSync(
  • 读取本地文件
    build.mjs:21
    const raw = readFileSync('lib/client.raw.js', 'utf8')
  • 删除本地文件
    build.mjs:22
    rmSync('lib/client.raw.js')
  • 写入本地文件
    build.mjs:23
    writeFileSync('lib/client.js', `window.__ModuleLoader__.load({
  • 执行外部命令固定命令
    src/desktop-tools.ts:11
    execFile('xdotool', args, { env: { ...process.env, DISPLAY } }, (error, stdout, stderr) => {
  • 读取本地文件
    src/index.ts:24
    const dirs = readdirSync(cache).filter(d => d.startsWith('chromium_headless_shell-')).sort().reverse()
  • 读取本地文件
    src/index.ts:27
    if (existsSync(candidate)) return candidate
  • 读取本地文件
    src/index.ts:30
    const fullDirs = readdirSync(cache).filter(d => d.startsWith('chromium-')).sort().reverse()
  • 读取本地文件
    src/index.ts:34
    if (existsSync(candidate)) return candidate
  • 执行外部命令来自配置/变量
    src/index.ts:79
    const chrome = spawn(EXECUTABLE, [
  • 删除本地文件递归
    src/index.ts:95
    await rm(userDataDir, { recursive: true, force: true }).catch(() => {})
  • 写入本地文件
    src/index.ts:244
    try { appendFileSync(debugFile, `${new Date().toISOString()} ${message}\n`) } catch {}
  • 写入本地文件
    src/index.ts:276
    try { appendFileSync(clientErrorLog, `${new Date().toISOString()} ${body.slice(0, 4000)}\n`) } catch {}
  • 删除本地文件递归
    src/index.ts:309
    await rm(userDataDir, { recursive: true, force: true }).catch(() => {})
扫描于 2026/11/3(1 天前) · 范围 入口闭包 + 全包扫描 · 来源 GitHub 仓库

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

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

功能亮点

  • 实时观看浏览器操作
  • 实时观看桌面操作
  • 随时接管操作

为 DeepSeek Harness 提供 Codex 风格的实时浏览器与桌面镜像

README

由 DeepSeek 最新模型翻译生成
dsh-browser-live Codex 风格的实时浏览器与桌面镜像,专为 DeepSeek Harness 打造。 实时观看智能体干活——带虚拟光标——随时可以接管控制权。 中文说明 面板入口 Browser Live 和 Desktop Live 会作为面板出现在 Web GUI 右侧边栏。 Desktop Live Desktop Live:智能体的完整虚拟桌面(dwm + Firefox),实时串流进 DSH Web GUI。 它能做什么 一个 DSH 插件,在 Web GUI 右侧边栏里提供两个实时画面: | 面板 | 你能得到什么 | | Browser Live | 实时镜像智能体驱动的浏览器(JPEG 帧,走 CDP Page.startScreencast),一个虚拟光标 + 点击涟漪,显示智能体正在做什么,还有一个 Take over 按钮,把输入控制权交给你(手动释放)。 | | Desktop Live | 完整虚拟桌面(Xvfb + dwm + x11vnc),通过 WebSocket 桥接的 VNC(websockify 风格)串流。直接点击、拖拽、滚动、打字——不用切换。 | 外加一个智能体侧工具 desktop,让模型操作虚拟桌面(通过 xdotool 点击 / 拖拽 / 打字 / 按键 / 滚动)——每个动作你都能实时看到。
展开完整文档(README 剩余 1 节)
dsh-browser-live

Codex 风格的实时浏览器与桌面镜像,专为 DeepSeek Harness 打造。 实时观看智能体干活——带虚拟光标——随时可以接管控制权。

中文说明

面板入口 Browser Live 和 Desktop Live 会作为面板出现在 Web GUI 右侧边栏。

Desktop Live
Desktop Live:智能体的完整虚拟桌面(dwm + Firefox),实时串流进 DSH Web GUI。

它能做什么

一个 DSH 插件,在 Web GUI 右侧边栏里提供两个实时画面:

| 面板 | 你能得到什么 |
| Browser Live | 实时镜像智能体驱动的浏览器(JPEG 帧,走 CDP Page.startScreencast),一个虚拟光标 + 点击涟漪,显示智能体正在做什么,还有一个 Take over 按钮,把输入控制权交给你(手动释放)。 |
| Desktop Live | 完整虚拟桌面(Xvfb + dwm + x11vnc),通过 WebSocket 桥接的 VNC(websockify 风格)串流。直接点击、拖拽、滚动、打字——不用切换。 |

外加一个智能体侧工具 desktop,让模型操作虚拟桌面(通过 xdotool 点击 / 拖拽 / 打字 / 按键 / 滚动)——每个动作你都能实时看到。

工作原理

┌─ 你(浏览器,位于 Cloudflare Access 或任意认证之后)─────────────┐ │ Browser Live 画布 Desktop Live 画布(noVNC) │ └───────────────┬────────────────────────┬───────────────────────┘ │ WebSocket /browser-live/ws WebSocket /desktop-live/ws ┌─ dsh-web 宿主 ─┴────────────────────────┴───────────────────────┐ │ browser-live 插件 │ │ • 启动带 CDP 端点的 Chromium(127.0.0.1:9222) │ │ • browser-use 服务商接入同一个浏览器,所以智能体驱动的 │ │ 正是你看到的 │ │ • Page.startScreencast → JPEG 帧 → WS │ │ • 接管输入 → CDP Input.dispatch* │ │ • 智能体光标 → Runtime.addBinding 页面脚本 │ │ • /desktop-live/ws → 认证 → 原始 TCP 桥 → x11vnc:5999 │ └───────────────┬──────────────────────────┬──────────────────────┘ │ attach (CDP) │ RFB Chromium(headless shell) Xvfb :99 + dwm + x11vnc

浏览器为什么不用 VNC?CDP screencast 由画面变化驱动(静态页面几乎零流量),不需要 X 服务器,还能给出像素级精确坐标用于注入输入。桌面为什么不用 CDP?桌面不是浏览器——VNC 才是这里诚实的工具,而一条跑在已认证 WebSocket 上的原始 TCP 桥就是全部桥接逻辑(不需要 websockify 进程)。

环境要求

- DeepSeek Harness 0.1.7-rc.2(web 配置档),并挂载了 @deepseek-ai/dsh-experimental-browser-use-playwright-mcp 服务商
- 宿主机上有一个 Playwright Chromium(headless shell 或完整版)
- 桌面实时画面需要:xvfb、dwm、x11vnc、feh、picom(任意窗口管理器都行)

安装

1. 构建插件

git clone https://github.com/Kuaizr/dsh-vps-live.git
cd dsh-vps-live
npm install
npm run build # produces lib/index.js and lib/client.js

2. 接入 DSH web 配置档

在 $DSH_HOME/profiles/web/package.json 中:

"@aether/dsh-browser-live": "link:/path/to/dsh-vps-live"

在 $DSH_HOME/profiles/web/cordis.patch.yml 中,把 Playwright MCP 服务商切换为 attach 模式(这样智能体就能驱动镜像出来的浏览器),并插入插件:

- insert:
- id: browser-live
name: "@aether/dsh-browser-live"
- id: browser-use
name: "@deepseek-ai/dsh-browser-use"
- id: browser-use-playwright
name: "@deepseek-ai/dsh-experimental-browser-use-playwright-mcp"
config:
mode: attach
endpoint: http://127.0.0.1:9222

然后在配置档里执行 pnpm install,重启 dsh-web。

3. 桌面实时画面(可选)

跑一个虚拟显示,配上窗口管理器和 x11vnc,并绑定到 loopback,例如用 systemd 用户单元:

~/.config/systemd/user/xvfb.service
[Service]
ExecStart=/usr/bin/Xvfb :99 -screen 0 1600x900x24 -nolisten tcp

~/.config/systemd/user/desktop-wm.service (see autostart/ for an example)
[Service]
Environment=DISPLAY=:99
ExecStart=/bin/sh /path/to/autostart.sh # wallpaper, picom, dwm

~/.config/systemd/user/x11vnc.service
[Service]
ExecStart=/usr/bin/x11vnc -display :99 -rfbport 5999 -localhost -nopw -shared -forever -noxdamage

插件会在 DSH 鉴权之后,把 /desktop-live/ws 代理到 127.0.0.1:5999 —— VNC 永远不会监听公网接口。

配置(环境变量)

| 变量 | 默认值 | 用途 |
| BROWSER_LIVE_PORT | 9222 | attach 模式服务商使用的 CDP 端点端口 |
| BROWSER_LIVE_EXECUTABLE | 自动检测 | Chromium / headless-shell 可执行文件 |
| BROWSER_LIVE_DISPLAY | :99 | desktop 工具使用的显示 |
| BROWSER_LIVE_DEBUG_LOG | 未设置 | 设为某个路径后,把 WS 生命周期日志写到那里 |

安全模型

- 两条 WebSocket 路由都走 DSH 自己的连接服务鉴权(connection.requestRejection)—— 没有新增匿名端点。
- x11vnc 和 CDP 端口只绑定 loopback;没有对外暴露任何新东西。保护你 DSH GUI 的那套机制(比如 Cloudflare Access)同样保护实时画面。
- 接管是独占的:你握着控制权时,其他观看者的输入会被丢弃(智能体的工具仍可用,与 Codex 行为一致)。

已知限制

- 智能体光标靠 DOM 事件跟踪;CDP 派发的移动如果没有 DOM hover,只在点击时显示。
- 投屏由画面变化驱动 —— 连接时先到第一帧(插件会主动抓一帧),之后有变化才推。
- Chromium 完整构建如果 crashpad 坏了,可能起不来;内置的自动检测优先选 Playwright headless shell,它不用 crashpad。
- desktop 工具返回文本结果;截图交给模型(持久附件)这一步留给 DSH 自带的 computer-use 服务商处理。

License

MIT © Kuaizr

中文说明

面向 DeepSeek Harness 的 Codex 风格实时浏览器 / 桌面镜像插件。 实时观看智能体操作(带虚拟光标),随时接管控制。

功能

| 面板 | 能力 |
| Browser Live | 实时镜像智能体正在操作的浏览器(CDP Page.startScreencast JPEG 帧流);虚拟光标 + 点击涟漪显示智能体动作;一键接管输入(手动释放) |
| Desktop Live | 完整虚拟桌面(Xvfb + dwm + x11vnc),WebSocket 桥接 VNC(websockify 式);直接点击 / 拖拽 / 滚动 / 打字 |

另注册智能体工具 desktop:模型可通过 xdotool 操作虚拟桌面(click / drag / type / key / scroll),你的面板实时可见。

原理

- 插件启动 Chromium 并暴露仅本机的 CDP 端口(默认 127.0.0.1:9222); browser-use 的 Playwright MCP 服务商配置为 attach 模式连接同一浏览器,因此 智能体操作的页面 = 你看到的页面。
- Page.startScreencast 是变化驱动的:静态页面几乎零流量;客户端接入时插件主动抓取一帧,之后按变更推帧。
- 接管的输入通过 CDP Input.dispatchMouseEvent / dispatchKeyEvent 注入。
- 智能体光标由页面注入脚本经 Runtime.addBinding 回报坐标。
- 桌面通道:/desktop-live/ws 完成 DSH 认证后,做 WebSocket ↔ VNC 裸 TCP 桥(内置于插件,无需额外 websockify 进程),并带协议层 keepalive 防止 Cloudflare 掐断空闲连接。

安装

git clone https://github.com/Kuaizr/dsh-vps-live.git
cd dsh-vps-live && npm install && npm run build

在 $DSH_HOME/profiles/web/package.json 加入:

"@aether/dsh-browser-live": "link:/path/to/dsh-vps-live"

在 cordis.patch.yml 中把 playwright provider 改为 attach 模式并插入插件(见上文英文部分的 YAML 示例),然后 pnpm install 并重启 dsh-web。

桌面环境(可选)

需要 xvfb、任意窗口管理器(示例用 dwm)、x11vnc(仅监听 127.0.0.1)。
autostart/ 目录有可直接使用的会话脚本示例。

环境变量

| 变量 | 默认 | 说明 |
| BROWSER_LIVE_PORT | 9222 | CDP 端口 |
| BROWSER_LIVE_EXECUTABLE | 自动探测 | Chromium / headless shell 路径 |
| BROWSER_LIVE_DISPLAY | :99 | desktop 工具使用的显示器 |
| BROWSER_LIVE_DEBUG_LOG | 未设置 | 设置为路径时记录 WS 生命周期日志 |

安全模型

- 两条 WS 路由都走 DSH 自带认证(connection.requestRejection),无匿名端点
- x11vnc 与 CDP 端口只绑定 127.0.0.1,不新增公网暴露面
- 接管为独占式:你持有控制权时其他观看者的输入被丢弃

兼容性

针对 DeepSeek Harness 0.1.7-rc.2(web profile)开发与验证。
DSH 仍处于 Developer Preview,后续版本可能需要适配。

许可

MIT © Kuaizr
预览分享卡片长什么样 ↓Kuaizr/dsh-vps-live
分享 · DeepSeek Harness Hub
Kuaizr/dsh-vps-live

在侧边栏实时观看智能体操作浏览器与桌面并随时接管

这是你的仓库?认领条目

回到顶部