caob23/dsh-browser-control ↗★ 27

@caob23/dsh-browser-control

Local WebSocket bridge between dsh and the DSH Browser Control browser extension, with model-facing browser_* tools and a Settings-managed on/off switch 适合需要让DSH Agent执行自动化网页浏览和标签页控制任务的用户。

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

インストール

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

ドキュメント

README 全文を読む ↗

使用

  1. 装好即默认开启(v1.0.6+),不需要手动启用
  2. Chrome 扩展自动连接(端口 9777,Token 默认 dsh-local)
  3. 对话说自然语言,Agent 自动操控浏览器

「设置 → 插件」里有没有这张卡片,取决于宿主版本(issue #5)

npm 发布的 bundle 只含宿主侧 lib/index.js,没有浏览器端模块,所以卡片不是插件自己画的:

宿主设置页改配置的办法
dsh 0.1.7+ / 0.2.x(dsh-settings 0.1.7-rc.2 起)有——宿主按插件自身 Config schema 自动投影出这一节设置页,或 profile 覆盖层
dsh 0.1.2 及更早没有条目(没有客户端半区认领命名空间,宿主就不渲染)只能改 profile 覆盖层 $DSH_HOME/profiles//cordis.patch.yml

两边都能改的就是配置文件,写法见 dsh-config/README.md。

访问 http://127.0.0.1:9777/ 查看连接状态。

agent 开的标签长什么样(自动归进 DSH 分组)

Agent 新建的标签页会自动收进当前窗口的一个 DSH 蓝色标签分组里(每个窗口一组),所以你扫一眼就知道哪些页面是机器开的、哪些是自己开的,事后也能一把清掉:

  • browser_tabs action: "ungroup" 拆掉本窗口的组(带 windowId 只拆那一个窗口,不带则所有窗口)——只拆标签归属,不关标签。
  • browser_tabs action: "open" 加 group: false 可以显式让新标签留在组外;action: "group" 能把早就存在的散标签拉进来。
  • 归组是锦上添花:Chrome 版本太旧、权限没给、或刚建标签就被用户拖动导致失败时,开标签本身照常成功,结果里带 grouped: false 和原因。分组动作不改页面内容,重试安全。

用脚本直连 HTTP(curl 等)

/api/command 与 /api/cleanup 现在要求 Token,用的就是扩展连 WS 时那个值:

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

也可以写 ?token= 或 X-Token: 。不带、或带错,一律 401;/ 与 /api/status 仍是免鉴权的只读信息。之前「不带 Token 也能调通命令面」的行为已经失效(issue #3 / #6)。状态页上的清理按钮会要求你把 Token 输一次,只记在浏览器会话里。