dsh 浏览器助手
dsh-browser · 安 装 与 使 用
从本机 dsh、桥接插件到 Chrome 扩展,再到财务页面里的实际应用
这篇文章先不急着讲“我拿它做了什么”,而是把整个 dsh 浏览器助手安装过程完整走一遍。安装指南里有几个关键点很容易被跳过:桥接插件要注册到 dsh 的 web profile,Chrome 扩展要用“加载已解压”安装,扩展装好以后还必须重启 dsh web。少一步,最后都可能只看到“未连接”。
之前一篇《财务人的第二曲线》里我写过,工具不是主角,真正值得沉淀的是口径、流程和成果,dsh-browser 只是这套方法的一个具体练习。不论如何,学会利用 AI,已经是财务人面向未来的一项基本能力。
目 录
- 前提准备:四样东西缺一不可dsh / Node / pnpm / Chrome
- 安装 dsh-browser:推荐官方一键安装官方脚本
- 本地源码安装:需要联调时再用源码方式
- 在 Chrome 里加载扩展开发者模式
- 启动 dsh web,并验证桥接服务端口验证
- 连接与第一次使用侧边栏与动作
- 我整理的常见故障对照表排查清单
- 桥接接口速览:排查时再看接口与 token
- 安装完成后,我用它做了几个财务小案例实际应用
我下面按自己在 Windows 上的实际顺序记录,macOS / Linux 的命令也一并列出来。最后再放几个我在财务工作里用过的低风险案例。
dsh-browser 的安装不是只装一个 Chrome 扩展,而是把 dsh、桥接插件、扩展和本机端口接成一条链。

前提准备:四样东西缺一不可
开始前,我会先确认 dsh、Node.js、pnpm 和 Google Chrome 都在本机。Edge 和 Firefox 的扩展加载路径不同,下面这套步骤只针对 Chrome / Chromium。
1. 先安装 dsh,并确认 web profile 能启动
npm i -g @deepseek-ai/dsh
npx @deepseek-ai/dsh web
浏览器打开 http://127.0.0.1:3080,能看到 dsh web 页面,就说明基础服务已经起来了。这里的端口只是默认值,后面扩展会自动探测 3080 / 3081 / 3090 / 14389。
2. 安装 Node.js
指南要求 Node.js ^22.19.0 或 >=24,我建议直接装 24。Windows 下载 LTS 的 .msi 安装包,按默认选项安装后验证:
node -v
npm -v
3. 安装 pnpm
npm install -g pnpm
pnpm -v
Node 22 以上也可以启用 Corepack:
corepack enable
pnpm -v
我建议先做一次环境确认
不要直接跳到扩展安装。先确认 node -v、pnpm -v 和 npx @deepseek-ai/dsh web 都正常,后面排错会简单很多。
安装 dsh-browser:推荐官方一键安装
官方脚本会一次完成桥接插件构建、web profile 注册、Chrome 扩展构建和扩展目录就位。Windows PowerShell 按下面三步执行:
# 第 1 步:下载 Windows 安装脚本
Invoke-WebRequest -Uri "https://raw.githubusercontent.com/Lum1104/dsh-browser/refs/heads/main/scripts/install.ps1" -OutFile "install.ps1"
# 第 2 步:执行安装脚本
powershell -ExecutionPolicy Bypass -File install.ps1
# 第 3 步:安装完成后删除临时脚本(可选)
Remove-Item install.ps1
macOS / Linux 使用:
curl -fsSL https://raw.githubusercontent.com/Lum1104/dsh-browser/refs/heads/main/scripts/install.sh | bash
脚本实际做了四件事:
- 执行
pnpm install --frozen-lockfile,构建@yuxianglin/dsh-bridge-browser,生成lib/。 - 把桥接插件写入
~/.dsh/profiles/web/package.json的 bundles。 - 构建
dsh-browser-extension,产出扩展dist/。 - 把扩展同步到
~/.dsh/browser-extension,复制路径并打开chrome://extensions。

本地源码安装:需要联调时再用
如果我需要修改 dsh-browser 源码,或者想跟踪插件更新,会使用本地源码方式:
# 第 1 步:把 dsh-browser 源码克隆到本机 .dsh 目录
git clone https://github.com/Lum1104/dsh-browser $HOME\.dsh\dsh-browser
# 第 2 步:进入源码目录
cd $HOME\.dsh\dsh-browser
# 第 3 步:运行 Windows 安装脚本
.\scripts\install.ps1
# 第 4 步:启动本地桥接服务
cd $HOME\.dsh\dsh-browser; pnpm start
macOS / Linux 把最后两行换成:
./scripts/install.sh
cd ~/.dsh/dsh-browser && pnpm start
两种方式最终效果一致:桥接插件注册进 web profile,扩展放进 ~/.dsh/browser-extension。只是源码方式多了一个可以持续修改和重新构建的工作目录。
在 Chrome 里加载扩展
安装脚本打开 Chrome 扩展页后,我按这个顺序操作:
- 打开右上角的开发者模式。
- 点击加载已解压的扩展程序。
- 选择
C:\Users\你的用户名\.dsh\browser-extension。 - 看到“dsh 浏览器助手”卡片,就说明扩展加载成功。
升级或重装后,如果卡片还在,不需要删掉再装,点卡片上的重新加载即可。
这里最容易混淆
Chrome 扩展卡片出现,只代表前端扩展加载了,不代表 dsh 已经连通。连接状态要等下一步重启 dsh web 并验证桥接接口。
启动 dsh web,并验证桥接服务
桥接插件是在 dsh web 启动时加载的,所以安装或更新后必须重启:
cd $HOME\.dsh\dsh-browser; pnpm start
# 或者直接启动 dsh web
npx @deepseek-ai/dsh web
启动后用 PowerShell 验证桥接配置:
Invoke-WebRequest http://127.0.0.1:3080/ext/bridge-config -UseBasicParsing
返回内容里能看到 wsUrl,就说明扩展要连接的桥接接口已经准备好。若接口打不开,先检查 dsh web 是否仍在运行、端口是否被占用,以及桥接插件是否真的写进了 web profile。
连接与第一次使用
- 点击 Chrome 工具栏里的 DeepSeek 鲸鱼图标,打开侧边栏。
- 扩展会自动探测本机 dsh 的默认端口,不需要手填地址或 token。
- 状态从“未连接”变成“已连接”后,就可以让助手读取当前页面。
我第一次测试时会先让它做只读任务,例如“读取当前页面标题、列出表格列名、告诉我页面上有几个按钮”。确认页面快照和交互元素都能读到,再尝试点击、输入、滚动和导航。
它能调用的典型动作包括:
browser_snapshot / browser_click / browser_type / browser_press
browser_scroll / browser_navigate / browser_back / browser_forward
browser_reload / browser_get_text / browser_wait
我整理的常见故障对照表
| 现象 | 常见原因 | 我的处理方式 |
|---|---|---|
| 一直显示“未连接” | 桥接插件没构建到 lib/,或没注册到 profile bundles | 重新跑安装脚本,重启 dsh web,再重新加载扩展 |
ERR_PNPM_UNEXPECTED_STORE | profile 的 pnpm store 版本不一致 | 在 profile 中重新 pnpm install,或统一 store-dir |
| 打开的是 Edge / Firefox | 当前加载流程只针对 Chrome / Chromium | 改用 Google Chrome |
| 本地 link 开发模式失效 | 源码目录被移动或删除 | 重新 clone 到 ~/.dsh/dsh-browser,或改用一键安装 |
| 改代码不生效 | dsh web 只在启动时读取 profile bundles | 重启 dsh web,并在 chrome://extensions 点重新加载 |
桥接接口速览:排查时再看
- 发现桥接:
GET http://127.0.0.1:<port>/ext/bridge-config,返回包含wsUrl的 JSON。 - 桥接 WebSocket:
ws://127.0.0.1:<port>/ext/bridge,使用 token 认证,首帧必须是hello。 - token 文件:
~/.dsh/ext-bridge-token,首次启动时自动生成。
安装完成后,我用它做了几个财务小案例
安装跑通以后,我没有马上让它操作付款或审批,而是从只读、低风险的页面开始。
案例一:报销抽查
我让它打开指定单据,读取申请人、部门、金额、发票日期和附件状态,只列出缺附件、日期异常或金额超过阈值的单据。它输出页面证据,我再判断是否需要补证,避免把“疑点”直接写成“违规”。
案例二:月度费用核对
我把总账汇总作为已知结果,让它在费用系统按部门和月份查明细,列出可能造成差异的单据。它帮我定位跨期、待摊和漏记线索,最终的会计处理仍由我结合政策确认。
请只查询 2026 年 7 月的差旅费用,按部门汇总。
输出单据号、申请日期、发生日期、入账日期、含税金额、审批状态。
只标记异常,不要提交任何表单。
案例三:预算执行巡检
我每天让它打开预算执行页面,查看重点部门的累计执行率、剩余预算和最近一周新增申请。超过阈值就记录下来,之后再由我判断是采购提前、发票未入账,还是确实存在超支风险。
案例四:经营分析会前找证据
业务问毛利为什么下降时,我让它分别读取订单折扣、物料成本、退货和应收账龄页面,只整理相关字段。我再用自己的分析表拆价格、数量、结构和一次性因素,不让浏览器助手替我写未经验证的结论。
我给财务场景设的底线
- 单独使用一个 Chrome profile,不混用网银和管理员账号。
- 涉及工资、身份证号、银行账号和客户隐私时先脱敏。
- 付款、审批、驳回、删除和发送邮件只停在最后一步,由我亲自点击。
- 每次任务保留输入条件、页面证据、异常清单和人工结论。
对我来说,dsh-browser 最实用的价值不是替我做决定,而是替我完成那些需要反复翻页、查找和复制的动作。这也是我想和《财务人的第二曲线》呼应的地方:作品集不一定非要是一个大看板或完整系统,一个安装清楚、边界明确、能在费用核对和经营分析中稳定复用的小工具,同样可以成为财务人的数字化作品。
参考与延伸阅读
- DeepSeek Harness 官方介绍 —— 核对 DSH 的定位、开发者预览状态与插件化架构。
- Lum1104/dsh-browser —— 本文安装指南对应的浏览器桥接项目,包含官方脚本、扩展和桥接插件说明。
- dsh-anchored-standard 与 dsh-web-ui —— 了解工具面控制和 Web UI 扩展。
- ModLens、DSH-better-sidebar 与 Agent Vision Toolkit —— 了解视觉能力、侧边栏工作台和页面验证工具。
- dsh_workflow 与 dsh-agent-teams —— 了解可管理 Workflow 与临时多 Agent 协作。
社区插件和 DSH 版本仍在迭代,安装前请核对仓库维护状态、权限范围、依赖版本和真实数据边界。



