open-browser
Browser automation via Playwright MCP (official Microsoft headless browser)
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
Browser automation via Playwright MCP (official Microsoft headless browser)
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
Image generation and manipulation via MCP
PDF parsing and extraction via MCP
Autonomous tool discovery, evaluation, and integration for agent self-enhancement
Route OpenOS tasks to the correct product skill.
Enrich CRM contacts with LinkedIn and décideur data.
CRM read + staged follow-up via orchestrator approval.
| name | open-browser |
| description | Browser automation via Playwright MCP (official Microsoft headless browser) |
| version | 1.0.0 |
| metadata | {"tags":["browser","automation","scraping","web","playwright","mcp"],"category":"automation","related_skills":["computer-use","open-code"]} |
Automate web interactions using Playwright, the official Microsoft headless browser with native MCP server support. Playwright provides robust browser automation with multi-browser support (Chromium, Firefox, WebKit).
computer-use skill)open-code skill)docker-compose.mesh.yml includes playwright-mcp)http://playwright-mcp:3100 (container) or http://localhost:3100 (host)browser_automation capabilityOpenOrchestrator (plan with browser step)
→ OpenAgents (browser-automation profile)
→ MCP call to playwright-mcp-server
→ Playwright container (headless browser)
→ Results → OpenRec (audit) → OpenBrain (observation)
browser_navigate(url: string, waitUntil?: "load" | "domcontentloaded" | "networkidle")
Navigate to URL and wait for specified state.
browser_click(selector: string)
Click element matching CSS selector.
browser_fill(selector: string, value: string)
Fill input field with value (triggers change events).
browser_type(selector: string, text: string)
Type text into input field character by character.
browser_press_key(key: string, selector?: string)
Press keyboard key (optionally targeting specific element).
browser_select_option(selector: string, value: string)
Select dropdown option by value or text.
browser_snapshot()
Returns: { url, title, text } - current page location, title, and text content.
browser_evaluate(script: string)
Execute JavaScript in page context, returns result.
browser_wait_for(selector: string, timeout?: number)
Wait for element to appear (timeout in seconds).
browser_screenshot(options?: { fullPage?: boolean, path?: string })
Capture screenshot of current page.
browser_generate_pdf(options?: { path?: string })
Generate PDF from current page (Chromium only).
browser_network_requests()
Returns all network requests made by the page.
browser_console_messages()
Returns console logs from the page.
browser_close()
Close current session and reset environment.
1. browser_navigate(url="https://example.com", waitUntil="networkidle0")
2. browser_snapshot() # verify page loaded
3. browser_evaluate(script="document.querySelectorAll('.item').length") # count items
4. browser_evaluate(script="Array.from(document.querySelectorAll('.item')).map(e => e.textContent)") # extract data
5. browser_close()
1. browser_navigate(url="https://example.com/form")
2. browser_fill(selector="#name", value="John Doe")
3. browser_fill(selector="#email", value="john@example.com")
4. browser_select_option(selector="#country", value="US")
5. browser_click(selector="#submit")
6. browser_wait_for(selector=".success", timeout=5)
7. browser_snapshot() # verify success
8. browser_close()
Obscura automatically applies:
No additional configuration needed for basic anti-detection.
| Scenario | Action |
|---|---|
| Need to interact with web page | Use browser_* tools |
| Need desktop GUI automation | Use computer-use skill |
| Need to execute code in sandbox | Use open-code skill |
| Need simple HTTP request | Use REST API directly |
| Page requires JavaScript | Obscura handles automatically (V8 engine) |
| Anti-detection required | Obscura applies automatically |
browser_evaluate for simple DOM queries - use browser_snapshot + parsebrowser_close() - sessions persist until closedbrowser_wait_for before interactingwaitUntil parameter - networkidle0 ensures all resources loadeddocker ps | grep obscura)curl http://localhost:3100/health)browser_navigate successfullybrowser_automation capability in agent profile// OpenOrchestrator plan step
{
"goal": "Scrape product data from example.com",
"required_skills": ["open-browser"],
"approval_required": false
}
// OpenAgents dispatch
POST /v1/runs
{
"profile": "browser-automation",
"goal_id": "...",
"parameters": {
"url": "https://example.com/products",
"selector": ".product-item"
}
}
// OpenRec audit
{
"type": "browser.automation.completed",
"payload": {
"url": "https://example.com/products",
"items_scraped": 42,
"duration_ms": 3500
}
}
computer-use - Desktop GUI automation (non-web)open-code - Code execution in sandboxed worktreesopen-mcp-scaffold - Add new MCP tools to mesh