---
title: "Browser Quickstart"
description: "Get started with Browser Use browser management - launch browsers and configure basic settings"
icon: "globe"
mode: "wide"
---

Browser Use manages real browsers for your AI agents using either local browser instances or remote connections. This guide shows you how to get started with browser configuration.

---

## Quick Start

The simplest way to start is with a basic `BrowserSession`:

```python
from browser_use import Agent, BrowserSession

# Simple local browser (headless by default if no display)
session = BrowserSession()
agent = Agent(task="Search for Browser Use on Google", browser_session=session)
await agent.run()
```

## Basic Configuration

Pass configuration directly to `BrowserSession`:

```python
from browser_use import BrowserSession, Agent

session = BrowserSession(
    headless=False,                    # Show browser window
    user_data_dir="./my-profile",      # Persistent profile
    viewport={'width': 1280, 'height': 1100}
)

agent = Agent(task="Fill out the form", browser_session=session)
await agent.run()
```

## Using Browser Profiles

For reusable configurations, use `BrowserProfile`:

```python
from browser_use.browser import BrowserProfile, BrowserSession

# Create a reusable profile
profile = BrowserProfile(
    headless=False,
    user_data_dir="./chrome-profile",
    stealth=True,
    viewport={'width': 1920, 'height': 1080},
    allowed_domains=['*.example.com']
)

# Use the profile for multiple sessions
session1 = BrowserSession(browser_profile=profile)
session2 = BrowserSession(browser_profile=profile, headless=True)  # Override specific settings
```

## Session vs Profile

- **`BrowserSession`**: Manages the active browser connection and runtime state
- **`BrowserProfile`**: Reusable configuration template for browser settings

```python
# Direct configuration
session = BrowserSession(headless=True, stealth=False)

# Using profile with overrides  
profile = BrowserProfile(headless=False, stealth=True)
session = BrowserSession(browser_profile=profile, headless=True)  # headless=True overrides profile
```

## Essential Settings

### Display Mode
```python
session = BrowserSession(
    headless=False,      # Show browser window
    window_size={'width': 1920, 'height': 1080}
)
```

### User Data Directory
```python
session = BrowserSession(
    user_data_dir="./my-profile",    # Persistent browser profile
    # user_data_dir=None,            # Incognito/temporary profile
)
```

### Stealth Mode
```python
session = BrowserSession(
    stealth=True,        # Use stealth techniques to avoid detection
)
```

### Domain Restrictions
```python
session = BrowserSession(
    allowed_domains=['*.google.com', 'https://docs.google.com'],  # Restrict navigation
)
```

## Common Patterns

### Development Setup
```python
# Best for development - visible browser with dev tools
dev_session = BrowserSession(
    headless=False,
    devtools=True,
    user_data_dir="./dev-profile"
)
```

### Production Setup
```python
# Best for production - headless with stealth
prod_session = BrowserSession(
    headless=True,
    stealth=True,
    user_data_dir=None,  # Don't persist data
    viewport={'width': 1920, 'height': 1080}
)
```

### Authenticated Sessions
```python
# Reuse login sessions
auth_session = BrowserSession(
    user_data_dir="./auth-profile",
    storage_state="./cookies.json",  # Load saved authentication
    keep_alive=True  # Keep browser open after task
)
```

## Next Steps

- Learn about [browser parameters](/customize/browser-parameters) for advanced configuration
- Set up [real browser connections](/customize/browser-real-browser) for existing browsers  
- Configure [remote browser connections](/customize/browser-remote) for cloud setups

---
