brainstorming
brainstorming
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or planning anything new, in software or out of it (a talk, a business, a renovation).
browser-useRoute browser tasks between two distinct modes: managed Playwright MCP automation, which defaults to headless and can recover in headed mode when headless limitations block progress, and the user's visible real browser with their current tabs and login state, which is preferred when the task depends on the current page, login state, cookies, extensions, int…
Independent GitHub snapshot · Automated classification · Original documentation governs
name: browser-use description: "Route browser tasks between two distinct modes: managed Playwright MCP automation, which defaults to headless and can recover in headed mode when headless limitations block progress, and the user's visible real browser with their current tabs and login state, which is preferred when the task depends on the current page, login state, cookies, extensions, intranet access, review, takeover, or personal submission. Use for opening URLs or websites, current-page interaction, logged-in or intranet tasks, forms, screenshots, scraping, crawling, web testing, visible or background browsing, headed/headless requests, anti-bot or human-verification failures, and browser runtime configuration. Continue with the browser mode established by recent context unless the user explicitly switches modes or the task clearly starts an independent browser operation." keywords:
There are exactly two browser modes. Keep them conceptually and operationally separate:
Do not require the user to know internal component names. Both modes may be used in separate steps of one turn only when the user's request calls for both, and snapshots, element refs, tabs, cookies, and session state must never be reused across modes.
Use only the current public tool names exposed by the runtime:
managed_browser_* controls the independent browser through Playwright MCP, for example managed_browser_navigate, managed_browser_snapshot, and managed_browser_click.user_browser_* controls the user's visible, currently logged-in browser through browser-gateway, for example user_browser_read_current_page, user_browser_snapshot, and user_browser_click.Treat these namespaces as a security boundary. Never pass snapshots, element refs, tab identifiers, cookies, or session IDs from one namespace to the other. Backend transport identifiers are internal and must not be used when selecting or calling a public tool.
mcp_config(action="set_browser_mode", mode="headed") before navigation, even if tools are already available. A request to inspect the user's existing page selects their real browser.When per-session isolation is enabled, parallel sub_agent runs in the same session each get their own managed browser context. Shared stdio fallback configurations still serialize browser access and may return BROWSER_RUNTIME_BUSY. When a child returns, that context is closed. The parent can see the child's snapshots in the transcript, but must not reuse that child's snapshots, element refs, or tab identifiers.
Background retrieval, scraping, screenshots and testing default to headless. Continue the existing session mode for follow-up steps. Do not switch merely because navigation or a selector failed.
mcp_config(action="inspect_browser"). Prefer source=runtime; a config-file result does not prove a running browser exists.mcp_config(action="set_browser_mode", mode="headed") for a visible window, or mode="headless" for an explicitly background operation. This verifies browser startup for the current session; it does not modify global configuration or restart other sessions.state_reset=true, navigate afresh to the task URL and obtain a new snapshot. Never reuse old refs. No page state is automatically restored.Use headed recovery when the current managed MCP is headless and there is concrete evidence that the browser environment is blocking progress, such as a human-verification challenge that cannot be completed or displayed, a persistent anti-bot/interstitial loop, or behavior that works only in a full visible browser. Do not use headed mode as a generic first retry for timeouts, bad selectors, network errors, or application bugs.
mcp_config(action="inspect_browser"). If the reported mode is already headed, diagnose another cause instead of toggling modes again.mcp_config(action="set_browser_mode", mode="headed"). This rebuilds only the current session. Do not keep using the old refs.Window mode is session-local and lasts until the session/runtime closes. Host configuration remains the default for new sessions. Even with mode=headed, isolated=true still means an independent managed Chromium that does not inherit the user's Chrome login state.
user_browser_* to open URLs, read the current page, take snapshots, click, fill, and perform confirmed submissions when the task depends on user-owned browser state or continues an established real-browser interaction.managed_browser_* for navigation, snapshots, clicks, filling, screenshots, scripts, and network inspection. Do not substitute a user-browser read tool for the managed browser.