Files
browser-use/docs/legacy/code-agent/basics.mdx
ShawnPana 96f39b3c75 Move Code Agent, Actor, and Sandbox docs to Legacy section
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>
2026-03-02 15:30:39 -08:00

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