Amplifier Browser Bundle

January 22, 2026 · View on GitHub

Web browser automation for AI agents using agent-browser

Give your Amplifier agents the ability to browse the web, fill forms, extract data, and capture screenshots—all through natural language.

Why Browser Automation? (The Gap)

Amplifier and Claude Code already have web capabilities via fetch/curl. So why do you need a browser?

What Fetch/Curl CAN'T Do

LimitationWhy It Matters
No JavaScript executionModern apps (React/Vue/Angular) render content client-side. Fetch returns <div id="root"></div>
No authentication flowsCan't fill login forms, handle OAuth, or manage sessions
No visual verificationCan't "see" if a page looks right—only gets HTML
No interactionCan't click buttons, fill forms, or navigate multi-step flows
Bot detectionMany sites block simple HTTP requests

Real Examples of the Gap

# This returns an empty shell (JS-rendered content):
curl https://status.vercel.com

# This gets blocked or returns different content:
curl https://notion.so/pricing

# This can't log in and see your dashboard:
curl https://app.yourcompany.com/dashboard

Browser automation solves all of these.

Quick Start

1. Install agent-browser

npm install -g agent-browser

2. Add the bundle

# As an app bundle (available in all sessions)
amplifier bundle add git+https://github.com/samueljklee/amplifier-bundle-browser --app

3. Try the demo

amplifier tool invoke recipes operation=execute \
  recipe_path=@browser:recipes/examples/quick-demo.yaml

Or in a session:

"Use browser-operator to go to news.ycombinator.com and tell me the top 5 stories"

Agents

browser:browser-operator

General-purpose browser automation. The Swiss Army knife for web interaction.

Best for: Form filling, navigation, data extraction, one-off tasks

"Go to github.com/trending and tell me the top 5 repositories"
"Fill the signup form with name=Test, email=test@example.com"
"Log into staging.myapp.com and verify the dashboard loads"

browser:web-researcher

Research-focused agent optimized for finding and synthesizing information.

Best for: Documentation lookup, competitive research, fact-finding

"Research the pricing of Stripe, Square, and PayPal"
"Find the system requirements for Docker Desktop"
"Check what's on the OpenAI status page"

browser:visual-documenter

Screenshot and visual documentation specialist.

Best for: QA evidence, change tracking, visual audits, documentation

"Screenshot our checkout flow step by step"
"Capture the competitor's pricing page for reference"
"Document what our landing page looks like right now"

Example Recipes

Quick Demo (Try First!)

amplifier tool invoke recipes operation=execute \
  recipe_path=@browser:recipes/examples/quick-demo.yaml

Fetches live Hacker News content to show browser automation working.

Verify Deployed App

amplifier tool invoke recipes operation=execute \
  recipe_path=@browser:recipes/examples/verify-deployed-app.yaml \
  context='{"app_url": "https://staging.myapp.com", "login_email": "test@example.com", "login_password": "testpass"}'

Logs into your app, navigates key pages, screenshots and reports issues.

Check Status Page

amplifier tool invoke recipes operation=execute \
  recipe_path=@browser:recipes/examples/check-status-page.yaml \
  context='{"status_url": "https://status.openai.com"}'

Checks JS-rendered status pages that curl can't read.

Monitor Competitor Pricing

amplifier tool invoke recipes operation=execute \
  recipe_path=@browser:recipes/examples/monitor-competitor-pricing.yaml \
  context='{"pricing_url": "https://competitor.com/pricing"}'

Extracts pricing info from pages that may be A/B tested or dynamically rendered.

Extract Dynamic Content

amplifier tool invoke recipes operation=execute \
  recipe_path=@browser:recipes/examples/extract-dynamic-content.yaml \
  context='{"url": "https://app.example.com/dashboard", "extract": "all metrics and their values"}'

Gets content from JS-rendered pages where fetch returns empty HTML.

All Recipes

RecipePurposeKey Input
examples/quick-demo.yamlDemo browser working(none)
examples/verify-deployed-app.yamlTest your deployed appapp_url, login_*
examples/check-status-page.yamlCheck service statusstatus_url
examples/extract-dynamic-content.yamlScrape JS-rendered pagesurl, extract
examples/monitor-competitor-pricing.yamlGet competitor pricespricing_url
competitive-research.yamlMulti-competitor analysiscompetitors[]
visual-audit.yamlMulti-page screenshotsbase_url, pages[]
form-automation.yamlFill web formsform_url, form_data

Use Cases

ScenarioAgentWhy Browser Needed
Verify staging deploymentbrowser-operatorNeed to log in and see rendered UI
Check service statusweb-researcherStatus pages are JS-rendered
Research competitor pricingweb-researcherPrices are dynamic/A/B tested
Document UI for QAvisual-documenterNeed screenshots, not HTML
Fill support ticketsbrowser-operatorNeed to interact with forms
Test auth flowsbrowser-operatorOAuth/SSO requires real browser

How It Works

This bundle uses agent-browser under the hood—a headless browser CLI designed specifically for AI agents.

Key features:

  • Ref-based selection: Elements are identified by accessibility tree refs (@e1, @e2) rather than fragile CSS selectors
  • AI-first design: Optimized for LLM interaction patterns
  • Session management: Cookies and auth state persist within sessions

Architecture:

Your Prompt → Amplifier Agent → bash tool → agent-browser CLI → Chromium

                                          Screenshots, data, results

Composing with Other Bundles

Add browser capability to your own bundles:

# your-bundle.yaml
includes:
  - bundle: git+https://github.com/samueljklee/amplifier-bundle-browser#subdirectory=behaviors/browser.yaml

This adds browser agents without requiring the full foundation dependency.

Requirements

  • agent-browser (npm install -g agent-browser)
  • Node.js 18+
  • Amplifier with bash tool (included in foundation bundle)

Troubleshooting

"agent-browser: command not found"

npm install -g agent-browser

"Element not found"

The page changed since the snapshot. The agent will re-snapshot automatically.

"Timeout" errors

Page is slow to load. The agent handles retries, but very slow pages may need manual waits.

Pages not rendering correctly

Some pages need --headed mode for debugging:

agent-browser open "https://example.com" --headed

Contributing

Contributions welcome! Ideas:

  • Additional agents: form-tester, accessibility-auditor, screenshot-differ
  • More recipes: E2E testing, monitoring, data pipelines
  • Better error recovery patterns
  • Viewport/responsive testing support

License

MIT


Built for the Amplifier ecosystem.