hisence999/dsh-browser ↗★ 0

dsh-browser

让 DeepSeek Harness 驱动你已登录的真实浏览器:本地 WebSocket 桥接 Chrome 扩展,自带 browser_* 工具、标签页归属与接管让出、无痕隔离实例,开关都在设置页

パッケージ
dsh-browser
互換性
未検証
Harness ピア範囲
0.2.0-rc.2 || >=0.1.0-rc.1 <0.3.0-0
Cordis ピア範囲
~4.0.4
バージョン
1.1.13
ライセンス
AGPL-3.0-only
最終更新
2026/11/06

同名パッケージの別リポジトリ

インストール

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:hisence999/dsh-browser

ドキュメント

README 全文を読む ↗

使用

装好之后直接用自然语言说话,Agent 自己挑工具。几条一眼就该知道的:

设置页:宿主是 dsh 0.1.7+ / 0.2.x 时,「设置 → 浏览器控制」里能看链路状态、改开关(只读档 / 脚本 / 懒加载 / 原生 CDP / 隔离实例 / 分组名 / AI 高亮 / 打开位置 / 焦点策略 / 用户接管),也能清理截图与临时文件。

输入框里 @ 你开着的标签页:在 dsh 输入框敲 @,除了宿主自带的文件与会话,还会多出一组「浏览器标签页」——只列你自己打开的、正常窗口里的网页。无痕窗口不列;AI 自己开出来的也不列,但判定看的是「这一页是不是 tabs.open 建的」,不是「归不归 AI 用」:你把某一页拖进 AI 那个标签组之后,它照样列得出来(那类页恰恰常是最想被引用的)。选中后插进消息的是一段普通文本 浏览器标签页「标题」 https://…,模型直接读得到那串 URL;点消息里这个引用会把那一页叫到前台(只读档下点不动——看得到不等于叫得动)。取数有 2 秒缓存,刚开的页最迟两秒后才出现。

AI 的标签长什么样:它新建的标签页会归进一个蓝色标签组(默认名 DSH,可配,留空 = 不分组;每次调用还能用 groupTitle 临时换个名字)。归属按组 id 认,不按名字——你自己建的组哪怕同名也不会被它占。默认它只关自己开的标签页,关你的必须显式 force。

你动手它就停:你在 AI 正在操作的那一页上真的点了/打了字/粘贴了,它在该页的写操作(含关掉这页)会被拒绝,错误码 yielded_to_user、零副作用。只是切过去看、或者滚页面,都不算接管。

隔离实例:browser_profile 能在无痕窗口里干活,独立 cookie 罐,退出即清,碰不到你的登录态。需要两道人工作可:插件配 allowIncognito: true + 浏览器扩展管理页允许本扩展在无痕/InPrivate 中运行。

只读档与脚本闸门:readOnly: true 会拦下所有会改页面的命令(零副作用);allowScript: false 另外关掉 browser_evaluate。两者只管模型那条工具面,HTTP 面靠 Token。

一键冻结:扩展弹窗里的「锁定」单击生效,此后扩展拒绝一切浏览器操作,但 WebSocket 照常——看到的是「连得上但被冻结」,不是掉线。解锁也只能在同一个弹窗里点。

HTTP 直连(不经过工具层):

curl -X POST http://127.0.0.1:9777/api/command \
  -H 'Authorization: Bearer dsh-local' \
  -H 'Content-Type: application/json' \
  -d '{"command":"nav","params":{"url":"https://example.com"}}'

Token 也可以写 ?token= 或 X-Token:;不带或带错一律 401。/ 与 /api/status 是免鉴权的只读信息。