kemi-20/dsx--packages-dsh-browser-tool ↗★ 1
@dsx/dsh-browser-tool
DSH model tools backed by the DSX embedded Chromium browser
AI 분석
核心用途是为 DSH 模型提供基于内置 Chromium 浏览器的网页操作工具。适合需要让 AI 执行网页打开、截图、点击和输入等自动化任务的用户。
설치
검증된 bundle이 없거나 호환성 검사에 실패했습니다. 먼저 저장소 설명을 읽어 주세요. 전체 README 읽기 ↗
DSX
DSX 是 DeepSeek Harness 的原生桌面外壳。它把官方 DSH 直接打包成双击即用的桌面应用,并额外内置了一个可供 AI 模型直接调用的 Chromium 浏览器。
核心亮点:内置 AI 浏览器 + 图片 OCR
DSX 在 Electron 中内置了一个真正的浏览器,并把浏览器与图片识别合并进同一个 dsx 插件:
- 默认后台常驻、隐藏运行,像 Codex 一样,不会因为模型调用浏览器就突然弹窗。
- 点击右上角的侧栏按钮才从右侧滑入显示,关闭时平滑滑出,并可左右拖动分隔条调整宽度。
- 支持多标签页、地址栏、前进/后退/刷新等完整交互。
- 通过一个自包含的 DSH Cordis 插件(
packages/dsx)桥接,模型可直接调用browser_open、browser_snapshot、browser_click、browser_type、browser_screenshot等工具。 - 图片先 OCR 再进模型:你上传的图片会先经过多模态模型识别成文字,再交给当前使用的文本模型,DeepSeek 等纯文本模型也能直接看图。
- 语音输入:输入框右侧新增语音按键,录音后由同一个多模态模型(mimo-v2.5 等)转成文字插入输入框;录音中直接按发送键或回车,会先转写拼接再自动发送。
- 浏览器截图、图片 OCR 与语音输入共用同一套多模态配置:多模态模型接口地址、API Key、模型名称,以及「开启浏览器视觉」「开启图片 OCR」两个开关,都在「插件管理 → DSX」中配置,设置完全走 DSH 官方的插件设置接口。
- 首次升级会自动把旧插件
dsx-browser-tool的设置迁移到新的dsx命名空间,已有配置不丢失。 - 插件以 npm 包名
@kemi-20/dsx维护,后续可直接发布到 npm 供 DSH 按名安装。
多模态模型(浏览器视觉 / OCR / 语音共用)
在「插件管理 → DSX」中配置一个 OpenAI 兼容的多模态端点,例如小米 MiMo:
dsx:
visionApiUrl: https://api.xiaomimimo.com/v1
visionApiKey:
visionModel: mimo-v2.5
- 浏览器截图、上传图片 OCR、语音转写共用这一份配置,无需分别设置。
- 所有多模态请求都关闭模型思考(
thinking: { type: "disabled" }),截图与图片只返回识别内容,语音只返回转写文本,不夹带推理过程。 - 语音转写由 DSH 插件后端直连 API(与 OCR 同一条链路),不经过浏览器页面,因此不受 CORS 限制,可直连任意 OpenAI 兼容网关。
旧插件目录 packages/dsh-browser-tool 已合并为 packages/dsx,不再被引用,可手动删除。
为什么要 DSX
- 不再需要
npx @deepseek-ai/dsh web,也不需要一直开着命令行窗口。 - 完全复用官方
~/.dsh:密钥、会话、技能、插件系统、Agent 预设全部兼容,不另建.dsx目录。 - 无标题栏、原生窗口控制,系统托盘常驻;关闭窗口只是隐藏,不会退出。
- 单实例运行,DSH 意外退出后自动重启。
- macOS:点 Dock 图标重新唤出隐藏窗口,菜单栏模板图标自动适配深浅色,DSH 独立进程组退出不残留。
安全:不再监听固定 3080 端口
DSH 不再绑定众所周知的 127.0.0.1:3080:每次启动由操作系统分配一个随机端口,并生成一次性访问令牌。
- 所有 HTTP 请求与 WebSocket 升级都必须携带令牌(Electron 窗口自动带上
dsx-tokenCookie),否则一律 401/断开。 - 浏览器、curl、其他本地进程都无法再直接访问 DeepSeek Harness 的 Web UI 或 API——只有 DSX 窗口本身能访问。
- 随机端口每次启动都不同,不存在可猜测的固定入口。
构建与安装
npm ci
# Windows NSIS 安装包
npm run dist:win
# macOS DMG(当前机器架构)
npm run dist:mac
# 未打包目录,便于本地快速检查
npm run dist:dir
产物输出到 release/。
CI 自动打包
.github/workflows/build.yml 会在推送到 main、创建 v* 标签以及发起 Pull Request 时自动构建:
- Windows:NSIS 安装包(
windows-latest) - macOS:DMG(
macos-latest) - 打
v*标签时自动发布 GitHub Release
安装包使用固实 7z 最大压缩(-mx=9),并在打包时剔除 README、License、Source Map、TypeScript 声明、测试/示例/文档目录等非运行文件,尽量减小体积。
开发
npm install
npm start
启动后 DSH 会监听一个随机本地端口,DSX 自动加载 Web UI。关闭窗口只是隐藏;在托盘菜单中选择「退出 DSX」才会完全停止。
工作原理
DSX 把固定版本的 DSH 依赖闭包打包成 resources/dsh-runtime.asar,首次启动时解压到 Electron 用户数据目录并复用,之后启动无需联网下载。依赖闭包按 package-lock.json 精确复制,避免 Electron 打包器剪掉 DSH 动态加载的插件。
内置浏览器是挂在主窗口上的 WebContentsView 侧边面板;Cordis 插件负责在模型与浏览器之间通过 DSH 插件 IPC 转发命令。语音转写同样由插件后端直连多模态 API,浏览器页面只负责录音与展示结果。
数据位置
- DSH 主目录:
~/.dsh(与官方 CLI 共享) - Windows 日志:
%APPDATA%/DSX/logs/dsh.log - macOS 日志:
~/Library/Application Support/DSX/logs/dsh.log - 运行时缓存:Electron 用户数据目录(自动管理)
目录结构
src/ Electron 主进程与 preload
packages/dsx DSH Cordis 插件:AI 浏览器桥接 + 图片 OCR + 语音输入
scripts/ 构建、运行时准备与安装辅助脚本
build/ 打包资源(Windows / macOS 图标)
.github/workflows/ Windows / macOS / Release 自动构建