Releases: browser-use/browser-use
Releases Β· browser-use/browser-use
0.7.9
Actor Use
from browser_use import Browser, Agent
from browser_use.llm.openai import ChatOpenAI
async def main():
llm = ChatOpenAI(api_key="your-api-key")
browser = Browser()
await browser.start()
# 1. Actor: Precise navigation and element interactions
page = await browser.new_page("https://github.com/login")
email_input = await page.must_get_element_by_prompt("username field", llm=llm)
await email_input.fill("your-username")
# 2. Agent: AI-driven complex tasks
agent = Agent(browser=browser, llm=llm)
await agent.run("Complete login and navigate to my repositories")
await browser.stop()
What's Changed
- fix-date-format by @MagMueller in #3156
- feat: added cloud_browser feature by @sauravpanda in #3139
- fix-extraction-tasks by @MagMueller in #3157
- improve-readme by @MagMueller in #3158
- improve-readme2 by @MagMueller in #3159
- improve-readme3 by @MagMueller in #3161
- improve-readme4 by @MagMueller in #3162
- improve-readme5 by @MagMueller in #3163
- fix framework_events_script by @MagMueller in #3164
- update docs2 by @MagMueller in #3165
- Log browser-use pip version on agent start by @MagMueller in #3166
- updated docs and added link to signup for a api key by @sauravpanda in #3160
- Fix temp creds for ChatAWSBedrock by @tioans in #3120
- Actor Use by @gregpr07 in #3170
New Contributors
Full Changelog: 0.7.8...0.7.9
0.7.8

What's Changed
- Modify Ad-Use README to add license by @avocardio in #3053
- Add news-use demo: News monitoring agent with sentiment analysis by @avocardio in #3066
- Fix: missing news-use docs link by @avocardio in #3067
- chore: standardize import order readme by @shnartho in #3062
- type-safe-element-element by @MagMueller in #3080
- Fix: news-use demo video by @avocardio in #3081
- Fix: new video embed for news-use by @avocardio in #3083
- Update README by @avocardio in #3060
- fix: added new line handling for cdp by @sauravpanda in #3100
- Revise README with clone steps by @avocardio in #3088
- feat: automatically add www for allowed domains by @sauravpanda in #3101
- updated pricing on old docs by @sauravpanda in #3102
- Feature: Add msg-use demo by @avocardio in #3103
- Feature: added auto mode to msg-use by @avocardio in #3107
- fix: suppress cloud sync URLs when BROWSER_USE_CLOUD_SYNC=false by @sauravpanda in #3112
- feat: Support Prohibited Domains by @maticzav in #3115
- Feat: add veo3 support to ad-use by @avocardio in #3126
- include-js-tool by @MagMueller in #3054
- remove sensitive data from agent history and logging by @sauravpanda in #3132
- docs: MCP docs updated by @sauravpanda in #3133
- fix-rerunning by @MagMueller in #3137
- fix element hash by @MagMueller in #3140
- Remove-index-return-to-avoid-wrong-index-clicks by @MagMueller in #3143
- fix-pixel-prompt by @MagMueller in #3142
- improve-prompt-dom-meta-data by @MagMueller in #3144
- fix-js-return by @MagMueller in #3145
- log-js-result by @MagMueller in #3146
New Contributors
Full Changelog: 0.7.7...0.7.8
0.7.7
What's Changed
- feat: Add enhanced screenshot API by @avocardio in #3012
- DownloadsWatchdog watches BrowserStateRequestEvent to download PDFs by @CyrusNuevoDia in #3029
- fix take step by @MagMueller in #3037
- fix-step_number-in-take-step by @MagMueller in #3038
- removed hardcoded max iframe recursion limit by @gregpr07 in #3039
- Restructure examples documentation by @avocardio in #3040
- Add ad use demo: Instagram ad generator by @avocardio in #3049
- fix: Ad-Use demo by @avocardio in #3050
- fix: Added redirect for prompting guide in examples documentation by @avocardio in #3051
- Bump version from 0.7.6 to 0.7.7 by @MagMueller in #3052
New Contributors
- @avocardio made their first contribution in #3012
- @CyrusNuevoDia made their first contribution in #3029
Full Changelog: 0.7.6...0.7.7
Fixed iFrame dynamic depth
What's Changed
- remove 2 longer tests because this test mainly shows if browseruse works end to end by @MagMueller in #3027
- make iframe depth variable by @MagMueller in #3026
- cancel tests on new commit by @MagMueller in #3028
- 0.7.6 release by @gregpr07 in #3031
Full Changelog: 0.7.5...0.7.6
Cross Origin iFrame support, improved extraction layer, bugs π₯

What's Changed
- qwen support by @MagMueller in #2997
- add if main check to qwen example by @MagMueller in #2999
- Add Gemma Support by @tpcgold in #2580
- fix followup tasks by @MagMueller in #3000
- update comments in deepseek by @MagMueller in #3001
- update readme with latest version by @MagMueller in #3002
- improve ollama installation by @MagMueller in #3004
- Add MCP Server documentation by @sin4ch in #2998
- update gradio example by @MagMueller in #3005
- feat: fix MCP server JSON-RPC corruption and removed http mode by @sauravpanda in #3003
- cross-origin iframes with depth limits by @pirate in #2766
- updated hackathon deadline by @sauravpanda in #3008
- enable-cross_origin_iframes by @MagMueller in #3006
- make reasoning_models a parameter by @MagMueller in #3010
- Paint order filtering by @gregpr07 in #3007
- 0.7.5 release by @gregpr07 in #3013
- hello world π§’
New Contributors
Full Changelog: 0.7.4...0.7.5
Cost, speed, bugs π°ππ
What's Changed
- URL shortener by @gregpr07 in #2972
- Fixed immutability of tuples by @gregpr07 in #2973
- Remove unused screenshot constants by @ruseel in #2974
- add image context example by @zhcn in #2949
- Fixed
user_agent
param by @gregpr07 in #2945 - fix/cdp-viewport-initialization by @MagMueller in #2975
- fix: apply viewport settings via TabCreatedEvent handler by @jtanningbed in #2859
- fixed Chinese Characters Garbled in GIFs Generated by Pillow on macOS by @wuhulala in #1885
- docs: add links to other language versions of README by @dowithless in #2073
- Create google_maps_3d.yaml by @philippwiederkehr in #2224
- integrated pyotp 2FA generation by @mkopecki in #2552
- fix/issue-1716-event-driven-pause-resume by @MagMueller in #2977
- Consolidate Agent pause/resume state management to eliminate desynchronization by @MagellaX in #2583
- improve comments for pause by @MagMueller in #2978
- Add an ollama_options parameter to ChatOllama by @shea in #2736
- fixed the bug of only web in gmail_2fa_integration.py by @Davda-James in #2685
- event_timeouts by @MagMueller in #2980
- Added event timeouts config by @andreigh in #2721
- fix/issue-2610-remove-pymupdf-dependency by @MagMueller in #2982
- Fix #2610: Replace markdown-pdf with reportlab to resolve AGPL license conflict by @Louis454545 in #2645
- feat/video-recording by @MagMueller in #2983
- Add task video recording by @EnzoFanAccount in #2765
- hotfix numpy missing by @MagMueller in #2984
- feat/cdp-add-origins-storage-state by @MagMueller in #2986
- feat: add CDP implementation for capturing localStorage/sessionStorage by @jtanningbed in #2852
- fix codec error while writing log by @azhengzz in #2854
- fix: improve StorageStateWatchdog lifecycle management by @jtanningbed in #2853
- enable StorageStateWatchdog if user_data_dir provided by @MagMueller in #2987
- fix(gemini): Correct invalid schema by removing 'title' from required list by @3clyp50 in #2856
- added playwright integration example by @sauravpanda in #2890
- fix-disable-security-bug by @MagMueller in #2988
- fix: prevent disable_security from breaking browser extensions by @sauravpanda in #2860
- fix-downloads-dedup-clean by @MagMueller in #2989
- Magnus/eng 475 sync do not send data if not signed in by @sauravpanda in #2985
- ignore asci for chinese letters by @MagMueller in #2992
- 0.7.4 release by @gregpr07 in #2995
New Contributors
- @ruseel made their first contribution in #2974
- @jtanningbed made their first contribution in #2859
- @wuhulala made their first contribution in #1885
- @dowithless made their first contribution in #2073
- @MagellaX made their first contribution in #2583
- @shea made their first contribution in #2736
- @Davda-James made their first contribution in #2685
- @andreigh made their first contribution in #2721
- @3clyp50 made their first contribution in #2856
Full Changelog: 0.7.3...0.7.4
0.7.3
What's Changed
- fix-timeouts-long-websites-only-hashmap by @MagMueller in #2963
- timeouts-remove-unused-styles by @MagMueller in #2964
- bump version to 0.7.3 by @MagMueller in #2967
Full Changelog: 0.7.2...0.7.3
0.7.2
What's Changed
- smaller-highlights by @MagMueller in #2886
- new-tab-info by @MagMueller in #2887
- smaller-highlights-with-screensize by @MagMueller in #2889
- fix-viewport by @MagMueller in #2891
- less-timeouts by @MagMueller in #2892
- improve extract data by @MagMueller in #2893
- concise next goal by @MagMueller in #2894
- reduce frequency_penalty by @MagMueller in #2895
- increase-frequency-penalty by @MagMueller in #2897
- added back the executable builds for cli and mcp by @sauravpanda in #2905
- edit-quickstart-docs by @MagMueller in #2904
- delete-env2-file by @MagMueller in #2906
- fix broken docs link by @swiecki in #2907
- update-sensitive-data-docs by @MagMueller in #2911
- update-local-dev-docs by @MagMueller in #2914
- clean-up-prompt-to-reduce-confusion by @MagMueller in #2898
- fix-tests-radio by @MagMueller in #2916
- Add hackathon to readme by @mertunsall in #2921
- Center banner by @mertunsall in #2922
- prompt guide by @MagMueller in #2923
- Create library prompt guide by @MagMueller in #2812
- move guide location by @MagMueller in #2924
- update error message for scroll by @MagMueller in #2925
- change tool error message from DOM to browser-state by @MagMueller in #2926
- add first step logging to take step by @MagMueller in #2927
- remove-_log_first_step_startup-from-step by @MagMueller in #2928
- integration/agent-mail by @MagMueller in #2931
- change parameter chat google by @MagMueller in #2930
- update-default-llm-andagent-mail by @MagMueller in #2937
- easy-llm-import by @MagMueller in #2935
- fix-wildcard-imports by @MagMueller in #2938
- remove test self hosted by @MagMueller in #2939
- chore: relax major LLM lib version constraints by @kovalevvlad in #2936
- Fix patterns in allowed_domains by @p-l- in #2917
- fix gemini example by @MagMueller in #2940
- Add sample_images to enable browseruse to learn how to operate a plat⦠by @zhcn in #2910
- fix-pil-import by @MagMueller in #2943
- dont wait 10 seconds if allowed_domains not set by @MagMueller in #2942
- remove lmnr from examples by @MagMueller in #2946
- fix-system-prompt-for-new-interactive-elements by @MagMueller in #2952
- hooks-update by @MagMueller in #2953
- docs: update hooks docs for new APIs after Playwright removal (#2749) by @MariSchn in #2888
- fix-popup-handling by @MagMueller in #2956
- force-llm-output-after-failure by @MagMueller in #2957
New Contributors
- @swiecki made their first contribution in #2907
- @p-l- made their first contribution in #2917
- @zhcn made their first contribution in #2910
- @MariSchn made their first contribution in #2888
Full Changelog: 0.7.1...0.7.2
0.7.1
More Stable Browser Use
Recently, we have pushed a migration where we got rid of Playwright in favor of pure CDP. As expected, such a large migration introduced lots of bugs, which we quickly fixed thanks to the help of the community!
This version of Browser Use is significantly more stable!
What's Changed
- fix-browser-start by @MagMueller in #2844
- hot-fix-local-true-if-no-cdp-url by @MagMueller in #2846
- fix: Add sensitive data placeholder names to LLM prompts by @sauravpanda in #2850
- feat: CLI is back baby! by @sauravpanda in #2851
- feat: added a stale bot by @sauravpanda in #2857
- fix: add highlighting condition check by @sauravpanda in #2866
- fix-tab-switching by @MagMueller in #2868
- fix-typing by @MagMueller in #2869
- fix-clear-text by @MagMueller in #2870
- fix-windowsVirtualKeyCode by @MagMueller in #2871
- fix test by @MagMueller in #2872
- Generate python highlights for browser screenshot by @MagMueller in #2705
- highlight in parallel by @MagMueller in #2873
- make highlights sync by @MagMueller in #2874
- time_execution_async import by @MagMueller in #2875
- Fixed elements by @gregpr07 in #2878
- better exception handling from browser events -> LLM by @mertunsall in #2879
- Update gif.py by @Cfomodz in #2847
- Minor documentation changes for consistency. by @krishnarathore12 in #2843
- Improve extract structured data input, output, and LLM calls by @mertunsall in #2880
- remove-efficiency-rules by @MagMueller in #2877
- Do not input_text + scroll by @mertunsall in #2882
- Re-enable auto download pdfs by @mertunsall in #2883
- disable highlights by default by @mertunsall in #2884
- Bump version to 0.7.1 by @mertunsall in #2885
New Contributors
- @krishnarathore12 made their first contribution in #2843
Full Changelog: 0.7.0...0.7.1
0.7.0
What's Changed
- Remove unused parameters by @MagMueller in #2831
- Fix tests by @MagMueller in #2832
- Dev by @MagMueller in #2835
- bump version 0-7-0 by @MagMueller in #2838
β¨ New Interface
- The controller parameter has been renamed to tools.
- The BrowserSession class has been renamed to Browser.
ποΈ Removed Deprecated Parameters
- Agent:
planner_llm
memory_config
- other unused fields
- BrowserSession:
timezone
viewport_expansion
use_touch
- and additional legacy options
β»οΈ Classname Updates (Backwards Compatible)
- Classname changes (
Browser
, Tools) are backwards compatible
β Example new interface (Updated)
from browser_use import Agent, Browser, ChatOpenAI, Tools
llm = ChatOpenAI(model='gpt-4.1-mini')
browser = Browser(cdp_url='', headless=False)
tools = Tools()
agent = Agent(
task='',
llm=llm,
tools=tools,
browser=browser,
)