🌐 Browser-use is the easiest way to connect your AI agents with the browser.
💡 See what others are building and share your projects in our Discord! Want Swag? Check out our Merch store.
🌤️ Skip the setup - try our hosted version for instant browser automation! Try the cloud ☁︎.
With pip (Python>=3.11):
pip install browser-use
For memory functionality (requires Python<3.13 due to PyTorch compatibility):
pip install "browser-use[memory]"
Install the browser:
playwright install chromium --with-deps --no-shell
Spin up your agent:
import asyncio
from dotenv import load_dotenv
load_dotenv()
from browser_use import Agent
from langchain_openai import ChatOpenAI
async def main():
agent = Agent(
task="Compare the price of gpt-4o and DeepSeek-V3",
llm=ChatOpenAI(model="gpt-4o"),
)
await agent.run()
asyncio.run(main())
Add your API keys for the provider you want to use to your .env
file.
OPENAI_API_KEY=
ANTHROPIC_API_KEY=
AZURE_OPENAI_ENDPOINT=
AZURE_OPENAI_KEY=
GOOGLE_API_KEY=
DEEPSEEK_API_KEY=
GROK_API_KEY=
NOVITA_API_KEY=
For other settings, models, and more, check out the documentation 📕.
You can test browser-use using its Web UI or Desktop App.
You can also use our browser-use
interactive CLI (similar to claude
code):
pip install browser-use[cli]
browser-use
Task: Add grocery items to cart, and checkout.
Prompt: Add my latest LinkedIn follower to my leads in Salesforce.
Prompt: Read my CV & find ML jobs, save them to a file, and then start applying for them in new tabs, if you need help, ask me.'
apply.to.jobs.8x.mp4
Prompt: Write a letter in Google Docs to my Papa, thanking him for everything, and save the document as a PDF.
Prompt: Look up models with a license of cc-by-sa-4.0 and sort by most likes on Hugging face, save top 5 to file.
hugging_face_high_quality.mp4
For more examples see the examples folder or join the Discord and show off your project. You can also see our awesome-prompts
repo for prompting inspiration.
Tell your computer what to do, and it gets it done.
- Improve agent memory to handle +100 steps
- Enhance planning capabilities (load website specific context)
- Reduce token consumption (system prompt, DOM state)
- Enable detection for all possible UI elements
- Improve state representation for UI elements so that all LLMs can understand what's on the page
- Let user record a workflow - which we can rerun with browser-use as a fallback
- Make rerunning of workflows work, even if pages change
- Create various templates for tutorial execution, job application, QA testing, social media, etc. which users can just copy & paste.
- Improve docs
- Make it faster
- Human work is sequential. The real power of a browser agent comes into reality if we can parallelize similar tasks. For example, if you want to find contact information for 100 companies, this can all be done in parallel and reported back to a main agent, which processes the results and kicks off parallel subtasks again.
We love contributions! Feel free to open issues for bugs or feature requests. To contribute to the docs, check out the /docs
folder.
To learn more about the library, check out the local setup 📕.
main
is the primary development branch with frequent changes. For production use, install a stable versioned release instead.
Want to show off your Browser-use swag? Check out our Merch store. Good contributors will receive swag for free 👀.
If you use Browser Use in your research or project, please cite:
@software{browser_use2024,
author = {Müller, Magnus and Žunič, Gregor},
title = {Browser Use: Enable AI to control your browser},
year = {2024},
publisher = {GitHub},
url = {https://github.com/browser-use/browser-use}
}
This fork of browser-use adds realistic human-like mouse movements and typing behaviors to create more natural browser interactions 8D48 .
- Realistic Mouse Movements: The mouse cursor now follows a human-like path with natural acceleration and deceleration when interacting with elements.
- Varied Mouse Movement Patterns: Choose between linear, bezier curve, or human-like movement patterns.
- Natural Typing Behavior: Characters are typed with variable delays between keystrokes.
- Configurable Behavior: Adjust speed, variation, and movement patterns to match specific use cases.
To enable human-like interactions, create a BrowserProfile
with the appropriate settings:
from browser_use.browser.profile import BrowserProfile
# Create a profile with human-like behaviors
human_profile = BrowserProfile(
use_human_like_mouse=True, # Enable human-like mouse movements
mouse_movement_pattern="human", # Use the most realistic pattern
min_mouse_movement_time=0.3, # Minimum time to complete a movement
max_mouse_movement_time=1.0, # Maximum time to complete a movement
mouse_speed_variation=0.4, # Amount of speed variation
headless=False # Set to False to see the movements
)
# Use this profile with your agent
agent = Agent(
task,
model,
controller=controller,
use_vision=True,
browser_profile=human_profile
)
The following mouse movement patterns are available:
- linear: Simple straight line movement from point A to point B.
- bezier: Curved movement using quadratic bezier curves, more natural than linear.
- human: The most realistic pattern with slight variations, acceleration/deceleration, and occasional small errors.
Check out the example in examples/use-cases/check_appointment_human.py
which demonstrates how to use this functionality.
- Avoiding Bot Detection: Many websites use behavioral analysis to detect bots. Human-like interactions can help avoid detection.
- Testing User Experience: More accurately simulate real user behavior for testing websites and applications.
- Training AI Agents: Provide more realistic interactions when training AI agents to use web interfaces.
The human-like behavior is implemented through:
MouseMovementService
: Generates and executes realistic mouse movements.- Modified interaction methods in
BrowserSession
: Uses the mouse service before clicks and inputs. - Configuration options in
BrowserProfile
: Controls the behavior of the movements.
This project is a fork of browser-use with enhancements for human-like interactions.