Marketplace agentic-browser

install
source · Clone the upstream repo
git clone https://github.com/aiskillstore/marketplace
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/aiskillstore/marketplace "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/inference-sh/agentic-browser" ~/.claude/skills/aiskillstore-marketplace-agentic-browser && rm -rf "$T"
manifest: skills/inference-sh/agentic-browser/SKILL.md
source content

Agentic Browser

Browser automation for AI agents via inference.sh.

Quick Start

curl -fsSL https://cli.inference.sh | sh && infsh login

# Open a page and get interactive elements
infsh app run agentic-browser --function open --input '{"url": "https://example.com"}' --session new

Core Workflow

Every browser automation follows this pattern:

  1. Open: Navigate to URL, get element refs
  2. Snapshot: Re-fetch elements after DOM changes
  3. Interact: Use
    @e
    refs to click, fill, etc.
  4. Re-snapshot: After navigation, get fresh refs
# Start session
RESULT=$(infsh app run agentic-browser --function open --session new --input '{
  "url": "https://example.com/login"
}')
SESSION_ID=$(echo $RESULT | jq -r '.session_id')

# Elements returned like: @e1 [input] "Email", @e2 [input] "Password", @e3 [button] "Sign In"

# Fill form
infsh app run agentic-browser --function interact --session $SESSION_ID --input '{
  "action": "fill", "ref": "@e1", "text": "user@example.com"
}'

infsh app run agentic-browser --function interact --session $SESSION_ID --input '{
  "action": "fill", "ref": "@e2", "text": "password123"
}'

# Click submit
infsh app run agentic-browser --function interact --session $SESSION_ID --input '{
  "action": "click", "ref": "@e3"
}'

# Close when done
infsh app run agentic-browser --function close --session $SESSION_ID --input '{}'

Functions

open

Navigate to URL and configure browser. Returns page snapshot with

@e
refs.

infsh app run agentic-browser --function open --session new --input '{
  "url": "https://example.com",
  "width": 1280,
  "height": 720,
  "user_agent": "Mozilla/5.0..."
}'

Returns:

  • url
    : Current page URL
  • title
    : Page title
  • elements
    : List of interactive elements with
    @e
    refs
  • screenshot
    : Page screenshot (for vision agents)

snapshot

Re-fetch page state after DOM changes. Always call after clicks that navigate.

infsh app run agentic-browser --function snapshot --session $SESSION_ID --input '{}'

interact

Interact with elements using

@e
refs from snapshot.

ActionDescriptionRequired Fields
click
Click element
ref
fill
Clear and type text
ref
,
text
type
Type text (no clear)
text
press
Press key
text
(e.g., "Enter")
select
Select dropdown
ref
,
text
hover
Hover over element
ref
scroll
Scroll page
direction
(up/down)
back
Go back in history-
wait
Wait milliseconds
wait_ms
# Click
infsh app run agentic-browser --function interact --session $SESSION_ID --input '{
  "action": "click", "ref": "@e5"
}'

# Fill input
infsh app run agentic-browser --function interact --session $SESSION_ID --input '{
  "action": "fill", "ref": "@e1", "text": "hello@example.com"
}'

# Press Enter
infsh app run agentic-browser --function interact --session $SESSION_ID --input '{
  "action": "press", "text": "Enter"
}'

# Scroll down
infsh app run agentic-browser --function interact --session $SESSION_ID --input '{
  "action": "scroll", "direction": "down"
}'

screenshot

Take page screenshot.

infsh app run agentic-browser --function screenshot --session $SESSION_ID --input '{
  "full_page": true
}'

execute

Run JavaScript on the page.

infsh app run agentic-browser --function execute --session $SESSION_ID --input '{
  "code": "document.title"
}'

close

Close browser session.

infsh app run agentic-browser --function close --session $SESSION_ID --input '{}'

Element Refs

Elements are returned with

@e
refs like:

@e1 [a] "Home" href="/"
@e2 [input type="text"] placeholder="Search"
@e3 [button] "Submit"
@e4 [select] "Choose option"

Important: Refs are invalidated after navigation. Always re-snapshot after:

  • Clicking links/buttons that navigate
  • Form submissions
  • Dynamic content loading

Examples

Form Submission

SESSION=$(infsh app run agentic-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] "Message", @e4 [button] "Send"

infsh app run agentic-browser --function interact --session $SESSION --input '{"action": "fill", "ref": "@e1", "text": "John Doe"}'
infsh app run agentic-browser --function interact --session $SESSION --input '{"action": "fill", "ref": "@e2", "text": "john@example.com"}'
infsh app run agentic-browser --function interact --session $SESSION --input '{"action": "fill", "ref": "@e3", "text": "Hello!"}'
infsh app run agentic-browser --function interact --session $SESSION --input '{"action": "click", "ref": "@e4"}'

# Check result
infsh app run agentic-browser --function snapshot --session $SESSION --input '{}'

infsh app run agentic-browser --function close --session $SESSION --input '{}'

Search and Extract

SESSION=$(infsh app run agentic-browser --function open --session new --input '{
  "url": "https://google.com"
}' | jq -r '.session_id')

# Fill search box and submit
infsh app run agentic-browser --function interact --session $SESSION --input '{"action": "fill", "ref": "@e1", "text": "weather today"}'
infsh app run agentic-browser --function interact --session $SESSION --input '{"action": "press", "text": "Enter"}'
infsh app run agentic-browser --function interact --session $SESSION --input '{"action": "wait", "wait_ms": 2000}'

# Get results page
infsh app run agentic-browser --function snapshot --session $SESSION --input '{}'

infsh app run agentic-browser --function close --session $SESSION --input '{}'

Extract Data with JavaScript

infsh app run agentic-browser --function execute --session $SESSION --input '{
  "code": "Array.from(document.querySelectorAll(\"h2\")).map(h => h.textContent)"
}'

Sessions

Browser state persists within a session. Always:

  1. Start with
    --session new
    on first call
  2. Use returned
    session_id
    for subsequent calls
  3. Close session when done

Related Skills

# Web search (for research + browse)
npx skills add inference-sh/skills@web-search

# LLM models (analyze extracted content)
npx skills add inference-sh/skills@llm-models

Documentation