surfagent-browser
Control a real Chrome browser from your AI agent — navigate, click, type, fill forms, extract content, manage tabs, and automate workflows via SurfAgent's REST API.
Install via CLI (Recommended)
clawhub install openclaw/skills/skills/agentossoftware/surfagent-browserSurfAgent Browser Control — Agent Skill
Give your AI agent a real Chrome browser. Navigate, click, type, extract, and automate — all through a local REST API.
What This Is
SurfAgent runs a real Chrome browser on your desktop that your AI agent controls via a REST API (port 7201). Not headless. Not spoofed. A genuine Chrome with persistent cookies, real sessions, and a real fingerprint that passes bot detection.
Key difference from headless browsers: SurfAgent's Chrome passes hCaptcha, Cloudflare, Discord registration, and other bot detection that headless browsers fail. Your agent browses like a human.
Architecture
SurfAgent Daemon (port 7201)
└── REST API → Chrome DevTools Protocol → Real Chrome (port 9222)
All requests go to http://localhost:7201 with Bearer auth token.
Quick Start
Check if SurfAgent is running
curl -s http://localhost:7201/health | jq .
Open a page
curl -s -X POST http://localhost:7201/browser/open \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer YOUR_TOKEN' \
-d '{"url": "https://github.com"}'
Get page state
curl -s -X POST http://localhost:7201/browser/state \
-H 'Authorization: Bearer YOUR_TOKEN' | jq .
Core API Reference
Navigation
POST /browser/open — Open URL in new tab
{ "url": "https://example.com" }
Returns: { ok, tabId, title, url }
POST /browser/navigate — Navigate current tab
{ "url": "https://example.com", "tabId": "optional" }
Returns: { ok, tabId, title, url }
POST /browser/back / POST /browser/forward — History navigation
{ "tabId": "optional" }
POST /browser/reload — Reload page
{ "tabId": "optional", "ignoreCache": false }
Interaction
POST /browser/click — Click an element
{
"selector": "#submit-btn",
"tabId": "optional",
"button": "left",
"clickCount": 1
}
Also supports clicking by coordinates:
{ "x": 500, "y": 300 }
POST /browser/type — Type text (key by key)
{
"selector": "#search-input",
"text": "hello world",
"tabId": "optional",
"delay": 50
}
POST /browser/fill — Set input value directly
{
"selector": "#email",
"value": "[email protected]",
"tabId": "optional"
}
React/Vue form fields: Use
/browser/fillwithdispatchEvents: true. Direct.value =assignment won't trigger React's state updates.
POST /browser/select — Select dropdown option
{
"selector": "#country",
"value": "US",
"tabId": "optional"
}
POST /browser/hover — Hover over element
{ "selector": ".menu-trigger", "tabId": "optional" }
POST /browser/scroll — Scroll the page
{
"tabId": "optional",
"direction": "down",
"amount": 500,
"selector": "optional-scroll-container"
}
Direction: up, down, left, right
Metadata
Not sure this is the right skill?
Describe what you want to build — we'll match you to the best skill from 16,000+ options.
Find the right skillPaste this into your clawhub.json to enable this plugin.
{
"plugins": {
"official-agentossoftware-surfagent-browser": {
"enabled": true,
"auto_update": true
}
}
}Related Skills
surfagent-perception
Agent vision for web pages — scene summaries, attention-ranked elements, annotated screenshots, and state diffing via SurfAgent's perception engine.
Agentos
Skill by agentossoftware
surfagent
Control a real Chrome browser via SurfAgent — navigate, click, type, screenshot, extract data, crawl sites, and automate web workflows. Uses your persistent Chrome profile with real cookies and sessions. Works through SurfAgent's MCP server or direct HTTP API.
Agentos Sdk
Skill by agentossoftware
Agentos Mesh
Skill by agentossoftware