
Coding Agent Loops
在持久tmux会话中运行AI编码代理(Codex、Claude Code),使用Ralph重试循环和完成钩子处理多步骤编码任务。
npm install -g agent-browser
agent-browser install
agent-browser install --with-deps
git clone https://github.com/vercel-labs/agent-browser
cd agent-browser
pnpm install
pnpm build
agent-browser install
agent-browser open ## 导航至页面
agent-browser snapshot -i ## 获取带引用(refs)的可交互元素
agent-browser click @e1 ## 通过引用点击元素
agent-browser fill @e2 "text" ## 通过引用向输入框填充文本
agent-browser close ## 关闭浏览器
agent-browser open
agent-browser snapshot -i(返回带引用(如 @e1、@e2)的可交互元素)agent-browser open ## 导航至指定 URL
agent-browser back ## 后退
agent-browser forward ## 前进
agent-browser reload ## 重新加载页面
agent-browser close ## 关闭浏览器
agent-browser snapshot ## 输出完整可访问性树(accessibility tree)
agent-browser snapshot -i ## 仅输出可交互元素(推荐使用)
agent-browser snapshot -c ## 精简输出格式
agent-browser snapshot -d 3 ## 限制树深度为 3
agent-browser snapshot -s "#main" ## 限定作用域为 CSS 选择器匹配的元素
@ref)agent-browser click @e1 ## 点击
agent-browser dblclick @e1 ## 双击
agent-browser focus @e1 ## 聚焦元素
agent-browser fill @e2 "text" ## 清空后输入文本
agent-browser type @e2 "text" ## 直接输入(不清空原有内容)
agent-browser press Enter ## 按下按键
agent-browser press Control+a ## 按下组合键
agent-browser keydown Shift ## 按住按键不放
agent-browser keyup Shift ## 释放按键
agent-browser hover @e1 ## 鼠标悬停
agent-browser check @e1 ## 勾选复选框
agent-browser uncheck @e1 ## 取消勾选复选框
agent-browser select @e1 "value" ## 从下拉框中选择值
agent-browser scroll down 500 ## 页面向下滚动 500 像素
agent-browser scrollintoview @e1 ## 将元素滚动至可视区域
agent-browser drag @e1 @e2 ## 拖拽并放置(drag and drop)
agent-browser upload @e1 file.pdf ## 上传文件
agent-browser get text @e1 ## 获取元素文本内容
agent-browser get html @e1 ## 获取 innerHTML
agent-browser get value @e1 ## 获取 input 元素当前值
agent-browser get attr @e1 href ## 获取指定属性(如 href)
agent-browser get title ## 获取页面标题
agent-browser get url ## 获取当前 URL
agent-browser get count ".item" ## 统计匹配 CSS 选择器的元素数量
agent-browser get box @e1 ## 获取元素边界框(bounding box)
agent-browser is visible @e1 ## 检查元素是否可见
agent-browser is enabled @e1 ## 检查元素是否启用
agent-browser is checked @e1 ## 检查复选框/单选框是否已选中
agent-browser screenshot ## 截图并输出至标准输出(stdout)
agent-browser screenshot path.png ## 保存截图至指定文件
agent-browser screenshot --full ## 截取整页(full page)
agent-browser pdf output.pdf ## 保存当前页面为 PDF 文件
agent-browser record start ./demo.webm ## 开始录制(自动使用当前 URL 和页面状态)
agent-browser click @e1 ## 执行操作
agent-browser record stop ## 停止录制并保存视频
agent-browser record restart ./take2.webm ## 停止当前录制并立即开始新录制
录制会创建一个全新上下文,但保留您当前会话中的 cookies 和 storage。若未指定 URL,录制将自动返回到当前页面。建议先探索页面流程,再开始录制以获得更流畅的演示效果。
agent-browser wait @e1 ## 等待元素出现
agent-browser wait 2000 ## 等待指定毫秒数
agent-browser wait --text "Success" ## 等待指定文本出现
agent-browser wait --url "/dashboard" ## 等待 URL 匹配指定路径
agent-browser wait --load networkidle ## 等待网络请求空闲(network idle)
agent-browser wait --fn "window.ready" ## 等待 JavaScript 条件满足(如全局变量 ready)
agent-browser mouse move 100 200 ## 移动鼠标至指定坐标(x, y)
agent-browser mouse down left ## 按下鼠标左键
agent-browser mouse up left ## 释放鼠标左键
agent-browser mouse wheel 100 ## 向上滚动鼠标滚轮 100 单位
agent-browser find role button click --name "Submit"
agent-browser find text "Sign In" click
agent-browser find label "Email" fill "[email protected]"
agent-browser find first ".item" click
agent-browser find nth 2 "a" text
agent-browser set viewport 1920 1080 ## 设置视口尺寸
agent-browser set device "iPhone 14" ## 模拟设备类型
agent-browser set geo 37.7749 -122.4194 ## 设置地理位置(经纬度)
agent-browser set offline on ## 启用离线模式
agent-browser set headers '{"X-Key":"v"}' ## 添加自定义 HTTP 请求头
agent-browser set credentials user pass ## 设置 HTTP Basic Auth 凭据
agent-browser set media dark ## 模拟深色主题(color scheme)
agent-browser cookies ## 获取全部 cookies
agent-browser cookies set name value ## 设置 cookie
agent-browser cookies clear ## 清空所有 cookies
agent-browser storage local ## 获取全部 localStorage 数据
agent-browser storage local key ## 获取指定 localStorage key 的值
agent-browser storage local set k v ## 设置 localStorage 中的键值对
agent-browser storage local clear ## 清空全部 localStorage 数据
agent-browser network route ## 拦截匹配该 URL 的请求
agent-browser network route --abort ## 阻止(abort)匹配该 URL 的请求
agent-browser network route --body '{}' ## 返回模拟响应体(mock response)
agent-browser network unroute [url] ## 移除已配置的路由规则
agent-browser network requests ## 查看已捕获的全部网络请求
agent-browser network requests --filter api ## 按关键词(如 "api")过滤请求
agent-browser tab ## 列出所有标签页
agent-browser tab new [url] ## 新建标签页(可选跳转至指定 URL)
agent-browser tab 2 ## 切换至第 2 个标签页
agent-browser tab close ## 关闭当前标签页
agent-browser window new ## 新建浏览器窗口
agent-browser frame "#iframe" ## 切入指定 iframe(通过 CSS 选择器)
agent-browser frame main ## 切回主文档(main frame)
agent-browser dialog accept [text] ## 接受(确认)对话框(可选填入文本)
agent-browser dialog dismiss ## 取消(关闭)对话框
agent-browser eval "document.title" ## 执行 JavaScript 表达式并输出结果
agent-browser state save auth.json ## 保存当前会话状态(含 cookies、storage 等)至文件
agent-browser state load auth.json ## 从文件加载并恢复会话状态
agent-browser open https://example.com/form
agent-browser snapshot -i
## 输出示例:文本框 "Email" [ref=e1],文本框 "Password" [ref=e2],按钮 "Submit" [ref=e3]
agent-browser fill @e1 "[email protected]"
agent-browser fill @e2 "password123"
agent-browser click @e3
agent-browser wait --load networkidle
agent-browser snapshot -i ## 检查提交结果
## 首次登录并保存状态
agent-browser open https://app.example.com/login
agent-browser snapshot -i
agent-browser fill @e1 "username"
agent-browser fill @e2 "password"
agent-browser click @e3
agent-browser wait --url "/dashboard"
agent-browser state save auth.json
## 后续会话:直接加载已保存状态
agent-browser state load auth.json
agent-browser open https://app.example.com/dashboard
agent-browser --session test1 open site-a.com
agent-browser --session test2 open site-b.com
agent-browser session list
添加 --json 参数以获取机器可读的 JSON 格式输出:
agent-browser snapshot -i --json
agent-browser get text @e1 --json
agent-browser open example.com --headed ## 显示浏览器窗口(GUI 模式)
agent-browser console ## 查看浏览器控制台日志
agent-browser console --clear ## 清空控制台日志
agent-browser errors ## 查看页面 JavaScript 错误
agent-browser errors --clear ## 清空错误日志
agent-browser highlight @e1 ## 高亮指定元素(便于定位)
agent-browser trace start ## 开始录制性能追踪(trace)
agent-browser trace stop trace.zip ## 停止追踪并保存为 ZIP 文件
agent-browser record start ./debug.webm ## 从当前页面开始录制视频
agent-browser record stop ## 停止录制并保存
agent-browser --cdp 9222 snapshot ## 通过 Chrome DevTools Protocol(CDP)端口连接并执行快照
bin 目录下的完整路径。snapshot 命令确认其引用(ref)是否正确。open 或其他导航命令后添加 wait 命令。--headed 参数启动浏览器以可视化调试过程。--session :使用隔离的独立会话(session)。--json:启用 JSON 格式输出。--full:截取整页(full-page)截图。--headed:显示图形化浏览器窗口。--timeout:设置单条命令超时时间(单位:毫秒)。--cdp :通过指定端口连接 Chrome DevTools Protocol。snapshot 以获取最新 refs。fill 而非 type,以确保已有内容被清空。|
1 |
|







