Repository Analysis

browser-use/browser-use

🌐 Make websites accessible for AI agents. Automate tasks online with ease.

30.9 Strong AI signal View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of browser-use/browser-use, a Python project with 104,626 GitHub stars. SynthScan v2.0 examined 138,634 lines of code across 453 source files, recording 3310 pattern matches distributed across 24 syntactic categories. The overall adjusted score of 30.9 places this repository in the Strong AI signal band.

The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).

30.9
Adjusted Score
30.9
Raw Score
100%
Time Factor
2026-07-13
Last Push
104.6K
Stars
Python
Language
138.6K
Lines of Code
453
Files
3.3K
Pattern Hits
2026-07-14
Scan Date
0.32
HC Hit Rate

What These Metrics Mean

Adjusted Score
Primary synthetic code indicator. Raw score normalised per 1,000 lines of code and multiplied by the temporal discount factor. This is the definitive comparative metric — use it to rank repositories by AI authorship density.
Raw Score
The unmodified sum of all severity-weighted, context-multiplied pattern match scores before temporal discounting. Reflects the absolute signal strength independent of when the repository was last active.
Time Factor
The temporal discount multiplier (0–100%) applied to the raw score. Repositories last updated before ChatGPT's launch (Nov 2022) receive a 5% factor. Full signal is only assigned to repositories active in the post-adoption era (Jan 2024+).
Pattern Hits
Total count of individual pattern matches across all files and categories. A high hit count with a low score may indicate a very large codebase with isolated AI snippets; a low count with a high score indicates dense, concentrated AI signatures.
HC Hit Rate
High+Critical pattern hits per file, averaged across the repository. This orthogonal signal catches repositories where a few files are densely packed with high-severity AI tells — a strong indicator even when the normalised score appears moderate due to codebase size.
Lines of Code / Files
Total lines and files analysed. The scanner examines 94 file extensions. These denominators are used to normalise the score, enabling fair comparison between repositories of vastly different sizes.

Score History

This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.

Severity Breakdown

Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.

CRITICAL 15HIGH 130MEDIUM 273LOW 2892

Directory Score Breakdown

This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.

Pattern Findings

The scanner identified 3310 distinct pattern matches across 24 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.

Reading the findings table: The Severity column indicates the diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.

Hyper-Verbose Identifiers1311 hits · 1077 pts
SeverityFileLineSnippetContext
LOWtests/ci/test_ai_step.py10async def test_execute_ai_step_basic():CODE
LOWtests/ci/test_ai_step.py46async def test_execute_ai_step_with_screenshot():CODE
LOWtests/ci/test_ai_step.py95async def test_execute_ai_step_error_handling():CODE
LOWtests/ci/test_browser_use_skill_install_docs.py19def _fake_browser_harness_tools(tmp_path: Path, skill_text: str) -> Path:CODE
LOWtests/ci/test_browser_use_skill_install_docs.py48def test_docs_install_browser_use_skill_from_package_alias():CODE
LOWtests/ci/test_browser_use_skill_install_docs.py59def test_browser_use_cli_installs_browser_harness_package_skill(tmp_path):CODE
LOWtests/ci/test_browser_use_skill_install_docs.py96def test_browser_use_cli_validates_destination_before_installing_harness(tmp_path):CODE
LOWtests/ci/test_screenshot_exclusion.py20def test_screenshot_excluded_with_use_vision_false():CODE
LOWtests/ci/test_screenshot_exclusion.py34def test_screenshot_excluded_with_use_vision_true():CODE
LOWtests/ci/test_screenshot_exclusion.py48def test_screenshot_included_with_use_vision_auto():CODE
LOWtests/ci/test_screenshot_exclusion.py62def test_screenshot_excluded_with_custom_tools_and_use_vision_false():CODE
LOWtests/ci/test_screenshot_exclusion.py89def test_screenshot_excluded_with_custom_tools_and_use_vision_true():CODE
LOWtests/ci/test_screenshot_exclusion.py121def test_screenshot_included_with_custom_tools_and_use_vision_auto():CODE
LOWtests/ci/test_screenshot_exclusion.py143def test_tools_exclude_action_method():CODE
LOWtests/ci/test_screenshot_exclusion.py158def test_exclude_action_prevents_re_registration():CODE
LOWtests/ci/test_action_record.py65async def test_start_stop_recording_produces_video(browser_session: BrowserSession, page_url: str, tmp_path: Path):CODE
LOWtests/ci/test_action_record.py94async def test_start_recording_twice_raises(browser_session: BrowserSession, tmp_path: Path):CODE
LOWtests/ci/test_action_record.py106async def test_stop_without_start_returns_none(browser_session: BrowserSession):CODE
LOWtests/ci/test_action_record.py112async def test_on_browser_connected_degrades_gracefully_when_recording_fails(CODE
LOWtests/ci/test_action_record.py134async def test_profile_record_video_dir_still_works(page_url: str, tmp_path: Path):CODE
LOWtests/ci/test_event_bus_resilience.py20def _tear_down_like_agent_close(bus: EventBus) -> None:CODE
LOWtests/ci/test_event_bus_resilience.py26def test_browser_session_uses_resilient_event_bus():CODE
LOWtests/ci/test_event_bus_resilience.py32def test_resilient_event_bus_keeps_event_bus_name_prefix():CODE
LOWtests/ci/test_event_bus_resilience.py39async def test_step_on_torn_down_bus_is_noop_not_assertion():CODE
LOWtests/ci/test_event_bus_resilience.py52async def test_torn_down_bus_still_restarts_on_dispatch():CODE
LOWtests/ci/test_event_bus_resilience.py72async def test_stock_event_bus_reproduces_the_crash():CODE
LOWtests/ci/test_variable_substitution.py38def test_substitute_single_variable(mock_llm):CODE
LOWtests/ci/test_variable_substitution.py62def test_substitute_multiple_variables(mock_llm):CODE
LOWtests/ci/test_variable_substitution.py95def test_substitute_partial_variables(mock_llm):CODE
LOWtests/ci/test_variable_substitution.py121def test_substitute_nonexistent_variable(mock_llm):CODE
LOWtests/ci/test_variable_substitution.py145def test_substitute_in_nested_dict(mock_llm):CODE
LOWtests/ci/test_variable_substitution.py202def test_substitute_preserves_original_history(mock_llm):CODE
LOWtests/ci/test_variable_substitution.py227def test_substitute_empty_variables(mock_llm):CODE
LOWtests/ci/test_variable_substitution.py248def test_substitute_same_value_multiple_times(mock_llm):CODE
LOWtests/ci/test_ax_name_matching.py21async def test_ax_name_matching_succeeds_when_hash_fails(httpserver):CODE
LOWtests/ci/test_ax_name_matching.py157async def test_ax_name_matching_requires_same_node_type(httpserver):CODE
LOWtests/ci/test_ax_name_matching.py244def test_match_level_enum_includes_ax_name():CODE
LOWtests/ci/test_ax_name_matching.py251async def test_ax_name_matching_before_attribute_matching(httpserver):CODE
LOWtests/ci/test_ax_name_matching.py366def test_is_menu_opener_step_detects_aria_haspopup():CODE
LOWtests/ci/test_ax_name_matching.py408def test_is_menu_opener_step_detects_guidewire_toggle():CODE
LOWtests/ci/test_ax_name_matching.py450def test_is_menu_opener_step_returns_false_for_regular_element():CODE
LOWtests/ci/test_ax_name_matching.py492def test_is_menu_item_element_detects_role_menuitem():CODE
LOWtests/ci/test_ax_name_matching.py515def test_is_menu_item_element_detects_guidewire_class():CODE
LOWtests/ci/test_ax_name_matching.py538def test_is_menu_item_element_returns_false_for_regular_element():CODE
LOWtests/ci/test_markdown_chunking.py16 def test_short_content_single_chunk(self):CODE
LOWtests/ci/test_markdown_chunking.py207 def test_start_from_char_past_end_returns_empty(self):CODE
LOWtests/ci/test_markdown_chunking.py212 def test_start_from_char_zero_returns_all(self):CODE
LOWtests/ci/test_markdown_chunking.py221 def test_overlap_lines_carry_context(self):CODE
LOWtests/ci/test_markdown_chunking.py251 def test_single_oversized_block_allowed(self):CODE
LOWtests/ci/test_markdown_chunking.py268 def test_large_table_produces_valid_chunks(self):CODE
LOWtests/ci/test_markdown_chunking.py285 def test_table_without_thead_normalization(self):CODE
LOWtests/ci/test_markdown_chunking.py301 async def test_table_without_thead_normalized_via_serializer(self, browser_session, httpserver: HTTPServer):CODE
LOWtests/ci/test_markdown_chunking.py31 def test_chunk_offsets_cover_full_content(self):CODE
LOWtests/ci/test_markdown_chunking.py50 def test_splits_at_header_boundary(self):CODE
LOWtests/ci/test_markdown_chunking.py67 def test_header_preferred_split_moves_header_to_next_chunk(self):CODE
LOWtests/ci/test_markdown_chunking.py82 def test_header_preferred_split_doesnt_create_tiny_chunks(self):CODE
LOWtests/ci/test_markdown_chunking.py100 def test_code_fence_not_split(self):CODE
LOWtests/ci/test_markdown_chunking.py121 def test_table_not_split_mid_row(self):CODE
LOWtests/ci/test_markdown_chunking.py139 def test_table_header_in_overlap_for_continuation(self):CODE
LOWtests/ci/test_markdown_chunking.py155 def test_table_header_carried_across_three_plus_chunks(self):CODE
1251 more matches not shown…
Excessive Try-Catch Wrapping631 hits · 564 pts
SeverityFileLineSnippetContext
LOWtests/ci/evaluate_tasks.py105 except Exception as browser_error:CODE
LOWtests/ci/evaluate_tasks.py118 except Exception as agent_error:CODE
LOWtests/ci/evaluate_tasks.py137 except Exception as llm_error:CODE
LOWtests/ci/evaluate_tasks.py187 except Exception as e:STRING
LOWtests/ci/evaluate_tasks.py191 except Exception:STRING
LOWtests/ci/evaluate_tasks.py269 except Exception as e:CODE
LOWtests/ci/evaluate_tasks.py356 except Exception as e:CODE
LOWtests/ci/interactions/test_dropdown_native.py515 except Exception as e:CODE
LOWtests/ci/models/test_azure_responses_api.py262 except Exception as e:CODE
LOWtests/ci/browser/test_true_cross_origin_click.py133 except Exception as e:STRING
LOWtests/ci/browser/test_cdp_headers.py74 except Exception:CODE
LOWtests/ci/browser/test_cdp_headers.py120 except Exception:CODE
LOWtests/ci/browser/test_cdp_headers.py164 except Exception:CODE
LOWtests/ci/browser/test_cross_origin_click.py135 except Exception as e:STRING
LOWtests/ci/infrastructure/test_registry_validation.py485 except Exception as e:CODE
LOWtests/ci/infrastructure/test_registry_validation.py497 except Exception as e:CODE
LOWtests/ci/infrastructure/test_registry_validation.py509 except Exception as e:CODE
LOWtests/ci/infrastructure/test_registry_validation.py546 except Exception as e:CODE
LOWtests/ci/infrastructure/test_filesystem.py210 except Exception:CODE
LOWtests/ci/infrastructure/test_filesystem.py221 except Exception:CODE
LOW…astructure/test_registry_action_parameter_injection.py250 except Exception as e:CODE
LOWtests/scripts/test_frame_hierarchy.py54 except Exception:CODE
LOWtests/scripts/test_frame_hierarchy.py123 except Exception as e:CODE
LOWtests/scripts/test_frame_hierarchy.py139 except Exception:CODE
LOWtests/scripts/test_frame_hierarchy.py216 except Exception as e:CODE
LOWtests/scripts/test_frame_hierarchy.py229 except Exception:CODE
LOWexamples/ui/gradio_demo.py77 except Exception as e:CODE
MEDIUMexamples/features/add_image_context.py103 print(f'Error loading sample images: {e}')CODE
LOWexamples/custom-functions/action_filters.py70 except Exception:CODE
LOWexamples/custom-functions/cua.py52 except Exception as e:CODE
LOWexamples/custom-functions/cua.py174 except Exception as e:CODE
MEDIUMexamples/custom-functions/cua.py175 print(f'Error handling action {action}: {e}')CODE
LOWexamples/custom-functions/cua.py272 except Exception as e:STRING
LOWexamples/custom-functions/cua.py313 except Exception as e:STRING
LOWexamples/custom-functions/file_upload.py63 except Exception as e:CODE
LOWexamples/custom-functions/parallel_agents.py118 except Exception as e:STRING
MEDIUMexamples/custom-functions/parallel_agents.py119 print(f'Error creating subtasks: {e}')STRING
LOWexamples/custom-functions/parallel_agents.py186 except Exception as e:CODE
LOWexamples/custom-functions/parallel_agents.py205 except Exception as e:CODE
LOWexamples/custom-functions/parallel_agents.py214 except Exception as e:CODE
LOWexamples/custom-functions/parallel_agents.py221 except Exception as e:CODE
LOWexamples/custom-functions/parallel_agents.py238 except Exception:CODE
LOWexamples/models/oci_models.py117 except Exception as e:CODE
LOWexamples/models/oci_models.py149 except Exception as e:CODE
LOWexamples/models/oci_models.py175 except Exception as e:CODE
LOWexamples/models/oci_models.py202 except Exception as e:CODE
LOWexamples/models/oci_models.py241 except Exception as e:CODE
LOWexamples/models/aws.py91 except Exception as e:CODE
LOWexamples/models/langchain/chat.py178 except Exception as e:CODE
LOWexamples/models/langchain/chat.py190 except Exception as e:CODE
LOWexamples/integrations/gmail_2fa_integration.py77 except Exception as e:CODE
LOWexamples/integrations/gmail_2fa_integration.py151 except Exception as e:CODE
LOWexamples/integrations/gmail_2fa_integration.py174 except Exception as e:CODE
LOWexamples/integrations/gmail_2fa_integration.py264 except Exception as e:CODE
LOWexamples/integrations/discord/discord_api.py74 except Exception as e:CODE
MEDIUMexamples/integrations/discord/discord_api.py75 print(f'Error during bot startup: {e}')CODE
LOWexamples/integrations/discord/discord_api.py89 except Exception as e:CODE
MEDIUMexamples/integrations/discord/discord_api.py90 print(f'Error sending start message: {e}')CODE
LOWexamples/integrations/discord/discord_api.py95 except Exception as e:CODE
LOWexamples/integrations/discord/discord_api.py102 except Exception as e:CODE
571 more matches not shown…
Cross-Language Confusion82 hits · 413 pts
SeverityFileLineSnippetContext
HIGHtests/ci/test_beta_agent.py1072 'arguments': {'cmd': 'sleep 60 && echo done', 'yield_time_ms': 250},CODE
HIGHtests/scripts/debug_iframe_scrolling.py36 "evaluation_previous_goal": null,STRING
HIGHbrowser_use/tools/service.py233 while ((match = re.exec(fullText)) !== null) {CODE
HIGHbrowser_use/tools/service.py242 if (no.offset <= match.index && no.offset + no.length > match.index) {CODE
HIGHbrowser_use/tools/service.py247 matches.push({CODE
HIGHbrowser_use/tools/service.py214 if (text && text.trim()) {CODE
HIGHbrowser_use/tools/service.py215 nodeOffsets.push({offset: fullText.length, length: text.length, node: node});CODE
HIGHbrowser_use/tools/service.py263 while (current && current !== document.body && current !== document) {CODE
HIGHbrowser_use/tools/service.py267 else if (current.className && typeof current.className === 'string') {CODE
HIGHbrowser_use/tools/service.py296 if (ATTRIBUTES && ATTRIBUTES.length > 0) {CODE
HIGHbrowser_use/tools/service.py307 if (val !== null) {CODE
HIGHbrowser_use/tools/service.py313 results.push(item);CODE
HIGHbrowser_use/tools/service.py947 params={'expression': 'window.scrollY || window.pageYOffset || 0'}, session_id=cdp_session.session_idCODE
HIGHbrowser_use/tools/extraction/schema_utils.py121 # so absent fields serialize as null, not an out-of-set value.COMMENT
HIGHbrowser_use/mcp/server.py945 f'(function(){{ const el = document.querySelector({json.dumps(selector)}); return el ? el.outerHTML : null; }})()'CODE
HIGHbrowser_use/browser/profile.py1123 if (checkInitialized && initialized) {CODE
HIGHbrowser_use/browser/profile.py1135 const result = await chrome.storage.local.get({{ settings: null }});CODE
HIGHbrowser_use/browser/profile.py1146 if (checkInitialized && initialized) {{CODE
HIGHbrowser_use/browser/session.py2899 const scrollX = window.pageXOffset || document.documentElement.scrollLeft || 0;CODE
HIGHbrowser_use/browser/session.py2900 const scrollY = window.pageYOffset || document.documentElement.scrollTop || 0;CODE
HIGHbrowser_use/browser/session.py3021 const scrollX = window.pageXOffset || document.documentElement.scrollLeft || 0;CODE
HIGHbrowser_use/browser/session.py3022 const scrollY = window.pageYOffset || document.documentElement.scrollTop || 0;CODE
HIGHbrowser_use/browser/demo_mode.py53 panel: null,CODE
HIGHbrowser_use/browser/demo_mode.py54 list: null,CODE
HIGHbrowser_use/browser/demo_mode.py57 toggleButton: null,CODE
HIGHbrowser_use/browser/demo_mode.py93 const host = document.body || document.documentElement;CODE
HIGHbrowser_use/browser/demo_mode.py102 if (document.body && node.parentNode !== document.body) {CODE
HIGHbrowser_use/browser/demo_mode.py577 return saved ? Number(saved) : null;CODE
HIGHbrowser_use/browser/demo_mode.py579 return null;CODE
HIGHbrowser_use/browser/demo_mode.py630 if (!detail) return null;CODE
HIGHbrowser_use/browser/demo_mode.py638 if (!entry.metadata || typeof entry.metadata !== 'object') {CODE
HIGHbrowser_use/browser/demo_mode.py642 entry.timestamp = entry.timestamp || new Date().toISOString();CODE
HIGHbrowser_use/browser/demo_mode.py649 state.messages.push(entry);CODE
HIGHbrowser_use/browser/demo_mode.py717 if (id && expanded.has(id)) {CODE
HIGHbrowser_use/browser/demo_mode.py760 frame = requestAnimationFrame(() => fn.apply(null, args));CODE
HIGHbrowser_use/browser/watchdogs/aboutblank_watchdog.py203 const imgWidth = img.offsetWidth || 300;CODE
HIGHbrowser_use/browser/watchdogs/aboutblank_watchdog.py204 const imgHeight = img.offsetHeight || 300;CODE
HIGHbrowser_use/browser/watchdogs/storage_state_watchdog.py283 f' if (window.location && window.location.origin !== {json.dumps(origin_value)}) return;\n'CODE
HIGHbrowser_use/browser/watchdogs/storage_state_watchdog.py299 f' if (window.location && window.location.origin !== {json.dumps(origin_value)}) return;\n'CODE
HIGHbrowser_use/browser/watchdogs/dom_watchdog.py172 if (isImageUrl && loadingDuration > 3000) continue;CODE
HIGHbrowser_use/browser/watchdogs/dom_watchdog.py174 pending.push({CODE
HIGH…owser_use/browser/watchdogs/default_action_watchdog.py635 if (assocLabel && (assocLabel === atPoint || assocLabel.contains(atPoint))) {CODE
HIGH…owser_use/browser/watchdogs/default_action_watchdog.py641 if (!isClickable && target.tagName === 'INPUT') {CODE
HIGH…owser_use/browser/watchdogs/default_action_watchdog.py643 for (let i = 0; i < 3 && ancestor; i++) {CODE
HIGH…owser_use/browser/watchdogs/default_action_watchdog.py653 if (!isClickable && target.tagName === 'LABEL') {CODE
HIGH…owser_use/browser/watchdogs/default_action_watchdog.py654 if (target.htmlFor && atPoint.tagName === 'INPUT' && atPoint.id === target.htmlFor) {CODE
HIGH…owser_use/browser/watchdogs/default_action_watchdog.py658 if (!isClickable && atPoint.tagName === 'INPUT' && target.contains(atPoint)) {CODE
HIGH…owser_use/browser/watchdogs/default_action_watchdog.py1379 } else if (this.value !== undefined) {CODE
HIGH…owser_use/browser/watchdogs/default_action_watchdog.py2020 if (this.value !== undefined) {CODE
HIGH…owser_use/browser/watchdogs/default_action_watchdog.py2026 if (desc && desc.set) {CODE
HIGH…owser_use/browser/watchdogs/default_action_watchdog.py2122 if (element._reactInternalFiber || element._reactInternalInstance || element.__reactInternalInstance) {CODE
HIGH…owser_use/browser/watchdogs/default_action_watchdog.py2141 if (element.__vue__ || element._vnode || element.__vueParentComponent) {CODE
HIGH…owser_use/browser/watchdogs/default_action_watchdog.py2254 const doc = this.contentDocument || this.contentWindow.document;CODE
HIGH…owser_use/browser/watchdogs/default_action_watchdog.py2256 const scrollElement = doc.documentElement || doc.body;CODE
HIGH…owser_use/browser/watchdogs/default_action_watchdog.py2271 return {{success: false, error: e.toString()}};CODE
HIGH…owser_use/browser/watchdogs/default_action_watchdog.py2753 null,CODE
HIGH…owser_use/browser/watchdogs/default_action_watchdog.py2919 return null;STRING
HIGH…owser_use/browser/watchdogs/default_action_watchdog.py2924 if (currentDepth >= maxDepth) return null;STRING
HIGH…owser_use/browser/watchdogs/default_action_watchdog.py3449 })).filter(opt => opt.text || opt.value);STRING
HIGH…owser_use/browser/watchdogs/default_action_watchdog.py3458 return null; // Not a dropdown elementSTRING
22 more matches not shown…
Decorative Section Separators109 hits · 374 pts
SeverityFileLineSnippetContext
MEDIUMtests/ci/test_markdown_chunking.py8# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/ci/test_markdown_chunking.py10# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/ci/test_markdown_chunking.py260# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/ci/test_markdown_chunking.py262# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/ci/test_markdown_chunking.py293# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/ci/test_markdown_chunking.py295# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/ci/test_agent_planning.py44# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/ci/test_agent_planning.py46# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/ci/test_agent_planning.py64# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/ci/test_agent_planning.py66# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/ci/test_agent_planning.py88# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/ci/test_agent_planning.py90# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/ci/test_agent_planning.py111# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/ci/test_agent_planning.py113# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/ci/test_agent_planning.py134# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/ci/test_agent_planning.py136# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/ci/test_agent_planning.py152# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/ci/test_agent_planning.py154# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/ci/test_agent_planning.py172# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/ci/test_agent_planning.py174# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/ci/test_agent_planning.py189# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/ci/test_agent_planning.py191# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/ci/test_agent_planning.py205# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/ci/test_agent_planning.py207# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/ci/test_agent_planning.py223# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/ci/test_agent_planning.py225# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/ci/test_agent_planning.py255# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/ci/test_agent_planning.py257# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/ci/test_agent_planning.py266# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/ci/test_agent_planning.py268# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/ci/test_agent_planning.py282# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/ci/test_agent_planning.py284# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/ci/test_agent_planning.py297# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/ci/test_agent_planning.py299# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/ci/test_agent_planning.py316# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/ci/test_agent_planning.py318# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/ci/test_agent_planning.py332# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/ci/test_agent_planning.py334# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/ci/test_agent_planning.py348# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/ci/test_agent_planning.py350# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/ci/test_agent_planning.py364# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/ci/test_agent_planning.py366# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/ci/test_agent_planning.py380# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/ci/test_agent_planning.py382# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/ci/test_agent_planning.py15# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/ci/test_agent_planning.py17# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/ci/test_structured_extraction.py21# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/ci/test_structured_extraction.py23# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/ci/test_structured_extraction.py283# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/ci/test_structured_extraction.py285# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/ci/test_structured_extraction.py311# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/ci/test_structured_extraction.py313# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/ci/test_structured_extraction.py483# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/ci/test_structured_extraction.py485# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/ci/test_action_blank_page.py19# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/ci/test_action_blank_page.py21# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/ci/test_action_blank_page.py87# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/ci/test_action_blank_page.py89# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/ci/test_action_blank_page.py111# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/ci/test_action_blank_page.py113# ---------------------------------------------------------------------------COMMENT
49 more matches not shown…
Self-Referential Comments102 hits · 319 pts
SeverityFileLineSnippetContext
MEDIUMtests/ci/conftest.py47 # Create a temporary directory for test config (but not for extensions)COMMENT
MEDIUMtests/ci/test_variable_substitution.py149 # Create a more complex action with nested structureCOMMENT
MEDIUMtests/ci/test_ax_name_matching.py39 # Create a mock LLM for summaryCOMMENT
MEDIUMtests/ci/test_ax_name_matching.py61 # Create an element with DIFFERENT hash/xpath but SAME ax_name as the real elementCOMMENT
MEDIUMtests/ci/test_file_system_docx.py49 # Create an external DOCX fileCOMMENT
MEDIUMtests/ci/test_file_system_docx.py111 # Create a corrupted DOCX fileCOMMENT
MEDIUMtests/ci/test_markdown_extractor.py62 # Create a JSON blob > 100 charsCOMMENT
MEDIUMtests/ci/test_file_system_images.py27 # Create an external image fileCOMMENT
MEDIUMtests/ci/test_file_system_images.py51 # Create an external image fileCOMMENT
MEDIUMtests/ci/test_file_system_images.py110 # Create a large image (2000x2000)COMMENT
MEDIUMtests/ci/test_rerun_ai_summary.py177 # Create a mock LLM for summaryCOMMENT
MEDIUMtests/ci/test_rerun_ai_summary.py209 # Create a step that originally had an error (using navigate action which doesn't require element matching)COMMENT
MEDIUMtests/ci/test_rerun_ai_summary.py259 # Create a mock LLM for summary (will be reached after the step succeeds)COMMENT
MEDIUMtests/ci/test_rerun_ai_summary.py291 # Create a step that originally had an error but uses navigate (which will work on rerun)COMMENT
MEDIUMtests/ci/test_rerun_ai_summary.py460 # Create a mock LLM for summary that returns partial successCOMMENT
MEDIUMtests/ci/test_rerun_ai_summary.py599 # Create a mock LLM for summaryCOMMENT
MEDIUMtests/ci/test_rerun_ai_summary.py621 # Create an interacted element that matches the button on the pageCOMMENT
MEDIUMtests/ci/test_rerun_ai_summary.py746 # Create an interacted elementCOMMENT
MEDIUMtests/ci/test_rerun_ai_summary.py1075 # Create a mock LLM for summaryCOMMENT
MEDIUMtests/ci/test_rerun_ai_summary.py1097 # Create an element that matches the pageCOMMENT
MEDIUMtests/ci/test_rerun_ai_summary.py1201 # Create an element that WON'T match (different identifiers)COMMENT
MEDIUMtests/ci/test_fallback_llm.py359 # Create a failing primary and succeeding fallbackCOMMENT
MEDIUMtests/ci/test_tools.py115 # Define a custom actionCOMMENT
MEDIUMtests/ci/test_tools.py274 # Create a temporary directory for the file systemCOMMENT
MEDIUMtests/ci/security/test_upload_file_containment.py158 # Create a local managed file with a basename that collides with theCOMMENT
MEDIUMtests/ci/security/test_domain_filtering.py13 # Create a context config with a sample allowed domainCOMMENT
MEDIUMtests/ci/security/test_domain_filtering.py475 # Create a list of 100 domainsCOMMENT
MEDIUMtests/ci/security/test_domain_filtering.py502 # Create a list with 100 domains (some with www, some without)COMMENT
MEDIUMtests/ci/security/test_domain_filtering.py531 # Create a large allowlistCOMMENT
MEDIUMtests/ci/security/test_sensitive_data.py44 # Create a simple Pydantic model with sensitive data placeholdersCOMMENT
MEDIUMtests/ci/security/test_sensitive_data.py77 # Create a simple Pydantic model with sensitive data placeholdersCOMMENT
MEDIUMtests/ci/browser/test_true_cross_origin_click.py39 # Create main page with TRUE cross-origin iframe pointing to example.comCOMMENT
MEDIUMtests/ci/browser/test_session_start.py89 # # Create a new tab explicitlyCOMMENT
MEDIUMtests/ci/browser/test_session_start.py152 # Create a reusable profileCOMMENT
MEDIUMtests/ci/browser/test_session_start.py188 # Create a reusable session with keep_aliveCOMMENT
MEDIUMtests/ci/browser/test_cross_origin_click.py48 # Create main page with iframe pointing to our test serverSTRING
MEDIUMtests/ci/infrastructure/test_registry_validation.py416 # Create a custom param model for select_cell_or_rangeCOMMENT
MEDIUMtests/ci/infrastructure/test_registry_validation.py425 # Define the function without using our registry - this will be a helper functionCOMMENT
MEDIUMtests/ci/infrastructure/test_registry_validation.py515 # Create the model instanceCOMMENT
MEDIUMtests/ci/infrastructure/test_filesystem.py611 # Create a large fileCOMMENT
MEDIUMtests/ci/infrastructure/test_filesystem.py711 # Create a products CSV fileCOMMENT
MEDIUMtests/ci/infrastructure/test_filesystem.py845 # Create a file to ensure directory has contentCOMMENT
MEDIUMtests/ci/infrastructure/test_filesystem.py923 # Create a state with unknown file typeCOMMENT
MEDIUMtests/ci/infrastructure/test_filesystem.py1220 # Create a notes fileCOMMENT
MEDIUM…astructure/test_registry_action_parameter_injection.py263 # Create a new tabCOMMENT
MEDIUM…astructure/test_registry_action_parameter_injection.py343 # Create a registryCOMMENT
MEDIUM…astructure/test_registry_action_parameter_injection.py370 # Create an instance with the simple_actionCOMMENT
MEDIUMtests/scripts/debug_iframe_scrolling.py29 # Create the sequence of actions for the mock LLMCOMMENT
MEDIUMtests/scripts/debug_iframe_scrolling.py122 # Create an agent with the mock LLMCOMMENT
MEDIUMtests/scripts/debug_iframe_scrolling.py178 # Create the action model for navigationCOMMENT
MEDIUMexamples/features/sensitive_data.py22# Define a single credential set that can be reusedCOMMENT
MEDIUMexamples/custom-functions/action_filters.py100 # Create the agentCOMMENT
MEDIUMexamples/custom-functions/file_upload.py88 # Create the agent with file upload capabilityCOMMENT
MEDIUMexamples/custom-functions/parallel_agents.py156 # Create a unique temp directory for this agent's browser dataCOMMENT
MEDIUMexamples/custom-functions/parallel_agents.py178 # Create a new browser session for each agent with the custom profileCOMMENT
MEDIUMexamples/models/oci_models.py192 # Create a simple agent to test the modelCOMMENT
MEDIUMexamples/models/langchain/example.py23 # Create a LangChain model (OpenAI)COMMENT
MEDIUMexamples/models/langchain/example.py32 # Create a simple taskCOMMENT
MEDIUMexamples/cloud/01_basic_task.py147 # Define a simple search task (using DuckDuckGo to avoid captchas)COMMENT
MEDIUMexamples/getting_started/04_multi_step_task.py35 # Define a multi-step taskCOMMENT
42 more matches not shown…
Redundant / Tautological Comments169 hits · 229 pts
SeverityFileLineSnippetContext
LOWtests/ci/test_ai_step.py57 # Check if any message has image contentCOMMENT
LOWtests/ci/conftest.py131 # Check if output_format is provided (2nd argument or in kwargs)STRING
LOWtests/ci/evaluate_tasks.py72 # Check if Google API key is available for judge LLMCOMMENT
LOWtests/ci/evaluate_tasks.py205 # Set environment to reduce noise in subprocessCOMMENT
LOWtests/ci/evaluate_tasks.py325 # Output results for GitHub ActionsCOMMENT
LOWtests/ci/models/model_test_helper.py104 # Check if SUCCESS appears in any step (indicating button was clicked)STRING
LOWtests/ci/browser/test_true_cross_origin_click.py81 # Check if element is from cross-origin iframe (example.com)STRING
LOWtests/ci/browser/test_true_cross_origin_click.py97 # Check if cross-origin iframe loadedSTRING
LOWtests/ci/browser/test_screenshot.py146 # Check if browser state has screenshot pathSTRING
LOWtests/ci/browser/test_dom_serializer.py162 # Check if this is an iframe tag (not content inside iframe)STRING
LOWtests/ci/browser/test_dom_serializer.py165 # Check if element has an ID attributeSTRING
LOWtests/ci/browser/test_session_start.py292 # Check if BrowserConnectedEvent was dispatchedCOMMENT
LOWtests/ci/browser/test_cross_origin_click.py93 # Check if element is from iframe (identified by id attributes we set)STRING
LOWtests/ci/browser/test_cross_origin_click.py106 # Check if iframe elements were foundSTRING
LOWtests/ci/infrastructure/test_filesystem.py372 # Read file with invalid name - gets auto-sanitized to invalidname.md, but file doesn't existCOMMENT
LOWtests/scripts/test_frame_hierarchy.py50 # Check if target has active sessions using the public APICOMMENT
LOWtests/scripts/test_frame_hierarchy.py177 # Check if this should be the main frameCOMMENT
LOWtests/scripts/debug_iframe_scrolling.py260 # Check if lower form fields appear after scrollCOMMENT
LOWexamples/custom-functions/action_filters.py78 # Check if it's a login pageCOMMENT
LOWexamples/custom-functions/cua.py340 # Check if OpenAI API key is availableSTRING
LOWexamples/custom-functions/file_upload.py49 # Check if it's a file input elementCOMMENT
LOWexamples/custom-functions/parallel_agents.py271 # Print resultsCOMMENT
LOWexamples/custom-functions/parallel_agents.py287 # Check if Google API key is availableCOMMENT
LOWexamples/custom-functions/parallel_agents.py295 # Check if API key looks valid (Google API keys are typically 39 characters)COMMENT
LOWexamples/sandbox/example.py49 # Check if API keys are setCOMMENT
LOWexamples/cloud/01_basic_task.py131 # Check if finishedCOMMENT
LOW.github/workflows/eval-on-pr.yml48 # Check if trigger was was successfulCOMMENT
LOWbrowser_use/config.py328 # Check if it's already in DB-style formatCOMMENT
LOWbrowser_use/config.py332 # Check if the values are DB-style entries (have UUIDs as keys)COMMENT
LOWbrowser_use/logging_config.py82 # Check if handlers are already set upCOMMENT
LOWbrowser_use/init_cmd.py172 # Check if file already existsCOMMENT
LOWbrowser_use/init_cmd.py182 # Write fileCOMMENT
LOWbrowser_use/init_cmd.py354 # Write fileCOMMENT
LOWbrowser_use/__init__.py30 # Check if the event loop is closed before calling the originalCOMMENT
LOWbrowser_use/observability.py30# Check if we're in debug modeCOMMENT
LOWbrowser_use/utils.py366 # Set flag to indicate we're waiting for inputCOMMENT
LOWbrowser_use/tools/service.py560 # Check if it's specifically a RuntimeError about CDP clientCOMMENT
LOWbrowser_use/tools/service.py732 # Check if result contains validation error (e.g., trying to click <select> or file input)COMMENT
LOWbrowser_use/tools/service.py863 # Check if file is in available_file_paths (user-provided or downloaded files)COMMENT
LOWbrowser_use/tools/service.py876 # Check if the file is actually managed by the FileSystem serviceCOMMENT
LOWbrowser_use/tools/service.py1717 # Check if the selection was successfulCOMMENT
LOWbrowser_use/tools/service.py2259 # Check if this is a registered actionCOMMENT
LOWbrowser_use/tools/utils.py52 # Check if hiddenCOMMENT
LOWbrowser_use/tools/registry/service.py108 # Check if this is a Type 1 pattern (first param is BaseModel)COMMENT
LOWbrowser_use/tools/registry/service.py125 # Check if types are compatible (exact match, subclass, or generic list)COMMENT
LOWbrowser_use/tools/registry/service.py210 # Check if required special param is NoneCOMMENT
LOWbrowser_use/llm/browser_use/chat.py179 # Check if this is a retryable errorCOMMENT
LOWbrowser_use/llm/anthropic/serializer.py288 # Set cache to False for all messages except the last cached oneCOMMENT
LOWbrowser_use/agent/service.py699 # Check if we should restore from existing state firstCOMMENT
LOWbrowser_use/agent/service.py3219 # Check if this is a "Could not find matching element" error for a menu itemCOMMENT
LOWbrowser_use/agent/service.py3227 # Check if current step targets a menu item elementCOMMENT
LOWbrowser_use/agent/service.py493 # Check if LLM is ChatAnthropic instanceCOMMENT
LOWbrowser_use/agent/service.py498 # Check if model is a browser-use fine-tuned model (uses simplified prompts)COMMENT
LOWbrowser_use/agent/service.py531 # Check if sensitive_data has domain-specific credentialsCOMMENT
LOWbrowser_use/agent/service.py561 # Check if pattern is covered by an allowed domainCOMMENT
LOWbrowser_use/agent/service.py880 # Check if it's a MissingCookieExceptionCOMMENT
LOWbrowser_use/agent/service.py1273 # Check if reconnection succeededCOMMENT
LOWbrowser_use/agent/service.py1968 # Check if we can switch to a fallback LLMCOMMENT
LOWbrowser_use/agent/service.py1989 # Check if error is retryable (rate limit, auth errors, or server errors)COMMENT
LOWbrowser_use/agent/service.py2003 # Check if we have a fallback LLM configuredCOMMENT
109 more matches not shown…
Deep Nesting283 hits · 218 pts
SeverityFileLineSnippetContext
LOWtests/ci/test_ai_step.py46CODE
LOWtests/ci/test_ai_step.py50CODE
LOWtests/ci/test_beta_agent.py116CODE
LOWtests/ci/evaluate_tasks.py201CODE
LOWtests/ci/test_extract_images.py202CODE
LOWtests/ci/test_extract_images.py250CODE
LOWtests/ci/test_extract_images.py222CODE
LOWtests/ci/test_extract_images.py270CODE
LOWtests/ci/security/test_sensitive_data.py276CODE
LOWtests/ci/security/test_sensitive_data.py368CODE
LOWtests/ci/browser/test_true_cross_origin_click.py32CODE
LOWtests/ci/browser/test_dom_serializer.py76CODE
LOWtests/ci/browser/test_dom_serializer.py267CODE
LOWtests/ci/browser/test_dom_serializer.py347CODE
LOWtests/ci/browser/test_cdp_headers.py131CODE
LOWtests/ci/browser/test_cross_origin_click.py32CODE
LOWtests/scripts/test_frame_hierarchy.py12CODE
LOWtests/scripts/debug_iframe_scrolling.py24CODE
LOWtests/scripts/debug_iframe_scrolling.py130CODE
LOWexamples/features/rerun_history.py58CODE
LOWexamples/custom-functions/cua.py38CODE
LOWexamples/custom-functions/parallel_agents.py35CODE
LOWexamples/models/langchain/chat.py35CODE
LOWexamples/models/langchain/chat.py100CODE
LOWexamples/integrations/gmail_2fa_integration.py80CODE
LOWexamples/integrations/discord/discord_api.py77CODE
LOWexamples/integrations/slack/slack_api.py48CODE
LOWexamples/cloud/03_structured_output.py175CODE
LOWexamples/cloud/03_structured_output.py325CODE
LOWexamples/cloud/04_proxy_usage.py284CODE
LOWexamples/cloud/05_search_api.py296CODE
LOWexamples/apps/ad-use/ad_generator.py184CODE
LOWexamples/apps/news-use/news_monitor.py66CODE
LOWexamples/apps/news-use/news_monitor.py251CODE
LOWexamples/apps/news-use/news_monitor.py118CODE
LOWexamples/apps/msg-use/scheduler.py44CODE
LOWexamples/apps/msg-use/scheduler.py175CODE
LOWbrowser_use/config.py370CODE
LOWbrowser_use/logging_config.py64CODE
LOWbrowser_use/logging_config.py95CODE
LOWbrowser_use/init_cmd.py217CODE
LOWbrowser_use/utils.py59CODE
LOWbrowser_use/utils.py417CODE
LOWbrowser_use/utils.py443CODE
LOWbrowser_use/utils.py522CODE
LOWbrowser_use/utils.py624CODE
LOWbrowser_use/utils.py639CODE
LOWbrowser_use/utils.py418CODE
LOWbrowser_use/utils.py446CODE
LOWbrowser_use/utils.py420CODE
LOWbrowser_use/utils.py448CODE
LOWbrowser_use/beta/service.py915CODE
LOWbrowser_use/beta/service.py1218CODE
LOWbrowser_use/beta/service.py1581CODE
LOWbrowser_use/beta/service.py1629CODE
LOWbrowser_use/beta/service.py1693CODE
LOWbrowser_use/beta/service.py2078CODE
LOWbrowser_use/beta/service.py2161CODE
LOWbrowser_use/beta/service.py2346CODE
LOWbrowser_use/beta/service.py2450CODE
223 more matches not shown…
Hallucination Indicators15 hits · 165 pts
SeverityFileLineSnippetContext
CRITICALbrowser_use/agent/service.py2805 registered_action = self.tools.registry.registry.actions.get(action_name)CODE
CRITICALbrowser_use/browser/session_manager.py506 await self.browser_session._cdp_client_root.send.Runtime.runIfWaitingForDebugger(session_id=session_id)CODE
CRITICALbrowser_use/browser/session_manager.py428 await self.browser_session._cdp_client_root.send.Target.setAutoAttach(CODE
CRITICALbrowser_use/browser/session_manager.py728 await self.browser_session._cdp_client_root.send.Target.activateTarget(params={'targetId': new_target_id})CODE
CRITICALbrowser_use/browser/watchdogs/permissions_watchdog.py37 await self.browser_session.cdp_client.send.Browser.grantPermissions(CODE
CRITICALbrowser_use/browser/watchdogs/popups_watchdog.py56 await self.browser_session._cdp_client_root.send.Page.enable()CODE
CRITICALbrowser_use/browser/watchdogs/popups_watchdog.py91 self.browser_session._cdp_client_root.send.Page.handleJavaScriptDialog(CODE
CRITICALbrowser_use/browser/watchdogs/popups_watchdog.py111 self.browser_session._cdp_client_root.send.Page.handleJavaScriptDialog(CODE
CRITICALbrowser_use/browser/watchdogs/popups_watchdog.py134 self.browser_session._cdp_client_root.register.Page.javascriptDialogOpening(handle_dialog) # type: ignore[arg-typeCODE
CRITICALbrowser_use/browser/watchdogs/recording_watchdog.py83 self.browser_session.cdp_client.register.Page.screencastFrame(self.on_screencastFrame)CODE
CRITICALbrowser_use/browser/watchdogs/recording_watchdog.py111 await self.browser_session.cdp_client.send.Page.stopScreencast(session_id=session_id)CODE
CRITICALbrowser_use/browser/watchdogs/recording_watchdog.py150 await self.browser_session.cdp_client.send.Page.stopScreencast(session_id=self._current_session_id)CODE
CRITICALbrowser_use/browser/watchdogs/recording_watchdog.py211 await self.browser_session.cdp_client.send.Page.screencastFrameAck(CODE
CRITICALbrowser_use/browser/watchdogs/har_recording_watchdog.py178 version_info = await self.browser_session.cdp_client.send.Browser.getVersion()CODE
CRITICALbrowser_use/browser/watchdogs/har_recording_watchdog.py393 resp = await self_ref.browser_session.cdp_client.send.Network.getResponseBody(CODE
Unused Imports179 hits · 164 pts
SeverityFileLineSnippetContext
LOWtests/ci/test_action_record.py8CODE
LOWtests/ci/test_cdp_timeout.py10CODE
LOWtests/ci/test_beta_agent.py1CODE
LOW…sts/ci/security/test_download_filename_sanitization.py21CODE
LOWtests/ci/security/test_upload_file_containment.py18CODE
LOWexamples/models/langchain/chat.py13CODE
LOWscripts/sync_browser_harness_skill.py1CODE
LOWbrowser_use/__init__.py48CODE
LOWbrowser_use/__init__.py49CODE
LOWbrowser_use/__init__.py50CODE
LOWbrowser_use/__init__.py50CODE
LOWbrowser_use/__init__.py50CODE
LOWbrowser_use/__init__.py51CODE
LOWbrowser_use/__init__.py51CODE
LOWbrowser_use/__init__.py52CODE
LOWbrowser_use/__init__.py53CODE
LOWbrowser_use/__init__.py54CODE
LOWbrowser_use/__init__.py55CODE
LOWbrowser_use/__init__.py56CODE
LOWbrowser_use/__init__.py57CODE
LOWbrowser_use/__init__.py58CODE
LOWbrowser_use/__init__.py59CODE
LOWbrowser_use/__init__.py60CODE
LOWbrowser_use/__init__.py61CODE
LOWbrowser_use/__init__.py62CODE
LOWbrowser_use/__init__.py63CODE
LOWbrowser_use/__init__.py64CODE
LOWbrowser_use/__init__.py65CODE
LOWbrowser_use/__init__.py66CODE
LOWbrowser_use/__init__.py67CODE
LOWbrowser_use/__init__.py67CODE
LOWbrowser_use/cli.py3CODE
LOWbrowser_use/beta/service.py1CODE
LOWbrowser_use/beta/__init__.py3CODE
LOWbrowser_use/beta/__init__.py7CODE
LOWbrowser_use/beta/__init__.py7CODE
LOWbrowser_use/beta/__init__.py7CODE
LOWbrowser_use/beta/__init__.py10CODE
LOWbrowser_use/beta/__init__.py10CODE
LOWbrowser_use/beta/__init__.py11CODE
LOWbrowser_use/beta/__init__.py12CODE
LOWbrowser_use/beta/__init__.py13CODE
LOWbrowser_use/beta/__init__.py14CODE
LOWbrowser_use/beta/__init__.py15CODE
LOWbrowser_use/beta/__init__.py16CODE
LOWbrowser_use/beta/__init__.py17CODE
LOWbrowser_use/beta/__init__.py18CODE
LOWbrowser_use/beta/__init__.py19CODE
LOWbrowser_use/beta/__init__.py20CODE
LOWbrowser_use/beta/__init__.py21CODE
LOWbrowser_use/beta/__init__.py22CODE
LOWbrowser_use/tools/extraction/__init__.py1CODE
LOWbrowser_use/tools/extraction/__init__.py2CODE
LOWbrowser_use/llm/models.py34CODE
LOWbrowser_use/llm/__init__.py10CODE
LOWbrowser_use/llm/__init__.py11CODE
LOWbrowser_use/llm/__init__.py11CODE
LOWbrowser_use/llm/__init__.py11CODE
LOWbrowser_use/llm/__init__.py11CODE
LOWbrowser_use/llm/__init__.py17CODE
119 more matches not shown…
Cross-File Repetition26 hits · 130 pts
SeverityFileLineSnippetContext
HIGHtests/ci/test_tools.py0create and provide a test http server that serves static content.STRING
HIGHtests/ci/interactions/test_dropdown_native.py0create and provide a test http server that serves static content.STRING
HIGHtests/ci/interactions/test_dropdown_aria_menus.py0create and provide a test http server that serves static content.STRING
HIGHtests/ci/infrastructure/test_registry_core.py0create and provide a test http server that serves static content.STRING
HIGH…astructure/test_registry_action_parameter_injection.py0create and provide a test http server that serves static content.STRING
HIGHtests/ci/test_tools.py0create and provide a browser instance with security disabled.STRING
HIGHtests/ci/interactions/test_dropdown_native.py0create and provide a browser instance with security disabled.STRING
HIGHtests/ci/interactions/test_dropdown_aria_menus.py0create and provide a browser instance with security disabled.STRING
HIGHexamples/simple.py0setup: 1. get your api key from https://cloud.browser-use.com/new-api-key 2. set environment variable: export browser_usSTRING
HIGHexamples/features/judge_trace.py0setup: 1. get your api key from https://cloud.browser-use.com/new-api-key 2. set environment variable: export browser_usSTRING
HIGHexamples/models/bu_oss.py0setup: 1. get your api key from https://cloud.browser-use.com/new-api-key 2. set environment variable: export browser_usSTRING
HIGHexamples/getting_started/01_basic_search.py0setup: 1. get your api key from https://cloud.browser-use.com/new-api-key 2. set environment variable: export browser_usSTRING
HIGHexamples/features/multi_tab.py0simple try of the agent. @dev you need to add modelscope_api_key to your environment variables.STRING
HIGHexamples/models/gpt-4.1.py0simple try of the agent. @dev you need to add modelscope_api_key to your environment variables.STRING
HIGHexamples/models/gpt-5-mini.py0simple try of the agent. @dev you need to add modelscope_api_key to your environment variables.STRING
HIGHexamples/models/openrouter.py0simple try of the agent. @dev you need to add modelscope_api_key to your environment variables.STRING
HIGHexamples/models/novita.py0simple try of the agent. @dev you need to add modelscope_api_key to your environment variables.STRING
HIGHexamples/models/modelscope_example.py0simple try of the agent. @dev you need to add modelscope_api_key to your environment variables.STRING
HIGHbrowser_use/llm/vercel/chat.py0invoke the aws bedrock model with the given messages. args: messages: list of chat messages output_format: optional pydaSTRING
HIGHbrowser_use/llm/openrouter/chat.py0invoke the aws bedrock model with the given messages. args: messages: list of chat messages output_format: optional pydaSTRING
HIGHbrowser_use/llm/google/chat.py0invoke the aws bedrock model with the given messages. args: messages: list of chat messages output_format: optional pydaSTRING
HIGHbrowser_use/llm/openai/chat.py0invoke the aws bedrock model with the given messages. args: messages: list of chat messages output_format: optional pydaSTRING
HIGHbrowser_use/llm/aws/chat_bedrock.py0invoke the aws bedrock model with the given messages. args: messages: list of chat messages output_format: optional pydaSTRING
HIGHbrowser_use/llm/groq/serializer.py0serialize content for user messages (text and images allowed).STRING
HIGHbrowser_use/llm/openai/responses_serializer.py0serialize content for user messages (text and images allowed).STRING
HIGHbrowser_use/llm/openai/serializer.py0serialize content for user messages (text and images allowed).STRING
Verbosity Indicators79 hits · 129 pts
SeverityFileLineSnippetContext
LOWtests/ci/test_ax_name_matching.py81 # Step 1: Navigate to test pageCOMMENT
LOWtests/ci/test_ax_name_matching.py104 # Step 2: Click on element that has different hash/xpath but same ax_nameCOMMENT
LOWtests/ci/test_rerun_ai_summary.py357 # Step 1: Navigate to test pageCOMMENT
LOWtests/ci/test_rerun_ai_summary.py380 # Step 2: Click on element that won't be found (different identifiers)COMMENT
LOWtests/ci/test_rerun_ai_summary.py486 # Step 1: Navigate to test pageCOMMENT
LOWtests/ci/test_rerun_ai_summary.py509 # Step 2: Click on element that won't exist on current page (different hash/attributes)COMMENT
LOWtests/ci/test_rerun_ai_summary.py636 # Step 1: Navigate to test pageCOMMENT
LOWtests/ci/test_rerun_ai_summary.py659 # Step 2: Click login button (first click)COMMENT
LOWtests/ci/test_rerun_ai_summary.py682 # Step 3: Click login button AGAIN (redundant retry - same element, same action)COMMENT
LOWtests/ci/test_rerun_ai_summary.py1112 # Step 1: Navigate to test pageCOMMENT
LOWtests/ci/test_rerun_ai_summary.py1135 # Step 2: Click button (needs element matching, should wait for elements)COMMENT
LOWtests/ci/test_rerun_ai_summary.py1216 # Step 1: NavigateCOMMENT
LOWtests/ci/test_rerun_ai_summary.py1234 # Step 2: Click non-matching element (will fail and retry)COMMENT
LOWtests/ci/test_file_system_llm_integration.py299 # Step 1: Create external imageCOMMENT
LOWtests/ci/test_file_system_llm_integration.py304 # Step 2: Read via FileSystemCOMMENT
LOWtests/ci/test_file_system_llm_integration.py310 # Step 3: Create ActionResult (simulating tools/service.py)COMMENT
LOWtests/ci/test_file_system_llm_integration.py318 # Step 4: Process in MessageManagerCOMMENT
LOWtests/ci/test_file_system_llm_integration.py328 # Step 5: Create message with AgentMessagePromptCOMMENT
LOWtests/ci/test_file_system_llm_integration.py357 # Step 1: Create DOCXCOMMENT
LOWtests/ci/test_file_system_llm_integration.py364 # Step 2: Read itCOMMENT
LOWtests/ci/test_file_system_llm_integration.py367 # Step 3: Create ActionResult (simulating tools/service.py)COMMENT
LOWtests/ci/test_file_system_llm_integration.py374 # Step 4: Process in MessageManagerCOMMENT
LOWtests/ci/infrastructure/test_url_shortening.py121 # Step 1: Input processing with URL shorteningCOMMENT
LOWtests/ci/infrastructure/test_url_shortening.py134 # Step 2: Simulate agent output with shortened URLCOMMENT
LOWtests/ci/infrastructure/test_url_shortening.py149 # Step 3: Output processing with URL restoration (modifies agent_output in-place)COMMENT
LOWexamples/features/rerun_history.py73 # Step 1: Run the agent and save historyCOMMENT
LOWexamples/features/rerun_history.py80 # Step 2: Detect variables in the saved historyCOMMENT
LOWexamples/features/rerun_history.py91 # Step 3: Rerun the history with substituted valuesCOMMENT
LOWexamples/integrations/gmail_2fa_integration.py208 # Step 1: Check and validate credentialsCOMMENT
LOWexamples/integrations/gmail_2fa_integration.py228 # Step 2: Initialize Gmail service and test authenticationCOMMENT
LOWexamples/integrations/gmail_2fa_integration.py242 # Step 3: Initialize tools with authenticated serviceCOMMENT
LOWexamples/integrations/gmail_2fa_integration.py256 # Step 4: Test Gmail functionalityCOMMENT
LOWexamples/integrations/gmail_2fa_integration.py278 # Step 5: Demonstrate 2FA code findingCOMMENT
LOWexamples/integrations/gmail_2fa_integration.py292 # Step 6: Simulate complete login flowCOMMENT
LOWexamples/browser/playwright_integration.py314 # Step 1: Start Chrome with CDP debuggingCOMMENT
LOWexamples/browser/playwright_integration.py318 # Step 2: Connect Playwright to the same Chrome instanceCOMMENT
LOWexamples/browser/playwright_integration.py321 # Step 3: Create Browser-Use session connected to same ChromeCOMMENT
LOWexamples/browser/playwright_integration.py324 # Step 4: Create AI agent with our custom Playwright-powered toolsCOMMENT
LOWexamples/browser/playwright_integration.py348 # Step 5: Run the agent - it will use both Browser-Use actions and our custom Playwright actionsSTRING
LOWexamples/use-cases/shopping.py25### Step 1: Navigate to the WebsiteCOMMENT
LOWexamples/use-cases/shopping.py31### Step 2: Add Items to the BasketCOMMENT
LOWexamples/use-cases/shopping.py66### Step 3: Handling Unavailable ItemsCOMMENT
LOWexamples/use-cases/shopping.py79### Step 4: Adjusting for Minimum Order RequirementCOMMENT
LOWexamples/use-cases/shopping.py87### Step 5: Select Delivery WindowCOMMENT
LOWexamples/use-cases/shopping.py93### Step 6: CheckoutCOMMENT
LOWexamples/use-cases/shopping.py102### Step 7: Confirm Order & Output SummaryCOMMENT
LOWexamples/cloud/01_basic_task.py153 # Step 1: Create the taskCOMMENT
LOWexamples/cloud/01_basic_task.py156 # Step 2: Wait for completionCOMMENT
LOWexamples/cloud/01_basic_task.py159 # Step 3: Display resultsCOMMENT
LOWbrowser_use/tools/registry/service.py93 # Step 1: Validate no **kwargs in original function signatureCOMMENT
LOWbrowser_use/tools/registry/service.py102 # Step 2: Separate special and action parametersCOMMENT
LOWbrowser_use/tools/registry/service.py149 # Step 3: Create or validate param modelCOMMENT
LOWbrowser_use/tools/registry/service.py168 # Step 4: Create normalized wrapper functionCOMMENT
LOWbrowser_use/agent/service.py1777 # Step 1: Remove well-formed <think>...</think>COMMENT
LOWbrowser_use/agent/service.py1779 # Step 2: If there's an unmatched closing tag </think>,COMMENT
LOW…owser_use/browser/watchdogs/default_action_watchdog.py1810 # Step 1: Focus the element using simple strategySTRING
LOW…owser_use/browser/watchdogs/default_action_watchdog.py1815 # Step 2: Check if this element requires direct value assignment (date/time inputs)STRING
LOW…owser_use/browser/watchdogs/default_action_watchdog.py1828 # Step 3: Clear existing text if requested (only for regular inputs that support typing)STRING
LOW…owser_use/browser/watchdogs/default_action_watchdog.py1834 # Step 4: Type the text character by character using proper human-like key eventsSTRING
LOW…owser_use/browser/watchdogs/default_action_watchdog.py1913 # Step 2: Send char event (WITH text parameter) - this is crucial for text inputSTRING
19 more matches not shown…
Structural Annotation Overuse79 hits · 128 pts
SeverityFileLineSnippetContext
LOWtests/ci/test_ax_name_matching.py81 # Step 1: Navigate to test pageCOMMENT
LOWtests/ci/test_ax_name_matching.py104 # Step 2: Click on element that has different hash/xpath but same ax_nameCOMMENT
LOWtests/ci/test_rerun_ai_summary.py357 # Step 1: Navigate to test pageCOMMENT
LOWtests/ci/test_rerun_ai_summary.py380 # Step 2: Click on element that won't be found (different identifiers)COMMENT
LOWtests/ci/test_rerun_ai_summary.py486 # Step 1: Navigate to test pageCOMMENT
LOWtests/ci/test_rerun_ai_summary.py509 # Step 2: Click on element that won't exist on current page (different hash/attributes)COMMENT
LOWtests/ci/test_rerun_ai_summary.py636 # Step 1: Navigate to test pageCOMMENT
LOWtests/ci/test_rerun_ai_summary.py659 # Step 2: Click login button (first click)COMMENT
LOWtests/ci/test_rerun_ai_summary.py682 # Step 3: Click login button AGAIN (redundant retry - same element, same action)COMMENT
LOWtests/ci/test_rerun_ai_summary.py1112 # Step 1: Navigate to test pageCOMMENT
LOWtests/ci/test_rerun_ai_summary.py1135 # Step 2: Click button (needs element matching, should wait for elements)COMMENT
LOWtests/ci/test_rerun_ai_summary.py1216 # Step 1: NavigateCOMMENT
LOWtests/ci/test_rerun_ai_summary.py1234 # Step 2: Click non-matching element (will fail and retry)COMMENT
LOWtests/ci/test_file_system_llm_integration.py299 # Step 1: Create external imageCOMMENT
LOWtests/ci/test_file_system_llm_integration.py304 # Step 2: Read via FileSystemCOMMENT
LOWtests/ci/test_file_system_llm_integration.py310 # Step 3: Create ActionResult (simulating tools/service.py)COMMENT
LOWtests/ci/test_file_system_llm_integration.py318 # Step 4: Process in MessageManagerCOMMENT
LOWtests/ci/test_file_system_llm_integration.py328 # Step 5: Create message with AgentMessagePromptCOMMENT
LOWtests/ci/test_file_system_llm_integration.py357 # Step 1: Create DOCXCOMMENT
LOWtests/ci/test_file_system_llm_integration.py364 # Step 2: Read itCOMMENT
LOWtests/ci/test_file_system_llm_integration.py367 # Step 3: Create ActionResult (simulating tools/service.py)COMMENT
LOWtests/ci/test_file_system_llm_integration.py374 # Step 4: Process in MessageManagerCOMMENT
LOWtests/ci/infrastructure/test_url_shortening.py121 # Step 1: Input processing with URL shorteningCOMMENT
LOWtests/ci/infrastructure/test_url_shortening.py134 # Step 2: Simulate agent output with shortened URLCOMMENT
LOWtests/ci/infrastructure/test_url_shortening.py149 # Step 3: Output processing with URL restoration (modifies agent_output in-place)COMMENT
LOWexamples/features/rerun_history.py73 # Step 1: Run the agent and save historyCOMMENT
LOWexamples/features/rerun_history.py80 # Step 2: Detect variables in the saved historyCOMMENT
LOWexamples/features/rerun_history.py91 # Step 3: Rerun the history with substituted valuesCOMMENT
LOWexamples/integrations/gmail_2fa_integration.py208 # Step 1: Check and validate credentialsCOMMENT
LOWexamples/integrations/gmail_2fa_integration.py228 # Step 2: Initialize Gmail service and test authenticationCOMMENT
LOWexamples/integrations/gmail_2fa_integration.py242 # Step 3: Initialize tools with authenticated serviceCOMMENT
LOWexamples/integrations/gmail_2fa_integration.py256 # Step 4: Test Gmail functionalityCOMMENT
LOWexamples/integrations/gmail_2fa_integration.py278 # Step 5: Demonstrate 2FA code findingCOMMENT
LOWexamples/integrations/gmail_2fa_integration.py292 # Step 6: Simulate complete login flowCOMMENT
LOWexamples/browser/playwright_integration.py314 # Step 1: Start Chrome with CDP debuggingCOMMENT
LOWexamples/browser/playwright_integration.py318 # Step 2: Connect Playwright to the same Chrome instanceCOMMENT
LOWexamples/browser/playwright_integration.py321 # Step 3: Create Browser-Use session connected to same ChromeCOMMENT
LOWexamples/browser/playwright_integration.py324 # Step 4: Create AI agent with our custom Playwright-powered toolsCOMMENT
LOWexamples/browser/playwright_integration.py348 # Step 5: Run the agent - it will use both Browser-Use actions and our custom Playwright actionsSTRING
LOWexamples/use-cases/shopping.py25### Step 1: Navigate to the WebsiteCOMMENT
LOWexamples/use-cases/shopping.py31### Step 2: Add Items to the BasketCOMMENT
LOWexamples/use-cases/shopping.py66### Step 3: Handling Unavailable ItemsCOMMENT
LOWexamples/use-cases/shopping.py79### Step 4: Adjusting for Minimum Order RequirementCOMMENT
LOWexamples/use-cases/shopping.py87### Step 5: Select Delivery WindowCOMMENT
LOWexamples/use-cases/shopping.py93### Step 6: CheckoutCOMMENT
LOWexamples/use-cases/shopping.py102### Step 7: Confirm Order & Output SummaryCOMMENT
LOWexamples/cloud/01_basic_task.py153 # Step 1: Create the taskCOMMENT
LOWexamples/cloud/01_basic_task.py156 # Step 2: Wait for completionCOMMENT
LOWexamples/cloud/01_basic_task.py159 # Step 3: Display resultsCOMMENT
LOWbrowser_use/tools/registry/service.py93 # Step 1: Validate no **kwargs in original function signatureCOMMENT
LOWbrowser_use/tools/registry/service.py102 # Step 2: Separate special and action parametersCOMMENT
LOWbrowser_use/tools/registry/service.py149 # Step 3: Create or validate param modelCOMMENT
LOWbrowser_use/tools/registry/service.py168 # Step 4: Create normalized wrapper functionCOMMENT
LOWbrowser_use/agent/service.py1777 # Step 1: Remove well-formed <think>...</think>COMMENT
LOWbrowser_use/agent/service.py1779 # Step 2: If there's an unmatched closing tag </think>,COMMENT
LOW…owser_use/browser/watchdogs/default_action_watchdog.py1810 # Step 1: Focus the element using simple strategySTRING
LOW…owser_use/browser/watchdogs/default_action_watchdog.py1815 # Step 2: Check if this element requires direct value assignment (date/time inputs)STRING
LOW…owser_use/browser/watchdogs/default_action_watchdog.py1828 # Step 3: Clear existing text if requested (only for regular inputs that support typing)STRING
LOW…owser_use/browser/watchdogs/default_action_watchdog.py1834 # Step 4: Type the text character by character using proper human-like key eventsSTRING
LOW…owser_use/browser/watchdogs/default_action_watchdog.py1913 # Step 2: Send char event (WITH text parameter) - this is crucial for text inputSTRING
19 more matches not shown…
Modern Structural Boilerplate96 hits · 88 pts
SeverityFileLineSnippetContext
LOWtests/ci/infrastructure/test_registry_validation.py26logger = logging.getLogger(__name__)CODE
LOWtests/ci/infrastructure/test_registry_core.py36logger = logging.getLogger(__name__)CODE
LOWexamples/custom-functions/onepassword_2fa.py18logger = logging.getLogger(__name__)CODE
LOWexamples/custom-functions/advanced_search.py20logger = logging.getLogger(__name__)CODE
LOWexamples/custom-functions/file_upload.py26logger = logging.getLogger(__name__)CODE
LOWexamples/integrations/agentmail/email_tools.py19logger = logging.getLogger(__name__)CODE
LOWexamples/use-cases/extract_pdf_content.py21logger = logging.getLogger(__name__)CODE
LOWbrowser_use/config.py16logger = logging.getLogger(__name__)CODE
LOWbrowser_use/__init__.py128__all__ = [CODE
LOWbrowser_use/observability.py21logger = logging.getLogger(__name__)CODE
LOWbrowser_use/cli.py27def _set_harness_client_env() -> None:CODE
LOWbrowser_use/utils.py25logger = logging.getLogger(__name__)CODE
LOWbrowser_use/beta/service.py4537 def _set_file_system(self, file_system_path: str | None = None) -> None:CODE
LOWbrowser_use/beta/service.py4541 def _set_screenshot_service(self) -> None:CODE
LOWbrowser_use/beta/service.py4545 def _set_browser_use_version_and_source(self, source_override: str | None = None) -> None:CODE
LOWbrowser_use/beta/service.py5557 def _setup_action_models(self) -> None:CODE
LOWbrowser_use/beta/service.py5561 def _setup_action_models_for_page(self, page_url: str | None) -> None:CODE
LOWbrowser_use/beta/service.py5633 def _update_available_file_paths(self, downloads: list[str]) -> None:CODE
LOWbrowser_use/beta/service.py89logger = logging.getLogger(__name__)CODE
LOWbrowser_use/beta/service.py5585 async def _update_action_models_for_page(self, page_url: str) -> None:CODE
LOWbrowser_use/beta/__init__.py54__all__ = [CODE
LOWbrowser_use/tools/service.py64logger = logging.getLogger(__name__)CODE
LOWbrowser_use/tools/service.py2138 def set_coordinate_clicking(self, enabled: bool) -> None:CODE
LOWbrowser_use/tools/registry/service.py30logger = logging.getLogger(__name__)CODE
LOWbrowser_use/tools/extraction/schema_utils.py8logger = logging.getLogger(__name__)CODE
LOWbrowser_use/tools/extraction/__init__.py4__all__ = ['schema_dict_to_pydantic_model', 'ExtractionResult']CODE
LOWbrowser_use/llm/models.py261__all__ = [CODE
LOWbrowser_use/llm/__init__.py134__all__ = [CODE
LOWbrowser_use/llm/oci_raw/__init__.py10__all__ = ['ChatOCIRaw']CODE
LOWbrowser_use/llm/vercel/__init__.py3__all__ = ['ChatVercel']CODE
LOWbrowser_use/llm/google/__init__.py3__all__ = ['ChatGoogle']CODE
LOWbrowser_use/llm/tests/test_single_step.py29logger = logging.getLogger(__name__)CODE
LOWbrowser_use/llm/tests/test_anthropic_cache.py19logger = logging.getLogger(__name__)CODE
LOWbrowser_use/llm/groq/parser.py9logger = logging.getLogger(__name__)CODE
LOWbrowser_use/llm/groq/chat.py52logger = logging.getLogger(__name__)CODE
LOWbrowser_use/llm/browser_use/__init__.py3__all__ = ['ChatBrowserUse']CODE
LOWbrowser_use/llm/browser_use/chat.py25logger = logging.getLogger(__name__)CODE
LOWbrowser_use/llm/aws/__init__.py33__all__ = [CODE
LOWbrowser_use/llm/litellm/__init__.py3__all__ = ['ChatLiteLLM']CODE
LOWbrowser_use/llm/litellm/chat.py24logger = logging.getLogger(__name__)CODE
LOWbrowser_use/llm/mistral/__init__.py5__all__ = ['ChatMistral']CODE
LOWbrowser_use/llm/mistral/chat.py20logger = logging.getLogger(__name__)CODE
LOWbrowser_use/agent/service.py672 def _update_available_file_paths(self, downloads: list[str]) -> None:CODE
LOWbrowser_use/agent/service.py691 def _set_file_system(self, file_system_path: str | None = None) -> None:CODE
LOWbrowser_use/agent/service.py730 def _set_screenshot_service(self) -> None:CODE
LOWbrowser_use/agent/service.py4005 async def _update_action_models_for_page(self, page_url: str) -> None:CODE
LOWbrowser_use/agent/service.py86logger = logging.getLogger(__name__)CODE
LOWbrowser_use/agent/service.py749 def _set_browser_use_version_and_source(self, source_override: str | None = None) -> None:CODE
LOWbrowser_use/agent/service.py772 def _setup_action_models(self) -> None:CODE
LOWbrowser_use/agent/service.py1409 def _update_plan_from_model_output(self, model_output: AgentOutput) -> None:CODE
LOWbrowser_use/agent/service.py1500 def _update_loop_detector_actions(self) -> None:CODE
LOWbrowser_use/agent/service.py1519 def _update_loop_detector_page_state(self, browser_state_summary: BrowserStateSummary) -> None:CODE
LOWbrowser_use/agent/gif.py17logger = logging.getLogger(__name__)CODE
LOWbrowser_use/agent/__init__.py29__all__ = [CODE
LOWbrowser_use/agent/judge.py18logger = logging.getLogger(__name__)CODE
LOWbrowser_use/agent/views.py32logger = logging.getLogger(__name__)CODE
LOWbrowser_use/agent/views.py199 def _update_repetition_stats(self) -> None:CODE
LOWbrowser_use/agent/message_manager/service.py35logger = logging.getLogger(__name__)CODE
LOWbrowser_use/agent/message_manager/service.py553 def _set_message_with_type(self, message: BaseMessage, message_type: Literal['system', 'state']) -> None:CODE
LOWbrowser_use/agent/message_manager/utils.py12logger = logging.getLogger(__name__)CODE
36 more matches not shown…
Docstring Block Structure12 hits · 60 pts
SeverityFileLineSnippetContext
HIGHexamples/features/add_image_context.py21 Convert image file to base64 string. Args: image_path: Path to the image file Returns: Base64 encoded stSTRING
HIGHbrowser_use/llm/models.py95 Factory function to create LLM instances from string names with API keys from environment. Args: model_name: StSTRING
HIGHbrowser_use/agent/service.py794Generate a clean slug from skill title for action names Converts title to lowercase, removes special characters, replSTRING
HIGHbrowser_use/browser/events.py17 Safely parse environment variable timeout values with robust error handling. Args: env_var: Environment variable nSTRING
HIGHbrowser_use/browser/session.py1470Get CDP session for a target from the event-driven pool. With autoAttach=True, sessions are created automatically by STRING
HIGHbrowser_use/browser/session.py3851Get a CDP client attached to the target containing the specified frame. Builds a unified frame hierarchy from all tarSTRING
HIGHbrowser_use/browser/cloud/cloud.py109Stop a cloud browser session. Args: session_id: Session ID to stop. If None, uses current session. Returns: STRING
HIGHbrowser_use/sandbox/views.py88Parse SSE event from JSON string with proper type discrimination Args: event_json: JSON string from SSE stream STRING
HIGHbrowser_use/dom/markdown_extractor.py30Extract clean markdown from browser content using enhanced DOM tree. This unified function can extract markdown using STRING
HIGHbrowser_use/dom/serializer/html_serializer.py249Serialize element attributes to HTML attribute string. Args: attributes: Dictionary of attribute names to values STRING
HIGHbrowser_use/skills/service.py168Execute a skill with the provided parameters. Auto-initializes if not already initialized. Parameters are validated aSTRING
HIGHbrowser_use/skills/utils.py11Convert a list of ParameterSchema to a pydantic model for structured output Args: parameters: List of parameter scheSTRING
AI Slop Vocabulary32 hits · 57 pts
SeverityFileLineSnippetContext
MEDIUM.pre-commit-config.yaml59 # best practices enforcementCOMMENT
LOWexamples/custom-functions/action_filters.py74# Note: page_filter is not directly supported anymore, so we'll just use domainsCOMMENT
MEDIUMexamples/browser/playwright_integration.py271 # Use Playwright's robust element selection and text extractionCOMMENT
MEDIUMexamples/cloud/04_proxy_usage.py285 """Demonstrate comprehensive proxy usage."""STRING
MEDIUMexamples/cloud/05_search_api.py297 """Demonstrate comprehensive Search API usage."""STRING
LOWbrowser_use/tools/registry/views.py157 # browser-use code doesn't use this at all, we just pass it down to your actions for convenienceCOMMENT
LOWbrowser_use/llm/schema.py122 # No $ref, just return the optimized objectCOMMENT
MEDIUMbrowser_use/agent/service.py3596 # Level 4: ax_name (accessible name) match - robust for dynamic SPAs with menusCOMMENT
MEDIUMbrowser_use/agent/service.py2063 """Log a comprehensive summary of the next action(s)"""STRING
LOWbrowser_use/agent/views.py518 # If there are no valid sensitive data entries, just return the original valueCOMMENT
LOWbrowser_use/agent/message_manager/service.py168 # If we have fewer items than the limit, just return all itemsCOMMENT
LOWbrowser_use/agent/message_manager/service.py583 # If there are no valid sensitive data entries, just return the original valueCOMMENT
LOWbrowser_use/mcp/server.py183 # If we can't get parent process info, just return NoneCOMMENT
LOWbrowser_use/mcp/client.py518 # Object without properties - just return dictCOMMENT
LOWbrowser_use/browser/session.py3865 # If cross-origin iframes are disabled, just use the main sessionCOMMENT
MEDIUMbrowser_use/browser/watchdogs/downloads_watchdog.py778 # Download using JavaScript fetch to leverage browser cacheCOMMENT
MEDIUMbrowser_use/browser/watchdogs/downloads_watchdog.py1340 # Download using JavaScript fetch to leverage browser cacheSTRING
MEDIUMbrowser_use/browser/watchdogs/dom_watchdog.py435 # Get comprehensive page info from CDP with timeoutSTRING
MEDIUMbrowser_use/browser/watchdogs/dom_watchdog.py749 """Get comprehensive page information using a single CDP call.STRING
MEDIUM…owser_use/browser/watchdogs/default_action_watchdog.py1662 # Set the value using JavaScript with comprehensive event dispatchingCOMMENT
MEDIUM…owser_use/browser/watchdogs/default_action_watchdog.py2073 # Execute JavaScript to trigger comprehensive event sequenceSTRING
MEDIUM…owser_use/browser/watchdogs/default_action_watchdog.py3068 # Use more robust expansion: dispatch proper DOM events that trigger event listenersSTRING
MEDIUMbrowser_use/sandbox/sandbox.py305 # 4. Pickle parameters using cloudpickle for robust serializationCOMMENT
LOWbrowser_use/dom/views.py498 # just pass through shadow rootsCOMMENT
MEDIUMbrowser_use/dom/serializer/eval_serializer.py12# NOTE: Removed 'id' and 'class' to force more robust structural selectorsCOMMENT
MEDIUMbrowser_use/skills/browser_use.py43 body = body.replace('# browser-harness', '# Browser Use', 1).replace('# Browser Harness', '# Browser Use', 1)CODE
MEDIUMbrowser_use/skills/browser_use.py44 # Rebrand every mention except repo URLs (github.com/browser-use/browser-harness/...)COMMENT
MEDIUMbrowser_use/actor/element.py1082 """Focus element using multiple strategies with robust fallbacks."""STRING
MEDIUMbrowser_use/actor/mouse.py86 """Scroll the page using robust CDP methods."""STRING
MEDIUMbrowser_use/actor/playground/playground.py93 # Test element interactions with robust implementationsCOMMENT
MEDIUMbrowser_use/actor/playground/playground.py102 # Click the link using robust click methodCOMMENT
MEDIUMbrowser_use/tokens/service.py513 """Log a comprehensive usage summary per model with colors and nice formatting"""STRING
Fake / Example Data41 hits · 43 pts
SeverityFileLineSnippetContext
LOWtests/ci/test_variable_detection.py110 attributes = {'name': 'first_name', 'placeholder': 'Enter your first name'}CODE
LOWtests/ci/test_variable_detection.py131 result = _detect_from_value_pattern('John Doe')CODE
LOWtests/ci/test_variable_detection.py152 attributes = {'name': 'billing_address', 'placeholder': 'Billing street address'}CODE
LOWtests/ci/test_variable_detection.py163 attributes = {'name': 'comment', 'placeholder': 'Enter your comment'}CODE
LOWtests/ci/test_variable_detection.py207 attributes = {'name': 'zip_code', 'placeholder': 'Zip or postal code'}CODE
LOWtests/ci/test_action_blank_page.py141 assert 'skeleton' in description.lower() or 'placeholder' in description.lower(), (CODE
LOWtests/ci/test_action_blank_page.py160 assert 'skeleton' not in description.lower() and 'placeholder' not in description.lower(), (CODE
LOWtests/ci/test_fallback_llm.py356 placeholder = create_mock_llm('placeholder')CODE
LOWtests/ci/test_fallback_llm.py390 placeholder = create_mock_llm('placeholder')CODE
LOWtests/ci/test_fallback_llm.py418 placeholder = create_mock_llm('placeholder')CODE
LOWtests/ci/security/test_sensitive_data.py249 'google.com': {'email': 'user@example.com', 'password': 'google_pass'},CODE
LOWexamples/features/sensitive_data.py23company_credentials: dict[str, str] = {'telephone': '9123456789', 'email': 'user@example.com', 'name': 'John Doe'}CODE
LOWexamples/features/sensitive_data.py23company_credentials: dict[str, str] = {'telephone': '9123456789', 'email': 'user@example.com', 'name': 'John Doe'}CODE
LOWexamples/browser/playwright_integration.py332 - Phone: "555-9876"CODE
LOWexamples/use-cases/apply_to_job.py30 "address": "123 Main St",STRING
LOWbrowser_use/llm/tests/test_single_step.py141 'model_id': os.getenv('OCI_MODEL_ID', 'placeholder'),CODE
LOWbrowser_use/llm/tests/test_single_step.py145 'compartment_id': os.getenv('OCI_COMPARTMENT_ID', 'placeholder'),CODE
LOWbrowser_use/agent/variable_detector.py149 attributes.get('placeholder', ''),CODE
LOWbrowser_use/mcp/server.py913 if element.attributes.get('placeholder'):CODE
LOWbrowser_use/mcp/server.py914 elem_info['placeholder'] = element.attributes['placeholder']CODE
LOWbrowser_use/dom/service.py109 subtree_root.attributes.get('placeholder', '')CODE
LOWbrowser_use/dom/utils.py60 'placeholder',CODE
LOWbrowser_use/dom/views.py27 'placeholder',CODE
LOWbrowser_use/dom/views.py89 'placeholder',CODE
LOWbrowser_use/dom/views.py610 for attr in ['value', 'aria-label', 'title', 'placeholder', 'alt']:CODE
LOWbrowser_use/dom/serializer/serializer.py1128 if 'placeholder' in include_attributes and 'placeholder' not in attributes_to_include:CODE
LOWbrowser_use/dom/serializer/serializer.py1131 attributes_to_include['placeholder'] = 'YYYY-MM-DD'CODE
LOWbrowser_use/dom/serializer/serializer.py1133 attributes_to_include['placeholder'] = 'HH:MM'CODE
LOWbrowser_use/dom/serializer/serializer.py1135 attributes_to_include['placeholder'] = 'YYYY-MM-DDTHH:MM'CODE
LOWbrowser_use/dom/serializer/serializer.py1137 attributes_to_include['placeholder'] = 'YYYY-MM'CODE
LOWbrowser_use/dom/serializer/serializer.py1139 attributes_to_include['placeholder'] = 'YYYY-W##'CODE
LOWbrowser_use/dom/serializer/serializer.py1142 attributes_to_include['placeholder'] = '123-456-7890'CODE
LOWbrowser_use/dom/serializer/serializer.py1162 attributes_to_include['placeholder'] = date_formatCODE
LOWbrowser_use/dom/serializer/serializer.py1166 attributes_to_include['placeholder'] = 'mm/dd/yyyy'CODE
LOWbrowser_use/dom/serializer/serializer.py1172 attributes_to_include['placeholder'] = date_formatCODE
LOWbrowser_use/dom/serializer/serializer.py1175 attributes_to_include['placeholder'] = 'mm/dd/yyyy'CODE
LOWbrowser_use/dom/serializer/serializer.py1238 protected_attrs = {'format', 'expected_format', 'placeholder', 'value', 'aria-label', 'title'}CODE
LOWbrowser_use/dom/serializer/serializer.py1273 attrs_to_remove_if_text_matches = ['aria-label', 'placeholder', 'title']CODE
LOWbrowser_use/dom/serializer/eval_serializer.py18 'placeholder',CODE
LOWskills/remote-browser/SKILL.md117browser-use input 5 "user@example.com" && browser-use input 6 "password" && browser-use click 7CODE
LOWskills/cloud/references/browser-api.md74await page.fill("#email", "user@example.com")CODE
Magic Placeholder Names8 hits · 40 pts
SeverityFileLineSnippetContext
HIGHexamples/cloud/README.md82 "api_key": "your_api_key"CODE
HIGHexamples/apps/news-use/news_monitor.py48 print(" Then run: export GEMINI_API_KEY='your-api-key-here'")CODE
HIGHexamples/apps/msg-use/login.py22 print("Please set it with: export GOOGLE_API_KEY='your-api-key-here'")CODE
HIGHbrowser_use/skills/README.md15 service = SkillService(skill_ids=skill_ids, api_key='your-api-key')CODE
HIGHskills/open-source/references/integrations.md29 "headers": { "x-browser-use-api-key": "your-api-key" }CODE
HIGHskills/open-source/references/integrations.md42 "headers": { "x-browser-use-api-key": "your-api-key" }CODE
HIGHskills/open-source/references/integrations.md55 "headers": { "x-browser-use-api-key": "your-api-key" }CODE
HIGHskills/cloud/references/browser-api.md24https://connect.browser-use.com/json/version?apiKey=YOUR_API_KEYCODE
Modern AI Meta-Vocabulary8 hits · 24 pts
SeverityFileLineSnippetContext
MEDIUMbrowser_use/browser/session_manager.py58 # Focus recovery coordination - event-driven instead of pollingCOMMENT
MEDIUMbrowser_use/browser/session_manager.py370 # Wait for recovery complete event (event-driven, not polling!)COMMENT
MEDIUMbrowser_use/browser/session_manager.py821 # Use event-driven approach instead of polling for better performanceCOMMENT
MEDIUMbrowser_use/browser/session.py807 # Launch local browser using event-driven approachCOMMENT
MEDIUMbrowser_use/browser/session.py1849 # Initialize event-driven session manager FIRST (before enabling autoAttach)COMMENT
MEDIUMbrowser_use/browser/session.py1862 # This is the foundation of event-driven session managementCOMMENT
MEDIUMbrowser_use/browser/watchdog_base.py180 # With event-driven sessions, Chrome will send detach/attach eventsCOMMENT
MEDIUMskills/open-source/references/examples.md173 # 5. Agent orchestrates using bothCOMMENT
Over-Commented Block26 hits · 24 pts
SeverityFileLineSnippetContext
LOWbin/lint.sh1#!/usr/bin/env bashCOMMENT
LOWtests/ci/browser/test_session_start.py61 # @pytest.mark.skip(reason="Race condition - DOMWatchdog tries to inject scripts into tab that's being closed")COMMENT
LOWtests/ci/browser/test_session_start.py81COMMENT
LOWtests/ci/browser/test_session_start.py341 # Both should complete successfullyCOMMENT
LOWtests/ci/browser/test_session_start.py361 # ),COMMENT
LOWtests/ci/browser/test_session_start.py381 # ),COMMENT
LOWtests/ci/browser/test_session_start.py401 # assert browser_session._cdp_client_root is not NoneCOMMENT
LOWtests/ci/browser/test_session_start.py421 # assert browser_session._cdp_client_root is not NoneCOMMENT
LOW…astructure/test_registry_action_parameter_injection.py301 # # Add a highlight via JavaScriptCOMMENT
LOW…astructure/test_registry_action_parameter_injection.py321 # # Call remove_highlightsCOMMENT
LOWexamples/features/sensitive_data.py21# Advanced case: domain-specific credentials with reusable dataCOMMENT
LOWexamples/models/cerebras_example.py41COMMENT
LOWexamples/apps/ad-use/ad_generator.py221COMMENT
LOW.github/workflows/claude.yml41COMMENT
LOWbrowser_use/tools/service.py861 params: UploadFileAction, browser_session: BrowserSession, available_file_paths: list[str], file_system: FileSystemCOMMENT
LOWbrowser_use/agent/views.py641 # browser_config: BrowserConfig | None = None,COMMENT
LOWbrowser_use/agent/message_manager/service.py501 # Store state message text for historyCOMMENT
LOWbrowser_use/agent/message_manager/service.py521 # # Extract content for loggingCOMMENT
LOWbrowser_use/browser/events.py81 ax_node=None,COMMENT
LOWbrowser_use/browser/events.py341# class SetViewportEvent(BaseEvent):COMMENT
LOWbrowser_use/browser/events.py661COMMENT
LOWbrowser_use/browser/profile.py1041 # 'name': 'Consent-O-Matic',COMMENT
LOWbrowser_use/browser/session.py1721 # self.event_bus.on(DialogCloseEvent, self._popups_watchdog.on_DialogCloseEvent)COMMENT
LOWbrowser_use/dom/serializer/clickable_elements.py161 # if node.attributes:COMMENT
LOWbrowser_use/sync/service.py101 passCOMMENT
LOWbrowser_use/sync/service.py121 # for line in content.splitlines():COMMENT
Synthetic Comment Markers2 hits · 15 pts
SeverityFileLineSnippetContext
HIGHexamples/features/rerun_history.py129 # Display AI-generated summary (last result)COMMENT
HIGHexamples/models/langchain/serializer.py137 # as requested by the userCOMMENT
AI Structural Patterns15 hits · 12 pts
SeverityFileLineSnippetContext
LOWexamples/use-cases/buy_groceries.py53CODE
LOWexamples/use-cases/phone_comparison.py65CODE
LOWbrowser_use/beta/service.py4229CODE
LOWbrowser_use/agent/service.py135CODE
LOWbrowser_use/agent/gif.py35CODE
LOWbrowser_use/agent/prompts.py29CODE
LOWbrowser_use/agent/prompts.py107CODE
LOWbrowser_use/agent/message_manager/service.py107CODE
LOWbrowser_use/agent/message_manager/service.py421CODE
LOWbrowser_use/browser/session.py165CODE
LOWbrowser_use/browser/session.py201CODE
LOWbrowser_use/browser/session.py262CODE
LOWbrowser_use/browser/session.py3333CODE
LOWbrowser_use/browser/session.py3590CODE
LOWbrowser_use/sandbox/sandbox.py215CODE
Example Usage Blocks3 hits · 4 pts
SeverityFileLineSnippetContext
LOWbin/setup.sh3# Usage:COMMENT
LOWbin/lint.sh3# Usage:COMMENT
LOWbin/test.sh3# Usage:COMMENT
Slop Phrases1 hit · 3 pts
SeverityFileLineSnippetContext
MEDIUMexamples/use-cases/find_influencer_profiles.py39 # you can also use other apis like exa, xAI, perplexity, etc.COMMENT
Overly Generic Function Names1 hit · 0 pts
SeverityFileLineSnippetContext
LOWbrowser_use/observability.py113 def my_function(param1, param2):STRING