The "browser-use" project is a Python-based tool designed to allow AI agents to control web browsers, facilitating tasks such as navigation and data extraction. Managed by the "browser-use" organization on GitHub, it has garnered significant community interest with over 31,000 stars. The project is in active development, with a focus on enhancing compatibility, documentation, and user experience.
Magnus Müller (MagMueller)
Gregor Žunič (gregpr07)
Nino Risteski (NinoRisteski)
Matic Zavadlal (maticzav)
Morris Lee (k-w-lee)
Codebeaver-ai[bot]
Timespan | Opened | Closed | Comments | Labeled | Milestones |
---|---|---|---|---|---|
7 Days | 42 | 51 | 40 | 0 | 1 |
30 Days | 183 | 93 | 321 | 1 | 1 |
90 Days | 320 | 125 | 868 | 119 | 1 |
All Time | 365 | 131 | - | - | - |
Like all software activity quantification, these numbers are imperfect but sometimes useful. Comments, Labels, and Milestones refer to those issues opened in the timespan in question.
Developer | Avatar | Branches | PRs | Commits | Files | Changes |
---|---|---|---|---|---|---|
Magnus Müller | ![]() |
2 | 22/21/0 | 93 | 31 | 5021 |
Gregor Žunič | ![]() |
1 | 2/2/0 | 8 | 16 | 3480 |
codebeaver-ai[bot] | ![]() |
3 | 11/2/10 | 14 | 5 | 3458 |
Matic Zavadlal | ![]() |
1 | 1/2/0 | 18 | 15 | 1104 |
Morris Lee | ![]() |
1 | 2/5/0 | 11 | 4 | 286 |
Rishabh Bhandari | ![]() |
1 | 1/1/0 | 1 | 1 | 42 |
WeiBing | ![]() |
1 | 2/2/0 | 2 | 1 | 39 |
XxAlonexX | ![]() |
1 | 1/2/0 | 1 | 1 | 17 |
jersobh | ![]() |
1 | 1/1/0 | 1 | 2 | 9 |
Nino Risteski | ![]() |
1 | 2/2/0 | 1 | 1 | 8 |
Vishal Rao | ![]() |
1 | 1/1/0 | 1 | 1 | 4 |
paperboardofficial | ![]() |
1 | 4/2/0 | 1 | 1 | 4 |
Takuto Yuki | ![]() |
1 | 4/3/2 | 1 | 1 | 2 |
Henry | ![]() |
1 | 1/1/0 | 1 | 1 | 2 |
Kushtrim Junuzi | ![]() |
1 | 1/1/0 | 1 | 1 | 2 |
Tomás Lavez | ![]() |
1 | 2/1/1 | 1 | 1 | 1 |
Yuva (D-Yuva) | 0 | 1/0/0 | 0 | 0 | 0 | |
None (clates) | 0 | 0/1/0 | 0 | 0 | 0 | |
BlockQuest (0xAsten) | 0 | 0/1/0 | 0 | 0 | 0 | |
Anurag Chatap (achatap) | 0 | 1/0/0 | 0 | 0 | 0 | |
Falah Gate Salieh (falahgs) | 0 | 2/0/0 | 0 | 0 | 0 | |
None (j0yk1ll) | 0 | 0/1/0 | 0 | 0 | 0 | |
Pierre Gronlier (ticapix) | 0 | 0/1/0 | 0 | 0 | 0 | |
None (timeash) | 0 | 1/0/0 | 0 | 0 | 0 | |
None (AllProAi) | 0 | 1/0/0 | 0 | 0 | 0 | |
Hang Zhao (FindBoat) | 0 | 1/0/0 | 0 | 0 | 0 | |
Varun Shrivastava (Varun270) | 0 | 1/0/0 | 0 | 0 | 0 | |
Ali Masri (alimasri) | 0 | 1/0/0 | 0 | 0 | 0 | |
Anish Tejwani (anish891) | 0 | 1/0/0 | 0 | 0 | 0 | |
Karim Lahrichi (klahrich) | 0 | 1/0/1 | 0 | 0 | 0 | |
Mike Baynton (mbaynton) | 0 | 1/1/0 | 0 | 0 | 0 | |
Takeshi Kishi (takeyaqa) | 0 | 0/1/0 | 0 | 0 | 0 | |
Mladen Rakonjac (mladen1nf) | 0 | 0/1/0 | 0 | 0 | 0 | |
Zyad (zyadcodes) | 0 | 1/0/1 | 0 | 0 | 0 | |
Daniele Roccaforte (YonderUrik) | 0 | 1/0/0 | 0 | 0 | 0 | |
Michael Bianco (iloveitaly) | 0 | 3/0/0 | 0 | 0 | 0 | |
None (jhachirag7) | 0 | 0/0/1 | 0 | 0 | 0 | |
Paul Lockett (PaulLockett) | 0 | 1/0/0 | 0 | 0 | 0 | |
Aryan Jangid (aryanjangid) | 0 | 1/0/1 | 0 | 0 | 0 | |
mannaandpoem (mannaandpoem) | 0 | 1/0/0 | 0 | 0 | 0 | |
shivam (shivamkhatri) | 0 | 1/0/0 | 0 | 0 | 0 | |
vincent (vvincent1234) | 0 | 1/1/0 | 0 | 0 | 0 | |
GodCreator333 (GODCREATOR333) | 0 | 0/1/0 | 0 | 0 | 0 | |
Carlos A. Planchón (carlosplanchon) | 0 | 1/0/0 | 0 | 0 | 0 | |
Abhi (Abhi-Balijepalli) | 0 | 1/0/1 | 0 | 0 | 0 | |
Sam Chaudry (CookieMonsteriOS) | 0 | 1/1/0 | 0 | 0 | 0 | |
Mohammed Hasan (R-Mohammed-Hasan) | 0 | 1/1/0 | 0 | 0 | 0 | |
None (vinayakathavale15) | 0 | 1/0/1 | 0 | 0 | 0 | |
Riddhimaan Senapati (Riddhimaan-Senapati) | 0 | 0/0/1 | 0 | 0 | 0 |
PRs: created by that dev and opened/merged/closed-unmerged during the period
Risk | Level (1-5) | Rationale |
---|---|---|
Delivery | 4 | The project faces significant delivery risks due to a backlog of unresolved issues and a high volume of open pull requests. The recent analysis shows 234 open issues, with critical bugs like #832 affecting core functionalities such as event listeners. The backlog of unresolved issues could impact delivery timelines if not addressed promptly. Additionally, the lack of thorough documentation in PR#831 and minimal content updates pose risks to effective communication and user guidance, further affecting delivery. |
Velocity | 3 | Velocity is at risk due to uneven contribution levels among developers and a high volume of open pull requests (48). While key contributors like Magnus Müller are highly active, the reliance on a few individuals could lead to bottlenecks if they become unavailable. The project's progress is also hindered by the accumulation of unresolved issues, which could overwhelm the team and slow down development. |
Dependency | 3 | The project shows dependency risks due to its reliance on specific libraries like 'langchain_core' and 'pydantic'. Any significant changes in these libraries could impact the project's functionality. Additionally, the introduction of new features like Camoufox for bot evasion requires thorough testing to ensure they do not introduce new vulnerabilities or dependencies that could affect delivery and velocity. |
Team | 3 | Team risks stem from uneven contribution levels, with key developers like Magnus Müller contributing significantly more than others. This disparity may indicate potential burnout or misalignment in task distribution. The presence of numerous developers with minimal or no commits suggests potential engagement issues or communication problems within the team. |
Code Quality | 4 | Code quality is at risk due to the high volume of changes by a few developers, which necessitates careful review to maintain standards. The failure of tests in PR#775 indicates unresolved issues that could affect code quality. Additionally, the complexity of managing asynchronous operations and browser contexts could introduce technical debt if not carefully monitored. |
Technical Debt | 4 | Technical debt is accumulating due to frequent updates to critical files like 'browser_use/agent/message_manager/service.py' and 'browser_use/dom/buildDomTree.js'. The intricate management of tokens and asynchronous operations requires careful oversight to prevent further debt accumulation. The reliance on specific libraries also poses risks if they undergo significant changes. |
Test Coverage | 3 | Test coverage is moderate but at risk due to incomplete efforts in resolving test failures, as seen in PR#775 where only 4 out of 5 tests pass. While new unit tests are being introduced, the absence of updates to existing tests represents a missed opportunity to bolster the robustness of the testing framework. |
Error Handling | 3 | Error handling shows moderate risk with improvements seen in PR#816 addressing critical runtime errors. However, unresolved issues like those highlighted in #832 regarding event listeners suggest gaps in error handling that need addressing. The focus on logging and exception management within action definitions supports error tracking but requires continuous improvement. |
Recent GitHub issue activity for the "browser-use" project has been robust, with a wide range of issues being reported and addressed. The issues cover various aspects of the project, from bug reports and feature requests to documentation improvements and user support inquiries.
Issue #818: This documentation issue highlights the misleading nature of the project's name, suggesting it only works with Google Chrome rather than all browsers. This points to a need for clearer communication about browser compatibility.
Issue #812: A user reported an installation error on Debian 12, questioning which browsers are supported. This indicates potential gaps in documentation regarding system compatibility and supported browsers.
Issue #798: A request for using the current browser instead of opening a new one suggests a need for more flexible browser management options within the software.
Issue #771: A test issue was closed without further action, indicating routine maintenance or testing by the developers.
Issue #733: A bug report concerning custom actions not working with Gemini models highlights potential compatibility issues with specific LLMs (Language Learning Models).
Issue #722: An AttributeError related to 'CustomBrowserContext' suggests possible gaps in API functionality or documentation clarity.
Issue #713: A bug where sensitive data is not masked in controller logs points to privacy concerns that need addressing.
Issue #674: A question about SSO authentication support was closed, implying that such functionality might already be available or not applicable.
Issue #668: Documentation regarding vulnerability reporting was found lacking, indicating a need for improved security communication channels.
Issue #665: A feature request to include XPath information in action results suggests an interest in enhancing test automation capabilities.
Documentation Needs: Several issues highlight gaps or inaccuracies in documentation, particularly around system compatibility, browser support, and security reporting.
Compatibility Concerns: There are recurring themes around compatibility with different LLMs and operating systems, indicating areas where the software might not be fully optimized or documented.
Feature Requests: Users are actively requesting new features, such as better integration with existing browsers, enhanced logging capabilities, and support for additional models or platforms.
Bug Reports: Common bugs include issues with element interaction on web pages, errors related to specific configurations or environments, and problems with custom actions not executing as expected.
Overall, the project's active issue tracker reflects a dynamic development environment with ongoing efforts to improve functionality, expand compatibility, and enhance user experience.
#818 - Documentation issue regarding project name misleading users about browser compatibility.
#812 - Installation error on Debian 12; query about supported browsers.
#798 - Request to use the current browser instead of opening a new one.
#733 - Bug report on custom actions not working with Gemini models.
#722 - AttributeError related to 'CustomBrowserContext'.
#713 - Sensitive data not masked in controller logs.
These issues reflect ongoing efforts to address user-reported problems and enhance the software's capabilities and documentation.
The "browser-use" project is a popular open-source initiative aimed at enabling AI agents to control web browsers. This analysis focuses on the current state of pull requests (PRs) in the repository, highlighting notable issues and developments.
#831: Create README.md
#829: Updated the incorrect redirecting link for Langchain Models
#816: [Fix] Handle RuntimeError: Event loop is closed (#219)
#813: Fix issue #762: Complete the system prompt
#805: use camoufox for bot evasion
#801: Added adblocker in playwright instance
#830: Metadata in history
#826: For models without tool calling, add available actions to context
#815: Update browser-settings.mdx
#811: Include model for page_extraction_llm
The "browser-use" project is actively maintained with numerous contributions aimed at enhancing functionality and user experience. Key areas of focus include improving error handling, documentation clarity, and feature robustness. However, procedural issues such as unsigned CLAs and unmerged experimental features highlight areas for process improvement. Addressing these will streamline contributions and enhance project development efficiency.
browser_use/agent/message_manager/service.py
Structure & Organization:
BaseModel
for settings (MessageManagerSettings
) ensures type safety and validation.MessageManager
class is central to managing message history and state, with methods for adding tasks, messages, and handling sensitive data.Code Quality:
_count_tokens
and _filter_sensitive_data
that encapsulate specific functionalities, promoting code reuse and readability.@time_execution_sync
are used to measure execution time, indicating a focus on performance monitoring.Potential Improvements:
_count_tokens
method could benefit from integration with a tokenizer library for more accurate token counting instead of rough estimates.msg
to improve readability.browser_use/agent/service.py
Structure & Organization:
Agent
class responsible for orchestrating tasks using the browser.Generic[Context]
) suggests flexibility in context management.Code Quality:
asyncio
, which is crucial for non-blocking I/O operations in browser automation._handle_step_error
, multi_act
, and _run_planner
.Potential Improvements:
_execute_history_step
). Refactoring them into smaller helper functions could improve clarity.browser_use/agent/views.py
Structure & Organization:
AgentSettings
, AgentState
, and AgentOutput
are clearly defined with appropriate fields.Code Quality:
model_dump
in AgentHistory
provide custom serialization logic, which is useful for persisting state.Potential Improvements:
browser_use/dom/buildDomTree.js
Structure & Organization:
Code Quality:
DOM_CACHE
) and performance metrics (PERF_METRICS
) indicates a focus on efficiency, especially in debug mode.highlightElement
are well-documented with inline comments explaining their logic.Potential Improvements:
browser_use/browser/context.py
Structure & Organization:
BrowserContextConfig
and BrowserContext
.Code Quality:
Potential Improvements:
examples/models/gemini.py
Structure & Organization:
ChatGoogleGenerativeAI
) and run a task.Code Quality:
Potential Improvements:
os.getenv('GEMINI_API_KEY')
) to provide more informative messages in case of failure.eval/gpt-4o-viewport-0.py
Structure & Organization:
ChatOpenAI
) for evaluation purposes.Code Quality:
Potential Improvements:
docs/customize/browser-settings.mdx
Content & Structure:
BrowserConfig
and BrowserContextConfig
.Clarity & Completeness:
Potential Improvements:
.gitignore
Content & Structure:
.gitignore
file covering common Python-related files/directories as well as project-specific entries like cookies and history files.Effectiveness:
Overall, the source code demonstrates strong organization, effective use of modern Python features (like async programming), and attention to performance considerations. However, given the complexity of some files, further modularization could enhance maintainability.
High Activity from Magnus Müller: Magnus is heavily involved in both development and maintenance tasks. His work spans across various aspects of the project, including feature enhancements, bug fixes, code refactoring, and documentation updates. His contributions are crucial to the project's progress.
Collaboration Across Team Members: There is evidence of collaboration among team members through merged pull requests. This indicates a collaborative environment where team members contribute to different aspects of the project.
Focus on Performance and Usability Improvements: Recent activities include significant efforts to improve performance metrics, enhance user experience, and refine system prompts. This aligns with the project's roadmap of improving agent memory and reducing token consumption.
Continuous Testing and Documentation Updates: The team is actively engaged in updating tests to ensure coverage and reliability. Documentation is also regularly updated to reflect changes and improvements in the project.
Overall, the development team is actively working on enhancing the functionality of the "browser-use" project while ensuring code quality through testing and documentation.