集成
本地 HTTP API
每个 session 的 stream 端口都在 127.0.0.1 上提供版本化
HTTP 接口。接口接受 CLI 和 MCP 使用的同一份命令对象,自定义工具无需为
每个操作启动一个新进程。
获取端口
stream server 随 daemon 启动。先查询目标 session 的端口:
bash
PORT=$(chrome-use --session demo stream status --json | jq -r '.data.port')
ORIGIN="http://127.0.0.1:$PORT"
只读接口
| 接口 | 返回内容 |
|---|---|
GET /api/v1/status | daemon engine 与可用状态。 |
GET /api/v1/tabs | 最近观察到的 session 标签页。 |
GET /api/v1/sessions | 本机可发现的 sessions。 |
bash
curl -fsS "$ORIGIN/api/v1/status"
curl -fsS "$ORIGIN/api/v1/tabs"
执行命令
把 daemon 命令对象 POST 到 /api/v1/command,响应沿用
chrome-use 标准 envelope。
bash
curl -fsS -X POST "$ORIGIN/api/v1/command" \
-H "Origin: $ORIGIN" \
-H 'Content-Type: application/json' \
-d '{"id":"curl-1","action":"snapshot","interactive":true}'
命令字段与对应 CLI parser 产生的 JSON 一致。编写集成时,可先查看
chrome-use <command> --help 和命令参考。
安全边界
server 只监听 loopback。版本化只读请求必须使用 loopback
Host,且会拒绝来源不匹配的浏览器请求。会执行操作的命令
请求还必须携带 authority 与 Host 一致的 Origin 或
Referer。不满足条件的请求会收到 HTTP 403,且不会被
转发给 daemon。
错误契约
CLI JSON、MCP structured content 和 HTTP 共享以下失败字段:
| 字段 | 含义 |
|---|---|
success | 命令失败时为 false。 |
error | 面向人的错误说明。 |
code | 稳定的机器分类,例如 timeout 或 element_not_found。 |
retryable | 短暂恢复后重试是否可能成功。 |
json
{"success":false,"error":"Timeout waiting for download","code":"timeout","retryable":true}