Browser Use provides cloud browser infrastructure for AI agents. Use it when running agent-browser in environments where a local browser isn’t available (serverless, CI/CD, etc.).
When to Use Browser Use
- Serverless functions (AWS Lambda, Vercel, Cloudflare Workers)
- CI/CD automation
- Docker containers without display
- Distributed scraping and testing
- Quick prototyping without local browser setup
Prerequisites
Free credits are available to get started, with pay-as-you-go pricing after.
Setup
Set environment variable
export BROWSER_USE_API_KEY="your-api-key"
Usage
Via CLI Flag
Use the -p browseruse flag:
agent-browser -p browseruse open https://example.com
agent-browser -p browseruse snapshot -i
agent-browser -p browseruse click @e1
Via Environment Variable
Set the provider globally:
export AGENT_BROWSER_PROVIDER=browseruse
export BROWSER_USE_API_KEY="your-api-key"
# Now all commands use Browser Use automatically
agent-browser open https://example.com
agent-browser snapshot -i
agent-browser click @e1
Features
All standard agent-browser commands work with Browser Use:
- Navigation:
open, back, forward, reload
- Snapshots:
snapshot, snapshot -i, snapshot --json
- Interactions:
click, fill, type, press, hover
- Screenshots:
screenshot, screenshot --full, screenshot --annotate
- State:
state save, state load, cookies, storage
- Waiting:
wait, wait --load, wait --url
- Network:
network route, network requests
Environment Variables
| Variable | Description | Required |
|---|
AGENT_BROWSER_PROVIDER | Set to browseruse | Yes (or use -p flag) |
BROWSER_USE_API_KEY | Your Browser Use API key | Yes |
Example: Serverless Function
// api/scrape.js - Vercel serverless function
import { exec } from 'child_process';
import { promisify } from 'util';
const execAsync = promisify(exec);
export default async function handler(req, res) {
const { url } = req.query;
process.env.AGENT_BROWSER_PROVIDER = 'browseruse';
process.env.BROWSER_USE_API_KEY = process.env.BROWSER_USE_KEY;
try {
// Run browser automation
await execAsync(`agent-browser open ${url}`);
const { stdout } = await execAsync('agent-browser snapshot -i --json');
await execAsync('agent-browser close');
const snapshot = JSON.parse(stdout);
res.status(200).json(snapshot);
} catch (error) {
res.status(500).json({ error: error.message });
}
}
Example: Docker Container
# Dockerfile
FROM node:20-alpine
# Install agent-browser
RUN npm install -g agent-browser
# Set Browser Use as provider
ENV AGENT_BROWSER_PROVIDER=browseruse
ENV BROWSER_USE_API_KEY=your-api-key
# Copy automation scripts
COPY scripts/ /app/
WORKDIR /app
CMD ["./run-automation.sh"]
Example: CI/CD Testing
# .github/workflows/test.yml
name: Browser Tests
on: [push]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Install agent-browser
run: npm install -g agent-browser
- name: Run browser tests
env:
AGENT_BROWSER_PROVIDER: browseruse
BROWSER_USE_API_KEY: ${{ secrets.BROWSER_USE_API_KEY }}
run: |
agent-browser open https://myapp.com
agent-browser snapshot -i
agent-browser screenshot test.png
agent-browser close
Example: Quick Prototyping
# No local browser needed - test immediately
export AGENT_BROWSER_PROVIDER=browseruse
export BROWSER_USE_API_KEY="your-api-key"
# Start testing right away
agent-browser open https://example.com
agent-browser snapshot -i
agent-browser click @e1
Browser Use cloud sessions start quickly and scale automatically. No need to manage browser installations or updates.
Pricing
- Free tier available for testing
- Pay-as-you-go pricing based on session time
- Check current rates at browser-use.com/pricing
Switch between local and cloud browsers by changing the provider. Your automation scripts stay the same.