Overview
Browser control provides:- Multi-profile management - Run multiple isolated browser sessions
- Remote browser support - Connect to Browserless, external Chrome, etc.
- Playwright integration - Full CDP (Chrome DevTools Protocol) access
- Extension relay - Browser extension-based control for certain profiles
- Snapshot & interaction - Take page snapshots, click, type, navigate
Architecture
Browser control runs as an HTTP server (src/browser/server.ts:21):- Control Server - REST API for browser operations (src/browser/server.ts)
- Profile Manager - Manages browser profiles and state (src/browser/profiles.ts)
- Playwright Bridge - CDP connection and page control (src/browser/pw-session.ts)
- Extension Relay - WebSocket bridge for browser extensions (src/browser/extension-relay.ts)
Configuration
Browser Profiles
Profiles are isolated browser instances with separate:- User data directory (
~/.simpleclaw/browser/<profile>) - CDP port
- Extension state
- Cookies, storage, history
Profile Operations
Creating Profiles
Deleting Profiles
Browser Operations
Fromsrc/browser/client.ts, the control API provides:
Status
Tabs
Snapshots
Capture page accessibility tree or AI-optimized snapshot:Actions
Interact with page elements:click- Click element by reffill- Fill input/textareapress- Press keyboard keynavigate- Navigate to URLscroll- Scroll to element or positionhover- Hover over elementscreenshot- Take screenshot
Playwright Integration
Browser control uses Playwright under the hood (src/browser/pw-session.ts):CDP Endpoints
Extension Relay
For profiles withdriver: extension, SimpleClaw provides a WebSocket relay (src/browser/extension-relay.ts):
--remote-debugging-port (e.g., some Firefox builds, Safari).
Authentication
Browser control server supports token or password auth (src/browser/control-auth.ts):Remote Browsers
Browserless Cloud
Self-hosted Chrome
Storage & State
Browser profiles persist state to disk:Storage Operations
~/.simpleclaw/browser/<profile>/storage/<key>.json
Screenshots
Capture full page or element screenshots:path- Save locationfullPage- Capture entire scrollable pageclip- Crop to specific regiontype- png or jpeg
Troubleshooting
Browser won’t start? Check logs:API Reference
Key files insrc/browser/:
server.ts- Main HTTP server (src/browser/server.ts:21)client.ts- TypeScript client library (src/browser/client.ts:1)routes/agent.ts- Agent interaction routesroutes/agent.act.ts- Page action handlersroutes/agent.snapshot.ts- Snapshot generationpw-session.ts- Playwright session managementprofiles.ts- Profile configurationextension-relay.ts- Extension WebSocket relay