> ## Documentation Index
> Fetch the complete documentation index at: https://mintlify.com/vercel-labs/agent-browser/llms.txt
> Use this file to discover all available pages before exploring further.

# Browser Use

> Cloud browser infrastructure for AI agents

[Browser Use](https://browser-use.com) 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

* Browser Use account ([sign up](https://cloud.browser-use.com))
* API key from [Browser Use Dashboard](https://cloud.browser-use.com/settings?tab=api-keys)

<Note>
  Free credits are available to get started, with pay-as-you-go pricing after.
</Note>

## Setup

<Steps>
  <Step title="Get your API key">
    1. Visit the [Browser Use Dashboard](https://cloud.browser-use.com/settings?tab=api-keys)
    2. Create a new API key
    3. Copy the key (it won't be shown again)
  </Step>

  <Step title="Set environment variable">
    ```bash theme={null}
    export BROWSER_USE_API_KEY="your-api-key"
    ```
  </Step>
</Steps>

## Usage

### Via CLI Flag

Use the `-p browseruse` flag:

```bash theme={null}
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:

```bash theme={null}
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

<table>
  <thead>
    <tr>
      <th>Variable</th>
      <th>Description</th>
      <th>Required</th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td><code>AGENT\_BROWSER\_PROVIDER</code></td>
      <td>Set to <code>browseruse</code></td>
      <td>Yes (or use <code>-p</code> flag)</td>
    </tr>

    <tr>
      <td><code>BROWSER\_USE\_API\_KEY</code></td>
      <td>Your Browser Use API key</td>
      <td>Yes</td>
    </tr>
  </tbody>
</table>

## Example: Serverless Function

```javascript theme={null}
// 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 theme={null}
# 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

```yaml theme={null}
# .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

```bash theme={null}
# 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
```

## Performance

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](https://browser-use.com/pricing)

<Tip>
  Switch between local and cloud browsers by changing the provider. Your automation scripts stay the same.
</Tip>
