agent-browser
Lets your agent browse the web to research, read, or interact with websites. It's useful for any task that needs a browser.
What it does
This agent can browse the internet like a web browser. It can open websites, click buttons, fill forms, take screenshots, and extract information from web pages.
When to use it
- ✓Researching information on a specific topic.
- ✓Filling out an online form automatically.
- ✓Extracting data from a table on a website.
Example of what to ask your AI
“Research the history of artificial intelligence and tell me the 3 most important milestones.”
Want more? Open the sections below.
How to use
The easiest way: copy the message below and paste it into Claude, ChatGPT, Cursor or any AI. It reads the skill and follows the instructions.
Skill link
Ready-to-paste message
How it works
It works by opening a website, analyzing the elements on the screen (like buttons and text fields), and allowing you to interact with them using simple commands. It can even save your login for sites you use frequently.
Installation
Easiest way: copy the skill link and paste it into Claude, ChatGPT or Cursor asking it to follow the instructions.
In the terminal (Claude Code, Codex, Cursor), in your project folder:
npx skills add nanocoai/nanoclaw --skill agent-browserOr download just the file:
curl -L https://raw.githubusercontent.com/nanocoai/nanoclaw/main/container/skills/agent-browser/SKILL.md -o SKILL.mdTechnical content (original SKILL.md)
Original text by the author, straight from GitHub.
Browser Automation with agent-browser
Quick start
agent-browser open <url> # Navigate to page
agent-browser snapshot -i # Get interactive elements with refs
agent-browser click @e1 # Click element by ref
agent-browser fill @e2 "text" # Fill input by ref
agent-browser close # Close browser
Core workflow
- Navigate:
agent-browser open <url> - Snapshot:
agent-browser snapshot -i(returns elements with refs like@e1,@e2) - Interact using refs from the snapshot
- Re-snapshot after navigation or significant DOM changes
Commands
Navigation
agent-browser open <url> # Navigate to URL
agent-browser back # Go back
agent-browser forward # Go forward
agent-browser reload # Reload page
agent-browser close # Close browser
Snapshot (page analysis)
agent-browser snapshot # Full accessibility tree
agent-browser snapshot -i # Interactive elements only (recommended)
agent-browser snapshot -c # Compact output
agent-browser snapshot -d 3 # Limit depth to 3
agent-browser snapshot -s "#main" # Scope to CSS selector
Interactions (use @refs from snapshot)
agent-browser click @e1 # Click
agent-browser dblclick @e1 # Double-click
agent-browser fill @e2 "text" # Clear and type
agent-browser type @e2 "text" # Type without clearing
agent-browser press Enter # Press key
agent-browser hover @e1 # Hover
agent-browser check @e1 # Check checkbox
agent-browser uncheck @e1 # Uncheck checkbox
agent-browser select @e1 "value" # Select dropdown option
agent-browser scroll down 500 # Scroll page
agent-browser upload @e1 file.pdf # Upload files
Get information
agent-browser get text @e1 # Get element text
agent-browser get html @e1 # Get innerHTML
agent-browser get value @e1 # Get input value
agent-browser get attr @e1 href # Get attribute
agent-browser get title # Get page title
agent-browser get url # Get current URL
agent-browser get count ".item" # Count matching elements
Screenshots & PDF
agent-browser screenshot # Save to temp directory
agent-browser screenshot path.png # Save to specific path
agent-browser screenshot --full # Full page
agent-browser pdf output.pdf # Save as PDF
Wait
agent-browser wait @e1 # Wait for element
agent-browser wait 2000 # Wait milliseconds
agent-browser wait --text "Success" # Wait for text
agent-browser wait --url "**/dashboard" # Wait for URL pattern
agent-browser wait --load networkidle # Wait for network idle
Waiting for a custom condition — ALWAYS bound it
Prefer the built-in wait subcommands above. Only fall back to eval-polling
when you must wait on a custom JS condition (e.g. a spinner disappearing or a
"Send" button re-enabling in a chat UI).
Never write an unbounded wait loop. A bare until … do sleep; done that
polls a page condition will loop forever if the condition never becomes true
(page failed to load, selector changed, network stalled). That does not just
fail the command — it wedges the entire agent turn: the runner keeps the model
stream open, later messages get silently swallowed, and the container can hang
for hours without the host's stuck-detection firing.
Always cap the wait with BOTH a wall-clock timeout and a max-attempts counter,
and always exit the loop (never leave a sleep loop as the last thing running):
# Bounded wait: succeeds when the condition is met, gives up after ~90s.
timeout 90 bash -c '
for i in $(seq 1 30); do
if agent-browser eval "document.querySelector(\".loading\") === null" 2>/dev/null | grep -q true; then
echo READY; exit 0
fi
sleep 3
done
echo TIMEOUT; exit 1
'
# Check the exit status / output: on TIMEOUT, snapshot the page and decide —
# do NOT re-enter another unbounded wait.
If the wait times out, treat it as a real failure: take a snapshot -i or
screenshot to see the actual page state, report what you found, and move on.
Retrying the same unbounded wait is what causes the hang.
Semantic locators (alternative to refs)
agent-browser find role button click --name "Submit"
agent-browser find text "Sign In" click
agent-browser find label "Email" fill "user@test.com"
…
FAQ
How does the agent know where to click or what to fill?
After opening a website, the agent can 'take a picture' of the screen and identify clickable or fillable elements, assigning them a code (like @e1, @e2) that you can use in your commands.
Can I use this for online shopping?
Yes, you can use it to navigate stores, add products to the cart, and even complete purchases if the website allows.
Can it save my passwords?
It can save the login state (cookies and authentication) for a website so you don't have to log in every time you use that site.
Details
Original description by the author
Browse the web for any task — research topics, read articles, interact with web apps, fill forms, take screenshots, extract data, and test web pages. Use whenever a browser would be useful, not just when the user explicitly asks.
repo: nanocoai/nanoclaw
Popularity
- GitHub stars
- 31k
- Ranking position
- #6345
- License
- MIT
- Updated
- 10/15/2026
Comments
- …
More skills from this repository
frontend-engineer
Helps your agent build websites following good engineering practices. It ensures everything works well, is responsive, and accessible.
nanocoai/nanoclaw
self-customize
Lets your agent adapt and add new features. It's useful when you want it to learn something new or change how it works.
nanocoai/nanoclaw
welcome
Allows the agent to introduce itself in a new channel, explaining what it can do.
nanocoai/nanoclaw
Similar skills
dashboard-builder
Helps your agent create useful monitoring dashboards. It turns data into charts that answer important system questions.
affaan-m/ECC
dev-team
Simulates a collaborative development team where different roles respond to a problem together. It's useful for getting multiple perspectives without manually switching agents.
affaan-m/ECC
ecc-council
Has your agent convene a four-voice council for difficult decisions. It's useful when there are multiple good options and debate is needed before choosing.
affaan-m/ECC