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.
bb_live_).cd {baseDir}/scripts && pip install -r requirements.txt
playwright install chromium
Or with uv:
cd {baseDir}/scripts && uv pip install -r requirements.txt
uv run playwright install chromium
export BROWSERBASE_API_KEY="bb_live_your_key_here"
export BROWSERBASE_PROJECT_ID="your-project-uuid-here"
Or configure via OpenClaw's skills.entries.browserbase-sessions.env in ~/.openclaw/openclaw.json.
This validates everything end-to-end (credentials, SDK, Playwright, API connection, and a live smoke test):
python3 {baseDir}/scripts/browserbase_manager.py setup
You should see "status": "success" with all steps passing. If any step fails, the error message tells you exactly what to fix.
Every session is created with these defaults to support research workflows:
--no-solve-captchas.--no-record.--persist to stay logged in across sessions.All commands are run via the manager script:
python3 {baseDir}/scripts/browserbase_manager.py <command> [options]
Run the full setup test:
python3 {baseDir}/scripts/browserbase_manager.py setup
Create a named context to store login state:
python3 {baseDir}/scripts/browserbase_manager.py create-context --name github
List all saved contexts:
python3 {baseDir}/scripts/browserbase_manager.py list-contexts
Delete a context (by name or ID):
python3 {baseDir}/scripts/browserbase_manager.py delete-context --context-id github
Create a new session (captcha solving and recording enabled by default):
# Basic session
python3 {baseDir}/scripts/browserbase_manager.py create-session
# Session with saved context (persist=true saves cookies on close)
python3 {baseDir}/scripts/browserbase_manager.py create-session --context-id github --persist
# Keep-alive session for long research (survives disconnections)
python3 {baseDir}/scripts/browserbase_manager.py create-session --context-id github --persist --keep-alive --timeout 3600
# Full options
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
List all sessions:
python3 {baseDir}/scripts/browserbase_manager.py list-sessions
python3 {baseDir}/scripts/browserbase_manager.py list-sessions --status RUNNING
Get session details:
python3 {baseDir}/scripts/browserbase_manager.py get-session --session-id <id>
Terminate a session:
python3 {baseDir}/scripts/browserbase_manager.py terminate-session --session-id <id>
Navigate to a URL:
# Navigate and get page title
python3 {baseDir}/scripts/browserbase_manager.py navigate --session-id <id> --url "https://example.com"
# Navigate and extract text
python3 {baseDir}/scripts/browserbase_manager.py navigate --session-id <id> --url "https://example.com" --extract-text
# Navigate and save screenshot
python3 {baseDir}/scripts/browserbase_manager.py navigate --session-id <id> --url "https://example.com" --screenshot /tmp/page.png
# Navigate and take full-page screenshot
python3 {baseDir}/scripts/browserbase_manager.py navigate --session-id <id> --url "https://example.com" --screenshot /tmp/full.png --full-page
Take a screenshot of the current page (without navigating):
python3 {baseDir}/scripts/browserbase_manager.py screenshot --session-id <id> --output /tmp/current.png
python3 {baseDir}/scripts/browserbase_manager.py screenshot --session-id <id> --output /tmp/full.png --full-page
Execute JavaScript:
python3 {baseDir}/scripts/browserbase_manager.py execute-js --session-id <id> --code "document.title"
Get cookies:
python3 {baseDir}/scripts/browserbase_manager.py get-cookies --session-id <id>
Download a session recording video (session must be terminated first):
python3 {baseDir}/scripts/browserbase_manager.py get-recording --session-id <id> --output /tmp/session.webm
Get session logs:
python3 {baseDir}/scripts/browserbase_manager.py get-logs --session-id <id>
Get the live debug URL (for visual inspection of a running session):
python3 {baseDir}/scripts/browserbase_manager.py live-url --session-id <id>
# 1. One-time: create a named context for the site
python3 {baseDir}/scripts/browserbase_manager.py create-context --name myapp
# 2. Start a research session (captchas auto-solved, recording on)
python3 {baseDir}/scripts/browserbase_manager.py create-session --context-id myapp --persist --keep-alive --timeout 3600
# 3. Navigate to login — captchas solved automatically
python3 {baseDir}/scripts/browserbase_manager.py navigate --session-id <id> --url "https://myapp.com/login"
# Use execute-js to fill forms and submit
# 4. Do research, take screenshots
python3 {baseDir}/scripts/browserbase_manager.py navigate --session-id <id> --url "https://myapp.com/dashboard" --extract-text
python3 {baseDir}/scripts/browserbase_manager.py screenshot --session-id <id> --output /tmp/dashboard.png
# 5. Terminate (cookies saved to context)
python3 {baseDir}/scripts/browserbase_manager.py terminate-session --session-id <id>
# 6. Download recording to share
python3 {baseDir}/scripts/browserbase_manager.py get-recording --session-id <id> --output /tmp/research.webm
# 7. Next day: new session, already logged in!
python3 {baseDir}/scripts/browserbase_manager.py create-session --context-id myapp --persist --keep-alive --timeout 3600
python3 {baseDir}/scripts/browserbase_manager.py create-session
python3 {baseDir}/scripts/browserbase_manager.py navigate --session-id <id> --url "https://docs.example.com" --screenshot /tmp/docs_home.png
python3 {baseDir}/scripts/browserbase_manager.py navigate --session-id <id> --url "https://docs.example.com/api" --screenshot /tmp/docs_api.png --full-page
python3 {baseDir}/scripts/browserbase_manager.py terminate-session --session-id <id>
# Session recording is ON by default
python3 {baseDir}/scripts/browserbase_manager.py create-session --context-id myapp --persist
# ... do your walkthrough (navigate, click, etc.) ...
python3 {baseDir}/scripts/browserbase_manager.py terminate-session --session-id <id>
# Download the video
python3 {baseDir}/scripts/browserbase_manager.py get-recording --session-id <id> --output /tmp/walkthrough.webm
--no-solve-captchas to disable.get-recording after termination. Use --no-record to disable.terminate-session --persist before creating a new session with the same context.--name with create-context to save friendly names (e.g. github, slack). Use the name anywhere a context ID is expected.All commands return JSON output. On error, the output includes an "error" key. Common errors:
APIConnectionError: Browserbase API unreachableRateLimitError: Too many concurrent sessions for your planAPIStatusError: Invalid parameters or authentication failureBROWSERBASE_API_KEY and BROWSERBASE_PROJECT_IDFor full API details, read {baseDir}/references/api-quick-ref.md.
共 1 个版本