Skip to main content

Overview

Browser Use has a native integration with Laminar - open-source platform for tracing, evals and labeling of AI agents. Read more about Laminar in the Laminar docs.

Setup

Register on Laminar Cloud and get the key from your project settings. Set the LMNR_PROJECT_API_KEY environment variable.
pip install 'lmnr[all]'
export LMNR_PROJECT_API_KEY=<your-project-api-key>

Usage

Then, you simply initialize the Laminar at the top of your project and both Browser Use and session recordings will be automatically traced.
from browser_use import Agent, ChatOpenAI
import asyncio

from lmnr import Laminar, Instruments
# this line auto-instruments Browser Use and any browser you use (local or remote)
Laminar.initialize(project_api_key="...", disabled_instruments={Instruments.BROWSER_USE_SESSION})

async def main():
    agent = Agent(
        task="open google, search Laminar AI",
        llm=ChatOpenAI(model="gpt-4.1-mini"),
    )
    await agent.run()

asyncio.run(main())

Viewing Traces

You can view traces in the Laminar UI by going to the traces tab in your project. When you select a trace, you can see both the browser session recording and the agent execution steps. Timeline of the browser session is synced with the agent execution steps, timeline highlights indicate the agent’s current step synced with the browser session. In the trace view, you can also see the agent’s current step, the tool it’s using, and the tool’s input and output. Tools are highlighted in the timeline with a yellow color. Laminar

Laminar

To learn more about tracing and evaluating your browser agents, check out the Laminar docs.

Browser Use Cloud Authentication

Browser Use can sync your agent runs to the cloud for easy viewing and sharing. Authentication is required to protect your data.

Quick Setup

# Authenticate once to enable cloud sync for all future runs
browser-use auth
# Or if using module directly:
python -m browser_use.cli auth
Note: Cloud sync is enabled by default. If you’ve disabled it, you can re-enable with export BROWSER_USE_CLOUD_SYNC=true.

Manual Authentication

# Authenticate from code after task completion
from browser_use import Agent

agent = Agent(task="your task")
await agent.run()

# Later, authenticate for future runs
await agent.authenticate_cloud_sync()

Reset Authentication

# Force re-authentication with a different account
rm ~/.config/browseruse/cloud_auth.json
browser-use auth
Note: Authentication uses OAuth Device Flow - you must complete the auth process while the command is running. Links expire when the polling stops.
I