L’interface est localisée ; les présentations et documents des Skills sont traduits automatiquement par IA dans votre langue. Le code, les commandes, chemins et termes techniques restent en version originale, et le document de l’auteur fait foi.
Explorer les Skills
Productivité · SKILL.md

browser-control

browser-control

Configure and troubleshoot Browser Use Browser, BrowserSession, BrowserProfile, CDP, real Chrome profiles, cloud browsers, domains, proxies, downloads, screenshots, DOM, and low-level Actor control.

Independent GitHub snapshot · Automated classification · Original documentation governs

Documentation de la Skill

GitHub

name: browser-control description: "Configure and troubleshoot Browser Use Browser, BrowserSession, BrowserProfile, CDP, real Chrome profiles, cloud browsers, domains, proxies, downloads, screenshots, DOM, and low-level Actor control." disable-model-invocation: true metadata: disco-role: operating license: MIT

Browser Control

Use this sub-skill when a Browser Use task depends on configuring, starting, connecting to, or directly controlling browser sessions rather than only writing an Agent workflow.

Own This Scope

  • Browser / BrowserSession lifecycle: local Chromium, existing Chrome, CDP URLs, cloud browser sessions, tabs, cookies, storage state, screenshots, downloads, recordings, and teardown.
  • BrowserProfile configuration: launch/connect parameters, profiles, domains, proxies, viewport/window, extensions, iframe/DOM capture, timing, video/HAR/trace paths, and security flags.
  • Direct browser control: Actor Page, Element, and Mouse; CDP-backed methods on BrowserSession; DOM selector maps; screenshots and page state summaries.
  • Browser safety: allowed_domains, prohibited_domains, block_ip_addresses, download path containment, file/profile isolation, and risky options such as disable_security.

Route Elsewhere

  • Agent construction, prompts, Agent.run(), callbacks, history, initial actions, flash/planning settings: ../agent-programming/SKILL.md.
  • Custom tools, ActionResult, file tools, Playwright-backed actions, parameter injection, sensitive data tools: ../tools-and-actions/SKILL.md.
  • LLM provider selection, ChatBrowserUse, structured output, cost, fallback models: ../llm-and-output/SKILL.md.
  • Terminal browser-use / bu sessions and CLI profile commands: ../cli-and-sessions/SKILL.md.
  • @sandbox, MCP, profile sync, monitoring, and production integration architecture: ../production-integrations/SKILL.md.

Quick API Imports

Prefer public imports for user code:

from browser_use import Browser, BrowserProfile
from browser_use.browser import BrowserSession, ProxySettings

Facts to preserve:

  • Browser is the public alias for BrowserSession; use Browser(...) in simple examples and BrowserSession(...) when emphasizing the class name.
  • BrowserSession accepts most BrowserProfile fields directly, or can receive browser_profile=BrowserProfile(...) for reusable configuration.
  • Browser Use APIs are async for session/page operations; wrap examples with asyncio.run(main()) or call them from an existing event loop.
  • For browser automation models, recommend ChatBrowserUse in sibling examples, but keep model/provider details in ../llm-and-output/SKILL.md.

Default Decision Tree

  1. Need an Agent to browse with custom browser settings? Create browser = Browser(...) and pass Agent(..., browser=browser); route Agent parameters to ../agent-programming/SKILL.md.
  2. Need a local browser window? Use Browser(headless=False, window_size={...}); set keep_alive=True only when the user wants the browser left open.
  3. Need logged-in local Chrome? Prefer Browser.from_system_chrome(profile_directory=...) after closing Chrome; if the profile is locked, connect to a running Chrome via cdp_url instead.
  4. Need an already-running browser? Launch Chrome with a remote debugging port, verify /json/version, then use Browser(cdp_url="http://localhost:9222", is_local=True) or a BrowserProfile with those fields.
  5. Need cloud browser performance or anti-bot help? Use Browser(use_cloud=True) with a BROWSER_USE_API_KEY; route deployment details to ../production-integrations/SKILL.md.
  6. Need deterministic low-level clicks, selectors, screenshots, or cookies without LLM planning? Start a Browser and use Actor/Page/session APIs from references/browser-api.md.
  7. Need navigation guardrails? Configure allowed_domains or prohibited_domains before starting the session; never rely on prompt wording alone for domain security.

Safe Defaults

Use these defaults unless the user asks otherwise:

browser = Browser(
    headless=True,
    user_data_dir=None,
    allowed_domains=["example.com"],
    downloads_path="./downloads",
)
  • Use user_data_dir=None for incognito-like isolation when persistent login is not needed.
  • Use separate user_data_dir values for parallel browsers; do not share one writable profile across concurrent sessions.
  • Use allowed_domains for high-risk tasks; root domains like example.com also allow www.example.com, while wildcard patterns like *.example.com allow the root plus subdomains.
  • Keep disable_security=False; only set it for controlled local testing and call out the risk.
  • Prefer Browser(use_cloud=True) when users ask how to improve browser performance in production; Browser Use Cloud is optimized for Browser Use and can be streamed remotely.

Core Recipes

  • Local/headful, real Chrome, CDP, cloud browser, proxy, cookies/storage, parallel sessions, and recordings: references/browser-recipes.md.
  • Parameter catalog, session lifecycle, tabs, cookies, screenshots, Actor Page/Element/Mouse, DOM/state methods, and CDP helpers: references/browser-api.md.
  • Domain filtering, download containment, DOM/iframe/highlight behavior, screenshots, and guardrails: references/security-and-dom.md.
  • Install/import, Chromium, CDP, profile locks, cloud/API key, proxy, downloads, screenshots/video/HAR, and validation errors: references/troubleshooting.md.

Minimal Local Browser Example

import asyncio
from browser_use import Agent, Browser, ChatBrowserUse

async def main():
    browser = Browser(headless=False, window_size={"width": 1200, "height": 800})
    agent = Agent(task="Open example.com and summarize the page", llm=ChatBrowserUse(), browser=browser)
    await agent.run()
    await browser.kill()

asyncio.run(main())

Direct Control Example

import asyncio
from browser_use import Browser

async def main():
    browser = Browser(headless=True, user_data_dir=None)
    await browser.start()
    page = await browser.new_page("https://example.com")
    print(await page.get_title())
    print(await browser.get_current_page_url())
    await browser.kill()

asyncio.run(main())

Validation Checklist

Before handing code back to a user:

  • Imports use current public names: Browser, BrowserSession, BrowserProfile, ProxySettings.
  • Browser/session options are on Browser(...) or BrowserProfile(...), not on Agent(...) unless the Agent parameter is specifically browser, browser_session, or browser_profile.
  • Async methods are awaited: start, new_page, get_pages, navigate_to, take_screenshot, export_storage_state, kill.
  • Any profile, download, HAR, video, trace, or storage-state path is user-controlled and not a hidden local path.
  • CDP examples include a readiness check against http://host:port/json/version.
  • Cloud examples state BROWSER_USE_API_KEY is required but never include a key.
  • Security examples use concrete domain lists and explain redirects/new tabs can be blocked after navigation too.

Common Failure Routing

  • ValidationError or extra_forbidden: wrong constructor field or typo; verify against references/browser-api.md.
  • Unable to copy Chrome profile ... locked: close Chrome or use CDP with the already-running browser; see references/troubleshooting.md.
  • Navigation blocked by security policy: inspect allowed_domains / prohibited_domains; see references/security-and-dom.md.
  • Chrome failed to start, missing executable, or no display: install Chromium through Browser Use tooling, set headless=True, or use Browser(use_cloud=True).
  • Screenshot/video/HAR path empty: ensure the browser was started, path directories are writable, and the feature is supported by the chosen local/cloud session.
Skills enregistrées