Opensteer

让 AI 智能体通过简短 Python 命令操控本地或云端浏览器。

Star 数
★ 203
最近更新
2 个月前
License
MIT
主语言
Python

30 秒速览

运行形态
命令行工具代码库 / SDK开发框架
可在哪里用
通用 · 跨平台
费用
免费,无需付费服务
上手难度
低 · 几分钟可跑通
开始前需要
Chrome 或 EdgeOPENSTEER_API_KEY(用于 Opensteer Cloud)Shell / 命令行网络访问本地文件系统
典型场景
需要让 AI 智能体在 Chrome 或 Edge 中导航、点击、输入并读取页面状态的自动化开发者。
不适合
  • 不能允许智能体执行本地 Python 或 JavaScript 的团队
  • 希望无 API 密钥使用 Opensteer Cloud 的用户
  • 要求读取操作自动创建云端浏览器的工作流

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

Opensteer 是一个浏览器自动化框架,为 AI 智能体提供精简的 Python 命令接口以及可直接导入的辅助函数。它负责 CDP 通信、本地及云端浏览器连接、命名会话、标签页、截图、JavaScript 执行、点击、输入和滚动等底层能力。用户可通过 `opensteer -c` 执行短脚本,也可从 `opensteer.helpers` 导入函数编写可复用代码。项目目录则作为专用 harness,容纳 `AGENTS.md`、选择器、数据、API 客户端和自定义 Python 函数,使通用浏览器能力适配具体业务流程。它可以连接本地 Chrome 或 Edge,也能在配置 `OPENSTEER_API_KEY` 后连接 Opensteer Cloud 浏览器;浏览器传输位置与会话创建行为均可显式控制。

典型流程从 opensteer -c 执行 Python 片段开始:通过 open_browser()、use_browser() 或 list_browsers() 创建、选择或查看浏览器,随后用 new_tab() 和 wait_for_load() 打开并等待页面。智能体可调用 page_info() 检查页面,使用 goto_url()、click_at_xy()、type_text()、滚动及标签页操作与页面交互,也可通过 js() 执行 JavaScript、调用原始 CDP 方法或捕获截图。多个浏览器同时运行时,代码保留 open_browser() 返回的句柄,并通过可读标签区分会话。对于专用工作流,当前目录中的 tools.py、selectors.py、数据文件和 Markdown 指令提供领域逻辑,命令可直接导入这些本地模块并输出函数返回值、页面信息或截图。执行边界可选本地应用中的 auto、inapp、local 或 cloud;云端执行仅支持 auto 和 cloud。

  1. 需要让 AI 智能体在 Chrome 或 Edge 中导航、点击、输入并读取页面状态的自动化开发者。
  2. 为客服系统构建专用 harness 的团队,可将客户页面操作封装在 tools.py 中。
  3. 需要通过 JavaScript、截图和原始 CDP 方法检查网页行为的 QA 或浏览器测试团队。
  4. 希望用命名会话分别保持研究、工作或不同网站浏览器上下文的多任务智能体开发者。
  5. 需要让多个销售、数据录入或研究工作流共享浏览器底层能力,同时各自维护选择器和数据的团队。

如何安装或部署这个 Agent?

在 shell 中运行官方安装脚本:

curl -fsSL https://opensteer.com/install.sh | sh

安装后执行诊断,并尝试读取当前页面:

opensteer --doctor
opensteer -c "print(page_info())"

如果本地浏览器尚未允许远程调试,运行设置向导;它会引导 Chrome 或 Edge 为当前配置文件启用远程调试:

opensteer --setup

只有使用 Opensteer Cloud 浏览器时才需要配置 OPENSTEER_API_KEY;来源没有提供该变量的具体赋值命令。

如何使用这个 Agent?

打开网页、等待加载并打印页面信息:

opensteer -c "new_tab('https://example.com'); wait_for_load(); print(page_info())"

在可复用 Python 代码中导入浏览器辅助函数:

from opensteer.helpers import goto_url, js, click_at_xy, type_text, wait_for_load

同时使用多个浏览器时,保存返回的句柄:

opensteer -c "linkedin = open_browser(label='linkedin', profile='fresh'); linkedin.new_tab('https://linkedin.com')"

配置 OPENSTEER_API_KEY 后,可以创建或连接云端浏览器:

opensteer -c "open_browser(label='research', profile='fresh'); new_tab('https://example.com')"
opensteer -c "browser = open_browser(label='work', profileId='bp_...'); print(browser.page_info())"

若只想查看或选择现有浏览器而不新建会话:

opensteer -c "print(list_browsers())"
opensteer -c "research = use_browser('research'); research.new_tab('https://example.com')"

本地执行的智能体也可以明确请求云端浏览器:

opensteer -c "open_browser(label='research', profile='fresh', location='cloud')"

专用 harness 可在工作目录中定义函数并由 CLI 直接导入:

# tools.py
from opensteer.helpers import goto_url, js, type_text, wait_for_load


def open_customer(customer_id):
    goto_url(f"https://support.example.com/customers/{customer_id}")
    wait_for_load()
    return js("document.title")
cd support-harness
opensteer -c "from tools import open_customer; print(open_customer('cus_123'))"

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

优点
  • 同一套辅助函数覆盖 CDP、本地与云端连接、会话、截图、JavaScript 和常见页面交互,减少自行搭建浏览器桥接层的工作。
  • 既提供适合短任务的 opensteer -c,也允许从 opensteer.helpers 导入函数,便于从实验脚本过渡到可复用代码。
  • 浏览器层与工作流层明确分离:通用传输和交互由 Opensteer 负责,站点选择器、数据及业务函数保留在项目目录。
  • 命名浏览器与显式句柄支持同时管理多个浏览器,会话复用与新建行为也可通过 mode 控制。
局限
  • 本地连接依赖 Chrome 或 Edge 的远程调试配置;无法直接连接时需要额外运行 opensteer --setup。
  • 云端浏览器需要 OPENSTEER_API_KEY,且云端执行不接受设备专用位置,只支持 auto 和 cloud。
  • 专用自动化不会开箱即用;采用者仍需自行维护 AGENTS.md、选择器、数据文件和业务函数。
  • 该接口允许执行 Python、页面 JavaScript 和原始 CDP 调用,部署方必须自行管理这些高权限能力的执行边界。
  • 来源未说明支持哪些 AI 模型平台,也未提供 ChatGPT、Codex、Claude 或其 API 的原生适配证据。

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

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

Agent 源码审查 形态 / 费用 Star 最近更新 主语言 完整支持的平台
Opensteer 当前 49 · 缺口较多 命令行工具免费 ★ 203 2 个月前 Python —
Obscura 无头浏览器 75 · 表现良好 命令行工具免费 ★ 28k 2 天前 Rust Claude.ai
Open Browser 47 · 缺口较多 命令行工具免费 + 模型费 ★ 9.6k 6 个月前 TypeScript ChatGPT · Claude.ai · OpenAI API · Claude API
Browser4 智能浏览器自动化 47 · 缺口较多 命令行工具免费 + 模型费 ★ 1.1k 2 天前 Kotlin OpenAI API

FollowAgents 如何评估这个 Agent?

FollowAgents 源码审查 · FARS-2.1
缺口较多
49/ 100 五分制 2.5 / 5
信任安全 8/29
可靠稳定 8/14
适用触发 12/18
规范维护 10/18
有效结果 7/13
证据核验 4/8
查看各维度的扣分理由
信任安全8 / 29 · 1.4/5

传输位置和会话创建在部分场景中需要显式选择,严格云环境中的只读助手也不会隐式配置浏览器,因此最小权限获得少量支持;但框架允许任意 Python、JavaScript、原始 CDP、点击和输入,未见权限细分、域名限制或执行前确认机制。README 区分本地与云端浏览器并说明 API 密钥配置,但没有完整说明截图、页面内容、凭据及遥测的数据流、存储和保留方式,也没有密钥保护或脱敏指南。运行时依赖固定到具体版本,发布工作流使用受限权限和 OIDC,但未展示漏洞扫描、依赖审计或更新政策。外部写操作能力被明确列出,却没有副作用分级、确认门或回滚方案。MIT 文件提供了项目级归属,但发布者身份仍无法由材料核验。

可靠稳定8 / 14 · 2.9/5

README、包元数据、命令入口及版本信息总体一致,安装、诊断和浏览器控制叙述能够形成连贯产品;但材料未包含实现代码或测试结果,故不能给满分。依赖名称、固定版本、Python 版本要求和构建后端均已声明,普通安装具备可解析基础;然而 curl 管道安装器的内容及服务可用性无法从材料验证。`--doctor`、`--setup` 和不支持位置会被拒绝提供了基础故障路径,但没有错误目录、恢复步骤或具体失败消息示例。

适用触发12 / 18 · 3.3/5

材料明确面向需要浏览器控制、研究、销售、QA、客服和数据录入工作流的代理,并展示项目专用 harness 的扩展方式;场景覆盖充分但不是完整操作指南。浏览器层与工作流层、本地与云端传输以及支持的位置被清楚区分,不过任意 Python、JavaScript 和 CDP 的安全边界未进一步约束。操作由显式 CLI/Python 调用触发,`reuse` 为默认模式且 `new` 表示有意新建会话;但没有更细的动作策略或歧义处理。Python 3.11、本地 Chrome/Edge、云密钥和设置命令均有说明,仍缺少操作系统兼容矩阵、无头环境要求及网络前提。

规范维护10 / 18 · 2.8/5

README 按安装、能力、专用 harness、职责划分和验证组织,信息结构清晰,但缺少完整 API 参考和故障排查。安装仅给出远程脚本管道命令,没有校验、卸载、虚拟环境或平台先决条件,因此较薄。包名、CLI、入口点和示例 API 一致,版本也明确,但没有兼容性或弃用承诺。示例覆盖常见浏览器及扩展流程,却没有 FAQ。能力边界有所记录,但已知限制、安全限制和云端约束并未系统汇总。MIT 文本完整,因而许可证满分。项目有语义化版本字段和校验发布标签的流程,但没有变更日志或迁移说明。版权主体和发布流程可见,维护者、支持渠道、责任人及更新承诺不明。

有效结果7 / 13 · 2.7/5

短 Python 命令、可导入助手、命名浏览器和 harness 模式能产出可直接用于自动化的结果,验证命令也提升可用性;但缺少结构化输出约定、端到端成果示例和错误恢复说明。相较自行搭建 CDP 桥接层,该项目整合本地/云端附加、会话、截图和交互助手,显示出实际增量价值;不过材料没有比较证据或实现细节。命令表面较小且复用性良好,但云端费用、资源消耗、延迟、安装风险和维护成本均未披露,因此成本收益只能获得有限分数。

证据核验4 / 8 · 2.5/5

主要能力声明由命令示例支持,但未提供实现文件、API 文档或测试材料来逐项追踪,故可追溯性较弱。README 中的包名、Python 要求和 CLI 与 pyproject 一致,版本发布由工作流交叉支持;云功能和浏览器行为则没有独立文件佐证。文本通常把产品主张直接陈述为事实,没有标示哪些是设计目标、限制条件或已验证事实,因此事实与推断分离不足。

风险与缓解建议
  • 源码中未见:执行前用户确认开启或自行加上执行前确认;先在沙箱或测试环境跑通,确认行为后再接入真实数据。
  • 源码中未见:回滚或恢复路径运行前先备份,或在 git 分支、快照上操作,确保改动可以撤销。
  • 安装方式会把网络获取的脚本直接交给 shell;使用前应固定并审查安装脚本内容或改用可校验的软件包。
  • 该框架能够执行任意 Python、页面 JavaScript、原始 CDP、点击和输入;应在隔离配置文件及低权限环境中运行,并对有副作用的动作增加人工确认。
  • 不要在缺少额外数据处理说明时假定页面内容、截图、浏览器配置文件或 `OPENSTEER_API_KEY` 的存储、传输和保留方式安全。
  • 未提供回滚机制、系统化已知限制、变更日志、漏洞扫描证据或完整故障恢复指南。
证据充分度:低 评估于 2026年10月5日 审查版本 e8ebf8c3ce00
查看完整评分方法 →

常见问题

必须使用 Opensteer Cloud 吗?
不必须。Opensteer 可以连接本地 Chrome 或 Edge;云端浏览器是配置 OPENSTEER_API_KEY 后可用的另一种路径。
读取页面信息会自动创建浏览器吗?
在严格的云端智能体环境中不会。来源明确说明读取辅助函数不会隐式配置浏览器,应先使用 open_browser(),或用 use_browser() 选择现有会话。
mode='reuse' 和 mode='new' 有什么区别?
reuse 是安全默认值,用于复用逻辑会话;new 会有意创建另一个逻辑会话。可读标签用于识别浏览器,云端会话 ID 和运行范围由平台管理。
如何处理多个业务网站或流程?
可以为每种工作流建立独立 harness,并在目录中维护相应的 Markdown 指令、选择器、数据、API 客户端和 Python 函数,同时共享 Opensteer 的浏览器原语。
项目是否记录了托管服务价格?
没有。仓库采用 MIT 许可证并支持本地浏览器,但来源未给出 Opensteer Cloud 的价格信息。
在 GitHub 查看 ↗ 安装 ↓

相关 Agents