Browserbase Sessions Skill
Manage persistent cloud browser sessions via Browserbase. This skill creates browser sessions that preserve authentication (cookies, local storage) across interactions, automatically solve CAPTCHAs, and record sessions for later review.
First-Time Setup
Step 1 — Get your Browserbase credentials
- 1. Sign up at browserbase.com if you haven't already.
- Go to Settings → API Keys and copy your API key (starts with
bb_live_). - Go to Settings → Project and copy your Project ID (a UUID).
Step 2 — Install dependencies
CODEBLOCK0
Or with uv:
CODEBLOCK1
Step 3 — Set environment variables
CODEBLOCK2
Or configure via OpenClaw's skills.entries.browserbase-sessions.env in ~/.openclaw/openclaw.json.
Step 4 — Run the setup test
This validates everything end-to-end (credentials, SDK, Playwright, API connection, and a live smoke test):
CODEBLOCK3
You should see "status": "success" with all steps passing. If any step fails, the error message tells you exactly what to fix.
Defaults
Every session is created with these defaults to support research workflows:
- - Captcha solving: ON — Browserbase automatically solves CAPTCHAs so login flows and protected pages work without manual intervention. Disable with
--no-solve-captchas. - Session recording: ON — Every session is recorded as a video you can download later for review or sharing. Disable with
--no-record. - Auth persistence — Use contexts with
--persist to stay logged in across sessions.
Available Commands
All commands are run via the manager script:
CODEBLOCK4
Setup & Validation
Run the full setup test:
CODEBLOCK5
Context Management (for authentication persistence)
Create a named context to store login state:
CODEBLOCK6
List all saved contexts:
CODEBLOCK7
Delete a context (by name or ID):
CODEBLOCK8
Session Lifecycle
Create a new session (captcha solving and recording enabled by default):
CODEBLOCK9
List all sessions:
CODEBLOCK10
Get session details:
CODEBLOCK11
Terminate a session:
CODEBLOCK12
Browser Automation
Navigate to a URL:
CODEBLOCK13
Take a screenshot of the current page (without navigating):
CODEBLOCK14
Execute JavaScript:
CODEBLOCK15
Get cookies:
CODEBLOCK16
Recordings, Logs & Debug
Download a session recording video (session must be terminated first):
CODEBLOCK17
Get session logs:
CODEBLOCK18
Get the live debug URL (for visual inspection of a running session):
CODEBLOCK19
Common Workflows
Workflow 1: Multi-session research with persistent login
CODEBLOCK20
Workflow 2: Screenshot documentation
CODEBLOCK21
Workflow 3: Record and share a walkthrough
CODEBLOCK22
Important Notes
- - Captcha solving is ON by default. Browserbase handles CAPTCHAs automatically during login flows and page loads. Use
--no-solve-captchas to disable. - Recording is ON by default. Every session is recorded. Download with
get-recording after termination. Use --no-record to disable. - Connection timeout: 5 minutes to connect after creation before auto-termination.
- Keep-alive sessions survive disconnections and must be explicitly terminated.
- Context persistence: Wait a few seconds after
terminate-session --persist before creating a new session with the same context. - Named contexts: Use
--name with create-context to save friendly names (e.g. github, slack). Use the name anywhere a context ID is expected. - One context per site: Use separate contexts for different authenticated sites.
- Avoid concurrent sessions on the same context.
- Regions: us-west-2 (default), us-east-1, eu-central-1, ap-southeast-1.
- Session timeout: 60–21600 seconds (max 6 hours).
Error Handling
All commands return JSON output. On error, the output includes an "error" key. Common errors:
- -
APIConnectionError: Browserbase API unreachable - INLINECODE17 : Too many concurrent sessions for your plan
- INLINECODE18 : Invalid parameters or authentication failure
- Missing env vars: Set
BROWSERBASE_API_KEY and INLINECODE20
Reference
For full API details, read {baseDir}/references/api-quick-ref.md.
Browserbase Sessions 技能
通过Browserbase管理持久的云端浏览器会话。该技能可创建跨交互保留身份验证(Cookies、本地存储)的浏览器会话,自动解决验证码,并录制会话以供后续查看。
首次设置
步骤 1 — 获取您的 Browserbase 凭证
- 1. 如果尚未注册,请访问 browserbase.com 注册。
- 前往 设置 → API 密钥 并复制您的 API 密钥(以 bblive_ 开头)。
- 前往 设置 → 项目 并复制您的项目 ID(一个 UUID)。
步骤 2 — 安装依赖
bash
cd {baseDir}/scripts && pip install -r requirements.txt
playwright install chromium
或使用 uv:
bash
cd {baseDir}/scripts && uv pip install -r requirements.txt
uv run playwright install chromium
步骤 3 — 设置环境变量
bash
export BROWSERBASEAPIKEY=bbliveyourkeyhere
export BROWSERBASEPROJECTID=your-project-uuid-here
或通过 ~/.openclaw/openclaw.json 中的 skills.entries.browserbase-sessions.env 进行配置。
步骤 4 — 运行设置测试
这将端到端验证所有内容(凭证、SDK、Playwright、API 连接以及实时冒烟测试):
bash
python3 {baseDir}/scripts/browserbase_manager.py setup
您应看到 status: success 且所有步骤通过。如果任何步骤失败,错误消息会准确告诉您需要修复什么。
默认设置
每个会话都使用以下默认设置创建,以支持研究工作流程:
- - 验证码解决:开启 — Browserbase 自动解决验证码,使登录流程和受保护页面无需手动干预即可工作。使用 --no-solve-captchas 禁用。
- 会话录制:开启 — 每个会话都会录制为视频,您可以稍后下载查看或分享。使用 --no-record 禁用。
- 身份验证持久化 — 使用 --persist 的上下文可在会话间保持登录状态。
可用命令
所有命令均通过管理器脚本运行:
bash
python3 {baseDir}/scripts/browserbase_manager.py [options]
设置与验证
运行完整设置测试:
bash
python3 {baseDir}/scripts/browserbase_manager.py setup
上下文管理(用于身份验证持久化)
创建命名上下文以存储登录状态:
bash
python3 {baseDir}/scripts/browserbase_manager.py create-context --name github
列出所有已保存的上下文:
bash
python3 {baseDir}/scripts/browserbase_manager.py list-contexts
删除上下文(按名称或 ID):
bash
python3 {baseDir}/scripts/browserbase_manager.py delete-context --context-id github
会话生命周期
创建新会话(默认启用验证码解决和录制):
bash
基本会话
python3 {baseDir}/scripts/browserbase_manager.py create-session
使用已保存上下文的会话(persist=true 在关闭时保存 cookies)
python3 {baseDir}/scripts/browserbase_manager.py create-session --context-id github --persist
用于长时间研究的保活会话(可承受断连)
python3 {baseDir}/scripts/browserbase_manager.py create-session --context-id github --persist --keep-alive --timeout 3600
完整选项
python3 {baseDir}/scripts/browserbase_manager.py create-session \
--context-id github \
--persist \
--keep-alive \
--timeout 3600 \
--region us-west-2 \
--proxy \
--block-ads \
--viewport-width 1280 \
--viewport-height 720
列出所有会话:
bash
python3 {baseDir}/scripts/browserbase_manager.py list-sessions
python3 {baseDir}/scripts/browserbase_manager.py list-sessions --status RUNNING
获取会话详情:
bash
python3 {baseDir}/scripts/browserbase_manager.py get-session --session-id
终止会话:
bash
python3 {baseDir}/scripts/browserbase_manager.py terminate-session --session-id
浏览器自动化
导航到 URL:
bash
导航并获取页面标题
python3 {baseDir}/scripts/browserbase_manager.py navigate --session-id
--url https://example.com
导航并提取文本
python3 {baseDir}/scripts/browserbase_manager.py navigate --session-id --url https://example.com --extract-text
导航并保存截图
python3 {baseDir}/scripts/browserbase_manager.py navigate --session-id --url https://example.com --screenshot /tmp/page.png
导航并截取全页截图
python3 {baseDir}/scripts/browserbase_manager.py navigate --session-id --url https://example.com --screenshot /tmp/full.png --full-page
截取当前页面的截图(无需导航):
bash
python3 {baseDir}/scripts/browserbase_manager.py screenshot --session-id --output /tmp/current.png
python3 {baseDir}/scripts/browserbase_manager.py screenshot --session-id --output /tmp/full.png --full-page
执行 JavaScript:
bash
python3 {baseDir}/scripts/browserbase_manager.py execute-js --session-id --code document.title
获取 Cookies:
bash
python3 {baseDir}/scripts/browserbase_manager.py get-cookies --session-id
录制、日志与调试
下载会话录制视频(必须先终止会话):
bash
python3 {baseDir}/scripts/browserbase_manager.py get-recording --session-id --output /tmp/session.webm
获取会话日志:
bash
python3 {baseDir}/scripts/browserbase_manager.py get-logs --session-id
获取实时调试 URL(用于可视化检查运行中的会话):
bash
python3 {baseDir}/scripts/browserbase_manager.py live-url --session-id
常见工作流程
工作流程 1:带持久登录的多会话研究
bash
1. 一次性操作:为网站创建命名上下文
python3 {baseDir}/scripts/browserbase_manager.py create-context --name myapp
2. 启动研究会话(验证码自动解决,录制开启)
python3 {baseDir}/scripts/browserbase_manager.py create-session --context-id myapp --persist --keep-alive --timeout 3600
3. 导航到登录页面 — 验证码自动解决
python3 {baseDir}/scripts/browserbase_manager.py navigate --session-id --url https://myapp.com/login
使用 execute-js 填写表单并提交
4. 进行研究,截取截图
python3 {baseDir}/scripts/browserbase_manager.py navigate --session-id --url https://myapp.com/dashboard --extract-text
python3 {baseDir}/scripts/browserbase_manager.py screenshot --session-id --output /tmp/dashboard.png
5. 终止(cookies 保存到上下文)
python3 {baseDir}/scripts/browserbase_manager.py terminate-session --session-id
6. 下载录制内容以分享
python3 {baseDir}/scripts/browserbase_manager.py get-recording --session-id --output /tmp/research.webm
7. 第二天:新会话,已自动登录!
python3 {baseDir}/scripts/browserbase_manager.py create-session --context-id myapp --persist --keep-alive --timeout 3600
工作流程 2:截图文档
bash
python3 {baseDir}/scripts/browserbase_manager.py create-session
python3 {baseDir}/scripts/browserbasemanager.py navigate --session-id --url https://docs.example.com --screenshot /tmp/docshome.png
python3 {baseDir}/scripts/browserbasemanager.py navigate --session-id --url https://docs.example.com/api --screenshot /tmp/docsapi.png --full-page
python3 {baseDir}/scripts/browserbase_manager.py terminate-session --session-id
工作流程 3:录制并分享操作演示
bash
会话录制默认开启
python3 {baseDir}/scripts/browserbase_manager.py create-session --context-id myapp --persist
... 进行操作演示(导航、点击等)...
python3 {baseDir}/scripts/browserbase_manager.py terminate-session --session-id
下载视频
python3 {baseDir}/scripts/browserbase_manager.py get-recording --session-id --output /