mirror of
https://github.com/browser-use/browser-use
synced 2026-04-22 17:45:09 +02:00
Relocate deprecated doc sections from customize/ to legacy/ under Customize OS nav. Add redirects for all old paths and update cross-references in AGENTS.md and related mdx files. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
130 lines
3.6 KiB
Plaintext
130 lines
3.6 KiB
Plaintext
---
|
|
title: "Basics"
|
|
description: "Write Python code locally with browser automation"
|
|
icon: "code"
|
|
---
|
|
|
|
CodeAgent writes and executes Python code locally with browser automation capabilities. It's designed for repetitive data extraction tasks where the agent can write reusable functions.
|
|
|
|
<Warning>
|
|
CodeAgent executes Python code on your local machine like Claude Code.
|
|
</Warning>
|
|
|
|
## Quick Start
|
|
|
|
|
|
```python
|
|
import asyncio
|
|
from browser_use import CodeAgent
|
|
from dotenv import load_dotenv
|
|
|
|
load_dotenv()
|
|
|
|
async def main():
|
|
task = "Extract all products from example.com and save to products.csv"
|
|
|
|
agent = CodeAgent(task=task)
|
|
await agent.run()
|
|
|
|
asyncio.run(main())
|
|
```
|
|
|
|
```bash .env
|
|
BROWSER_USE_API_KEY=your-api-key
|
|
```
|
|
|
|
<Note>
|
|
CodeAgent currently only works with [ChatBrowserUse](/supported-models) which is optimized for this use case.
|
|
Don't have one? We give you $10 to try it out [here](https://cloud.browser-use.com/new-api-key).
|
|
</Note>
|
|
|
|
## When to Use
|
|
|
|
**Best for:**
|
|
- Data extraction at scale (100s-1000s of items)
|
|
- Repetitive interactions where functions can be reused
|
|
- Tasks requiring data processing and file operations
|
|
- Deterministic workflows you want to rerun
|
|
|
|
**Performance:**
|
|
- Best performance for data collection tasks
|
|
- Slightly slower for one-off interactions vs standard Agent
|
|
|
|
**Output:**
|
|
- Generates Python code that can be rerun deterministically
|
|
- Perfect for refining extraction logic
|
|
|
|
|
|
The agent will write code blocks in different languages. This combines the power of js for browser interaction and python for data processing:
|
|
```js extract_products
|
|
(function(){
|
|
return Array.from(document.querySelectorAll('.product')).map(p => ({
|
|
name: p.querySelector('.name').textContent,
|
|
price: p.querySelector('.price').textContent
|
|
}))
|
|
})()
|
|
```
|
|
```python
|
|
import pandas as pd
|
|
|
|
products = await evaluate(extract_products) # reuse other code blocks
|
|
df = pd.DataFrame(products)
|
|
df.to_csv('products.csv', index=False)
|
|
```
|
|
|
|
## Available Libraries
|
|
|
|
The agent can use common Python libraries:
|
|
|
|
- **Data processing:** `pandas`, `numpy`
|
|
- **Web:** `requests`, `BeautifulSoup`
|
|
- **File formats:** `csv`, `json`, `openpyxl` (Excel)
|
|
- **Visualization:** `matplotlib`
|
|
- **Utilities:** `tabulate`, `datetime`, `re`
|
|
- and all which you install ...
|
|
|
|
|
|
## Available Tools
|
|
|
|
The agent has access to browser control functions:
|
|
|
|
- `navigate(url)` - Navigate to a URL
|
|
- `click(index)` - Click an element by index
|
|
- `input(index, text)` - Type text into an input
|
|
- `scroll(down, pages)` - Scroll the page
|
|
- `upload_file(path)` - Upload a file
|
|
- `evaluate(code, variables={})` - Execute JavaScript and return results
|
|
- `done(text, success, files_to_display=[])` - Mark task complete
|
|
|
|
## Exporting Sessions
|
|
|
|
CodeAgent automatically saves all executed code and JavaScript blocks during your session. You can export your complete automation workflow for sharing, version control, or re-running later.
|
|
|
|
### Quick Export
|
|
|
|
```python
|
|
from browser_use.code_use.notebook_export import export_to_ipynb, session_to_python_script
|
|
|
|
# After running your agent
|
|
await agent.run()
|
|
|
|
# Export to Jupyter notebook
|
|
notebook_path = export_to_ipynb(agent, "my_automation.ipynb")
|
|
|
|
# Export to Python script
|
|
script = session_to_python_script(agent)
|
|
with open("my_automation.py", "w") as f:
|
|
f.write(script)
|
|
```
|
|
|
|
### Export Formats
|
|
|
|
- **Jupyter Notebook (.ipynb)**: Interactive development, sharing, documentation
|
|
- **Python Script (.py)**: Production deployment, version control, automation
|
|
|
|
Both formats include:
|
|
- Setup code with browser initialization
|
|
- JavaScript code blocks as Python variables
|
|
- All executed Python cells with outputs
|
|
- Ready-to-run automation workflows
|