Steel Browser

为 AI 应用提供可自托管的浏览器会话与网页操作 API。

Star 数
★ 7.9k
最近更新
2 天前
License
Apache-2.0
主语言
TypeScript

30 秒速览

运行形态
自托管服务网页应用
可在哪里用
通用 · 跨平台
费用
有免费版,另有付费云服务
上手难度
中 · 需要几步配置
开始前需要
DockerNode.jsGoogle ChromeShell / 命令行网络访问
典型场景
AI 应用开发者需要让网页研究流程保持登录态、Cookie 或本地存储时,可创建 /sessions 会话并用 Playwright 继续操作。
不适合
  • 需要完全离线、不能依赖外部云服务的团队
  • 需要稳定生产级 API 的团队,项目仍处于公开测试阶段
  • 只想用 Selenium 全部 CDP 会话功能的团队

这个 Agent 能做什么,适合哪些场景?

Steel Browser 是一个开源浏览器 API,用于构建需要实际访问网页的 AI 应用和自动化工具。它作为服务运行,负责管理 Chrome 浏览器进程、页面和会话状态,并通过 REST API 提供操作入口。复杂的有状态流程可通过 /sessions 创建浏览器会话,再使用 Puppeteer、Playwright 或 Selenium 连接到该会话。简单的只读任务可调用 /scrape、/screenshot 和 /pdf,分别获取网页 HTML、截图或 PDF。项目可使用预构建 Docker 镜像、Docker Compose 或 Node.js 本地运行,并在服务端口 3000 提供 UI 和 API。

服务启动后,客户端可向 POST /v1/sessions 发送 blockAds、proxyUrl、dimensions 或 isSelenium 等参数来创建浏览器会话。会话保存浏览器状态、Cookie 与本地存储;客户端随后以会话 ID 或根 URL,通过 Puppeteer、Playwright 或 Selenium 驱动浏览器。对于无需维持会话的任务,POST /v1/scrape 接收 url 和可选 delay 并提取网页 HTML,POST /v1/screenshot 接收 url 与 fullPage 并生成截图,POST /v1/pdf 接收 url 并返回网页 PDF。README 还说明服务支持代理链、自定义 Chrome 扩展、请求日志、会话调试 UI、隐身插件及指纹管理。

  1. AI 应用开发者需要让网页研究流程保持登录态、Cookie 或本地存储时,可创建 /sessions 会话并用 Playwright 继续操作。
  2. 已有 Puppeteer 自动化代码的团队希望把 Chrome 实例管理交给独立服务时,可连接 Steel 创建的浏览器会话。
  3. 维护 Selenium WebDriver 工作流的团队可用 isSelenium: true 创建兼容会话,但应先评估其功能限制。
  4. 需要按需抓取公开网页 HTML 的后端服务,可调用 /v1/scrape,并按需要设置 delay。
  5. 需要把指定网页保存为全页截图或 PDF 的工具,可分别调用 /v1/screenshot 与 /v1/pdf。

如何安装或部署这个 Agent?

最快的本地启动方式是运行:

docker run -p 3000:3000 -p 9223:9223 ghcr.io/steel-dev/steel-browser

服务在 http://localhost:3000 运行,UI 位于 http://localhost:3000/ui,9223 用于 console debugger。也可运行 docker compose up;在 Apple Silicon 上使用 DOCKER_DEFAULT_PLATFORM=linux/arm64 docker compose up。若使用 Node.js 直接运行,需已安装 Node.js 和 Chrome,然后执行 npm install 与 npm run dev;Chrome 必须位于 README 列出的系统路径之一,或设置 CHROME_EXECUTABLE_PATH。

如何使用这个 Agent?

启动服务后,可先创建一个会话:

curl -X POST http://localhost:3000/v1/sessions -H "Content-Type: application/json" -d '{"blockAds":true,"dimensions":{"width":1280,"height":800}}'

返回会话后,使用其 ID 或根 URL 通过 Puppeteer、Playwright 或 Selenium 连接。若只需抓取网页,可执行:

curl -X POST http://0.0.0.0:3000/v1/scrape -H "Content-Type: application/json" -d '{"url":"https://example.com","delay":1000}'

使用托管服务或自托管实例时,可在 Node SDK 的 baseURL 或 Python SDK 的 base_url 中替换服务地址。README 未说明 API 身份验证或 Steel Cloud 凭据的具体配置。

这个 Agent 有哪些优点和局限?

优点
  • 将浏览器进程、页面和会话生命周期集中到一个服务中,客户端无需自行管理这部分基础设施。
  • 同一会话接口可连接 Puppeteer、Playwright 和 Selenium,便于接入不同现有自动化栈。
  • 既支持长期状态化会话,也提供 /scrape、/screenshot、/pdf 三个直接的只读操作端点。
  • README 明确列出代理链、自定义扩展、会话调试 UI、请求日志以及资源自动清理等运行能力。
局限
  • 项目明确标注为 public beta,接口和行为仍可能持续演进。
  • 直接用 Node.js 运行时依赖已安装的 Chrome,且需要在指定路径或通过 CHROME_EXECUTABLE_PATH 找到可执行文件。
  • Selenium 集成明确不支持全部基于 CDP 的浏览器会话 API 功能。
  • README 没有给出 API 认证配置、Steel Cloud 定价或自托管资源需求的具体说明。

这个 Agent 与同类方案有什么区别?

Steel 不取代 Puppeteer、Playwright 或 Selenium 客户端;它提供受管理的浏览器会话,供这些工具连接。对只读单次任务,则可直接使用其 Quick Actions API,而无需建立客户端自动化连接。

与相关度最高的同类 agent 并排比较关键指标。

Agent 源码审查 形态 / 费用 Star 最近更新 主语言 完整支持的平台
Steel Browser 当前 29 · 缺口较多 自托管服务免费版 + 付费版 ★ 7.9k 2 天前 TypeScript —
Camofox Browser 52 · 缺口较多 自托管服务免费 ★ 12k 4 天前 JavaScript —
PinchTab 51 · 缺口较多 自托管服务免费 ★ 11k 1 个月前 Go —
CamoFox Browser Server 72 · 存在缺口 自托管服务免费 ★ 436 12 天前 JavaScript Claude Code

FollowAgents 如何评估这个 Agent?

FollowAgents 源码审查 · FARS-2.1
缺口较多
29/ 100 五分制 1.5 / 5
本评测基于 2026年8月9日 的源码;此后该项目发布了 2 个正式版本,尚未复审。分数与结论只代表评测时的版本。 最近版本 ↓
信任安全 0/29
可靠稳定 3/14
适用触发 8/18
规范维护 9/18
有效结果 7/13
证据核验 2/8
查看各维度的扣分理由
信任安全0 / 29 · 0.0/5

证据显示:仓库未提供权限模型、用户确认机制、数据流透明性、敏感数据处理、依赖安全审计、外部影响控制、回滚机制或来源归属的说明。README 提到代理支持和反检测,但未说明权限边界或数据使用。因此所有信任标准得分为 0。

可靠稳定3 / 14 · 1.1/5

证据显示:README 和 package.json 一致,但缺少错误处理文档。依赖锁定在 package.json 中,但未提供锁文件或完整性校验。因此 self_consistency 得 1,dependency_availability 得 1,failure_messages 得 0。

适用触发8 / 18 · 2.2/5

证据显示:README 明确目标用户为 AI 代理开发者,提供多种部署方式(Docker、Railway、Render)和本地运行说明,环境适配良好。但未明确能力边界(如支持的浏览器版本、限制),也未定义触发条件(如 API 调用方式)。因此 audience_and_scenarios 得 2,capability_boundaries 得 1,trigger_precision 得 0,environment_fit 得 2。

规范维护9 / 18 · 2.5/5

证据显示:README 结构清晰,提供安装说明、示例和许可证。但缺少变更日志、版本历史、已知限制的详细说明,维护责任未明确。因此 information_architecture 得 2,install_notes 得 2,naming_stability 得 1,examples_and_faq 得 2,known_limitations 得 1,license 得 2,versioning_changelog 得 1,maintenance_responsibility 得 1。

有效结果7 / 13 · 2.7/5

证据显示:README 提供多种输出格式(HTML、截图、PDF)和 SDK 支持,输出可用性高。边际价值明显(提供完整浏览器 API)。但成本效益未量化,未提供性能或资源消耗数据。因此 output_usability 得 2,marginal_value 得 2,cost_benefit 得 1。

证据核验2 / 8 · 1.3/5

证据显示:README 中的声明(如支持 Puppeteer、Playwright)未提供代码或测试证据,无法追溯。未提供独立来源验证。事实与推断未明确区分。因此 claim_traceability 得 1,cross_source_corroboration 得 0,fact_inference_separation 得 1。

风险与缓解建议
  • 源码中未见:最小权限约束只授予完成任务所需的权限:用专用账号或只读令牌,并限定可访问的目录和仓库。
  • 源码中未见:执行前用户确认开启或自行加上执行前确认;先在沙箱或测试环境跑通,确认行为后再接入真实数据。
  • 源码中未见:数据流向说明运行时观察它连接了哪些外部服务(代理或防火墙日志);弄清数据去向之前不要输入敏感数据。
  • 源码中未见:敏感信息处理使用专用、低权限、可随时吊销的 API 密钥,不要复用生产凭据,也不要让密钥出现在日志里。
  • 源码中未见:依赖安全审查安装前固定版本并做一次依赖扫描(如 npm audit、pip-audit);优先放在容器里运行。
  • 源码中未见:外部影响披露先弄清它会写入、发送或修改哪些外部系统,用测试账号或测试仓库验证后再接入正式环境。
  • 源码中未见:回滚或恢复路径运行前先备份,或在 git 分支、快照上操作,确保改动可以撤销。
  • 源码中未见:来源归属可核验从官方仓库或包源安装,核对发布者和仓库地址,避免同名仿冒包。
  • 未提供权限模型或用户确认机制,使用代理和反检测功能时需谨慎。
  • 依赖未提供锁文件,存在供应链风险。
  • 缺少错误处理文档,失败时可能难以排查。
  • 未明确能力边界,可能超出预期使用范围。
  • 未提供变更日志,版本升级可能不透明。
证据充分度:低 评估于 2026年8月9日 审查版本 5880b48c1af1 评估后仓库已有新提交,评分可能未覆盖最新改动
查看完整评分方法 →

最近版本

来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。

  1. v0.5.5-beta Release v0.5.5-beta
    发布说明摘录
    Improvements - [093760](https://github.com/steel-dev/steel-browser/commit/093760080bce572993bc26f91df7154992530af0): feat(docker): run API image under tini init (#386) (@Gourav224) - [cfedcb](https://github.com/steel-dev/steel-browser/commit/cfedcb083244aaa73c96fdf2ca1525e457a0b3fb): feat: commands api (#384) (@junhsss) - [f48b02](https://github.com/steel-dev/steel-browser/commit/f48b02e157e0f417875e266d68b81e0f0ab624d0): feat: overhaul the ui and live view streaming (#402) (@junhsss) Bug Fixes …
    在 GitHub 查看 ↗
  2. v0.5.4-beta Release v0.5.4-beta
    发布说明摘录
    Improvements - [3b2335](https://github.com/steel-dev/steel-browser/commit/3b2335ec8e001bafd496af095d7cffce574e34ab): feat: update chrome browser support for 146 + resolve extension installtion (#292) (@jagadeshjai) - [fc75fc](https://github.com/steel-dev/steel-browser/commit/fc75fcae871dc256553564abafbdbd54da1147d8): feat: log browser interactions (#281) (@junhsss) - [23fdf8](https://github.com/steel-dev/steel-browser/commit/23fdf852e66739c7013ecb22db38bde2e4310bcc): feat: migrate to mupdf (#304) (@junhsss) …
    在 GitHub 查看 ↗
  3. v0.5.3-beta Release v0.5.3-beta
    发布说明摘录
    Improvements - [8ccf2d](https://github.com/steel-dev/steel-browser/commit/8ccf2d453bb1c0516429ea89bf5d951905396ddc): feat: add onSessionStart/onBeforeSessionEnd/onAfterSessionEnd plugin hooks (#275) (@jagadeshjai) - [db9daa](https://github.com/steel-dev/steel-browser/commit/db9daa2c05ae1181716d51530927bd4fb04cdb8a): feat: add |fullscreen| option to open the browser in fullscreen mode (#290) (@jagadeshjai) Bug Fixes …
    在 GitHub 查看 ↗

常见问题

是否必须使用 Steel Cloud?
不必须。README 提供预构建 Docker 镜像、Docker Compose 和 Node.js 本地运行方式;Steel Cloud 被描述为最容易的入门方式。
能否继续使用现有的 Playwright、Puppeteer 或 Selenium 代码?
可以。会话可通过 Puppeteer 或 Playwright 连接;也可通过 isSelenium 创建 Selenium 会话,但该集成不支持全部 CDP 会话 API 功能。
一次性抓取任务要创建会话吗?
不一定。/v1/scrape、/v1/screenshot 和 /v1/pdf 用于简单、只读、按需任务。
本地运行需要什么?
可使用 Docker;直接用 Node.js 运行则需要 Node.js 与 Chrome,并确保 Chrome 位于支持路径或设置 CHROME_EXECUTABLE_PATH。
在 GitHub 查看 ↗ 安装 ↓

对比同类 Agent

用同一套 FARS 评审,横向比较这个 Agent 所属的短名单。

相关 Agents