agentic-browser-0-1-2Browser automation for AI agents via inference.sh. Navigate web pages, interact with elements using @e refs, take screenshots, record video. Capabilities: web scraping, form filling, clicking, typing, drag-drop, file upload, JavaScript execution. Use for: web automation, data extraction, testing, agent browsing, research. Triggers: browser, web automation, scrape, navigate, click, fill form, screenshot, browse web, playwright, headless browser, web agent, surf internet, record video
Install via ClawdBot CLI:
clawdbot install xyny89/agentic-browser-0-1-2Browser automation for AI agents via inference.sh. Uses Playwright under the hood with a simple @e ref system for element interaction.
# Install CLI
curl -fsSL https://cli.inference.sh | sh && infsh login
# Open a page and get interactive elements
infsh app run agent-browser --function open --input '{"url": "https://example.com"}' --session new
Every browser automation follows this pattern:
@e refs for elements# 1. Start session
RESULT=$(infsh app run agent-browser --function open --session new --input '{
"url": "https://example.com/login"
}')
SESSION_ID=$(echo $RESULT | jq -r '.session_id')
# Elements: @e1 [input] "Email", @e2 [input] "Password", @e3 [button] "Sign In"
# 2. Fill and submit
infsh app run agent-browser --function interact --session $SESSION_ID --input '{
"action": "fill", "ref": "@e1", "text": "user@example.com"
}'
infsh app run agent-browser --function interact --session $SESSION_ID --input '{
"action": "fill", "ref": "@e2", "text": "password123"
}'
infsh app run agent-browser --function interact --session $SESSION_ID --input '{
"action": "click", "ref": "@e3"
}'
# 3. Re-snapshot after navigation
infsh app run agent-browser --function snapshot --session $SESSION_ID --input '{}'
# 4. Close when done
infsh app run agent-browser --function close --session $SESSION_ID --input '{}'
| Function | Description |
|----------|-------------|
| open | Navigate to URL, configure browser (viewport, proxy, video recording) |
| snapshot | Re-fetch page state with @e refs after DOM changes |
| interact | Perform actions using @e refs (click, fill, drag, upload, etc.) |
| screenshot | Take page screenshot (viewport or full page) |
| execute | Run JavaScript code on the page |
| close | Close session, returns video if recording was enabled |
| Action | Description | Required Fields |
|--------|-------------|-----------------|
| click | Click element | ref |
| dblclick | Double-click element | ref |
| fill | Clear and type text | ref, text |
| type | Type text (no clear) | text |
| press | Press key (Enter, Tab, etc.) | text |
| select | Select dropdown option | ref, text |
| hover | Hover over element | ref |
| check | Check checkbox | ref |
| uncheck | Uncheck checkbox | ref |
| drag | Drag and drop | ref, target_ref |
| upload | Upload file(s) | ref, file_paths |
| scroll | Scroll page | direction (up/down/left/right), scroll_amount |
| back | Go back in history | - |
| wait | Wait milliseconds | wait_ms |
| goto | Navigate to URL | url |
Elements are returned with @e refs:
@e1 [a] "Home" href="/"
@e2 [input type="text"] placeholder="Search"
@e3 [button] "Submit"
@e4 [select] "Choose option"
@e5 [input type="checkbox"] name="agree"
Important: Refs are invalidated after navigation. Always re-snapshot after:
Record browser sessions for debugging or documentation:
# Start with recording enabled (optionally show cursor indicator)
SESSION=$(infsh app run agent-browser --function open --session new --input '{
"url": "https://example.com",
"record_video": true,
"show_cursor": true
}' | jq -r '.session_id')
# ... perform actions ...
# Close to get the video file
infsh app run agent-browser --function close --session $SESSION --input '{}'
# Returns: {"success": true, "video": <File>}
Show a visible cursor in screenshots and video (useful for demos):
infsh app run agent-browser --function open --session new --input '{
"url": "https://example.com",
"show_cursor": true,
"record_video": true
}'
The cursor appears as a red dot that follows mouse movements and shows click feedback.
Route traffic through a proxy server:
infsh app run agent-browser --function open --session new --input '{
"url": "https://example.com",
"proxy_url": "http://proxy.example.com:8080",
"proxy_username": "user",
"proxy_password": "pass"
}'
Upload files to file inputs:
infsh app run agent-browser --function interact --session $SESSION --input '{
"action": "upload",
"ref": "@e5",
"file_paths": ["/path/to/file.pdf"]
}'
Drag elements to targets:
infsh app run agent-browser --function interact --session $SESSION --input '{
"action": "drag",
"ref": "@e1",
"target_ref": "@e2"
}'
Run custom JavaScript:
infsh app run agent-browser --function execute --session $SESSION --input '{
"code": "document.querySelectorAll(\"h2\").length"
}'
# Returns: {"result": "5", "screenshot": <File>}
| Reference | Description |
|-----------|-------------|
| references/commands.md | Full function reference with all options |
| references/snapshot-refs.md | Ref lifecycle, invalidation rules, troubleshooting |
| references/session-management.md | Session persistence, parallel sessions |
| references/authentication.md | Login flows, OAuth, 2FA handling |
| references/video-recording.md | Recording workflows for debugging |
| references/proxy-support.md | Proxy configuration, geo-testing |
| Template | Description |
|----------|-------------|
| templates/form-automation.sh | Form filling with validation |
| templates/authenticated-session.sh | Login once, reuse session |
| templates/capture-workflow.sh | Content extraction with screenshots |
SESSION=$(infsh app run agent-browser --function open --session new --input '{
"url": "https://example.com/contact"
}' | jq -r '.session_id')
# Get elements: @e1 [input] "Name", @e2 [input] "Email", @e3 [textarea], @e4 [button] "Send"
infsh app run agent-browser --function interact --session $SESSION --input '{"action": "fill", "ref": "@e1", "text": "John Doe"}'
infsh app run agent-browser --function interact --session $SESSION --input '{"action": "fill", "ref": "@e2", "text": "john@example.com"}'
infsh app run agent-browser --function interact --session $SESSION --input '{"action": "fill", "ref": "@e3", "text": "Hello!"}'
infsh app run agent-browser --function interact --session $SESSION --input '{"action": "click", "ref": "@e4"}'
infsh app run agent-browser --function snapshot --session $SESSION --input '{}'
infsh app run agent-browser --function close --session $SESSION --input '{}'
SESSION=$(infsh app run agent-browser --function open --session new --input '{
"url": "https://google.com"
}' | jq -r '.session_id')
infsh app run agent-browser --function interact --session $SESSION --input '{"action": "fill", "ref": "@e1", "text": "weather today"}'
infsh app run agent-browser --function interact --session $SESSION --input '{"action": "press", "text": "Enter"}'
infsh app run agent-browser --function interact --session $SESSION --input '{"action": "wait", "wait_ms": 2000}'
infsh app run agent-browser --function snapshot --session $SESSION --input '{}'
infsh app run agent-browser --function close --session $SESSION --input '{}'
SESSION=$(infsh app run agent-browser --function open --session new --input '{
"url": "https://example.com",
"record_video": true
}' | jq -r '.session_id')
# Take full page screenshot
infsh app run agent-browser --function screenshot --session $SESSION --input '{
"full_page": true
}'
# Close and get video
RESULT=$(infsh app run agent-browser --function close --session $SESSION --input '{}')
echo $RESULT | jq '.video'
Browser state persists within a session. Always:
--session new on first callsession_id for subsequent calls# Web search (for research + browse)
npx skills add inferencesh/skills@web-search
# LLM models (analyze extracted content)
npx skills add inferencesh/skills@llm-models
Generated Mar 1, 2026
An AI agent uses the browser automation to scrape competitor pricing, product details, and customer reviews from e-commerce websites. It navigates through pagination, extracts structured data using JavaScript execution, and records sessions for audit trails. This enables real-time market analysis without manual browsing.
The agent automates lead capture by filling out contact forms on multiple business directories or event registration sites. It interacts with input fields using @e refs, uploads files like resumes, and handles dynamic content with re-snapshots. This streamlines outreach campaigns and reduces manual data entry errors.
QA teams employ the agent to perform automated testing of web applications, simulating user interactions like clicking buttons, dragging elements, and checking checkboxes. Video recording captures bugs for debugging, and proxy support tests under different network conditions. This accelerates regression testing and improves software reliability.
Researchers automate browsing of academic journals, government databases, or social media to collect data for studies. The agent navigates complex sites, executes JavaScript to extract hidden data, and takes screenshots for documentation. This saves time in large-scale data aggregation and ensures consistency in data collection.
An AI agent monitors websites for inappropriate content or policy violations by regularly snapshotting pages, interacting with reporting buttons, and recording sessions as evidence. It uses element refs to click through moderation interfaces and can be scheduled for continuous surveillance. This enhances online safety and compliance efforts.
Offer a cloud-based platform where users pay a monthly fee to access the browser automation skill via inference.sh. Include tiers based on usage limits, advanced features like video recording, and priority support. Revenue comes from recurring subscriptions, targeting businesses needing scalable web automation solutions.
Provide consulting and development services to build tailored automation scripts using the agent-browser skill for specific client needs, such as data scraping or testing. Charge project-based fees or retainer models, leveraging the skill's capabilities to deliver efficient solutions. This model appeals to organizations lacking in-house expertise.
Offer a free tier with basic automation functions and limited sessions, while premium tiers unlock advanced features like proxy support, JavaScript execution, and higher concurrency. Monetize through API calls or enterprise licenses, encouraging adoption by individual developers and scaling up with business clients.
💬 Integration Tip
Start by automating simple tasks like form filling or screenshot capture to familiarize with the @e ref system, then gradually incorporate advanced features like video recording for debugging complex workflows.
A fast Rust-based headless browser automation CLI with Node.js fallback that enables AI agents to navigate, click, type, and snapshot pages via structured commands.
Automate web browser interactions using natural language via CLI commands. Use when the user asks to browse websites, navigate web pages, extract data from websites, take screenshots, fill forms, click buttons, or interact with web applications.
Advanced desktop automation with mouse, keyboard, and screen control
Manage n8n workflows and automations via API. Use when working with n8n workflows, executions, or automation tasks - listing workflows, activating/deactivating, checking execution status, manually triggering workflows, or debugging automation issues.
Design and implement automation workflows to save time and scale operations as a solopreneur. Use when identifying repetitive tasks to automate, building workflows across tools, setting up triggers and actions, or optimizing existing automations. Covers automation opportunity identification, workflow design, tool selection (Zapier, Make, n8n), testing, and maintenance. Trigger on "automate", "automation", "workflow automation", "save time", "reduce manual work", "automate my business", "no-code automation".
Browser automation via Playwright MCP server. Navigate websites, click elements, fill forms, extract data, take screenshots, and perform full browser automation workflows.