Browser Tools
These are all the browser tools your AI agent gets automatically when OpenTabs is running — no plugins required. Tab control, DOM interaction, screenshots, network capture, cookies, console logs: seventy-six tools that give Claude hands-on access to whatever's open in your browser, using your existing sessions.
Tab Management
| Tool | Description |
|---|---|
browser_list_tabs | List all open browser tabs with ID, title, URL, and active status. |
browser_open_tab | Open a new browser tab with a specified URL. |
browser_close_tab | Close a browser tab by its tab ID. |
browser_navigate_tab | Navigate an existing tab to a new URL. |
browser_focus_tab | Focus a tab by making it active and bringing the window to the foreground. Useful for bringing a tab to the foreground for visual inspection. |
browser_get_tab_info | Get detailed information about a tab: loading status, URL, title, favicon, active/incognito status. |
Tab Groups
| Tool | Description |
|---|---|
browser_list_tab_groups | List all Chrome tab groups across all connected browser profiles. Returns groupId, title, color, collapsed state, windowId, and connectionId for each group. |
browser_create_tab_group | Create a new Chrome tab group from one or more tab IDs. Optionally set a title and color. Returns the new groupId, title, color, and windowId. |
browser_add_tabs_to_group | Add one or more tabs to an existing Chrome tab group. Use browser_list_tab_groups to find group IDs. |
browser_remove_tabs_from_group | Remove one or more tabs from their current Chrome tab group (ungroup them). Tabs not in any group are silently ignored. |
browser_update_tab_group | Update a Chrome tab group's title, color, or collapsed state. At least one of title, color, or collapsed must be provided. |
browser_list_tabs_in_group | List all tabs in a specific Chrome tab group. Returns tab ID, title, URL, active status, and window ID for each tab. |
Windows
| Tool | Description |
|---|---|
browser_list_windows | List all open browser windows. Returns each window's id, state (normal/minimized/maximized/fullscreen), bounds, tab count, focused status, and incognito flag. |
browser_create_window | Create a new browser window. Optionally specify a URL, size, position, window state, and incognito mode. |
browser_update_window | Update a browser window's state, size, position, or focus. At least one property must be provided. |
browser_close_window | Close a browser window by its window ID. This closes all tabs in the window. |
Downloads
| Tool | Description |
|---|---|
browser_download_file | Download a file from a URL. Optionally specify a filename and whether to prompt the user with a Save As dialog. Returns a download ID for status tracking. |
browser_list_downloads | List recent downloads with optional filtering by filename, URL, or state. Returns entries with id, filename, url, state (in_progress/interrupted/complete), bytes received, and start time. |
browser_get_download_status | Get the current status of a download by its ID. Returns state, filename, url, bytes received, total bytes, start time, end time, and file path. |
Content Retrieval
| Tool | Description |
|---|---|
browser_get_tab_content | Extract visible text content from a page or specific element. Supports a CSS selector and configurable max length (default 50,000 chars). |
browser_get_page_html | Extract raw HTML (outerHTML) from a page or specific element. Useful for DOM inspection, finding data attributes, and embedded JSON. Configurable max length (default 200,000 chars). |
browser_execute_script | Execute arbitrary JavaScript in a tab's MAIN world with full DOM access. Script runs via the extension API, which is not subject to the page's Content Security Policy. Evaluated like the Chrome DevTools console or Node REPL — a single expression (including IIFEs and await) returns its value directly; multi-statement code uses function-body semantics with return. Returns JSON-serializable values. |
browser_screenshot_tab | Capture a screenshot of the visible tab area as a base64-encoded PNG. Auto-focuses the tab before capture. |
DOM Interaction
| Tool | Description |
|---|---|
browser_click_element | Click an element matching a CSS selector. Returns the tag name and text content of the clicked element. |
browser_type_text | Type text into an input field or textarea. Optionally clears the field first (default: true). |
browser_select_option | Select an option from a <select> dropdown by value or label. |
browser_query_elements | Query all elements matching a CSS selector. Returns tag names, text, and attributes (id, class, href, src, type, name, value, placeholder). Configurable limit (default 100). |
browser_wait_for_element | Wait for an element to appear in the DOM with a configurable timeout (default 10s). Optionally wait for visibility. |
browser_hover_element | Dispatch hover events (mouseenter, mouseover, pointermove) to trigger dropdowns, tooltips, and menus. |
browser_press_key | Dispatch keyboard events on a page element. Supports modifier keys (shift, ctrl, alt, meta) and standard KeyboardEvent.key values like Enter, Escape, Tab, ArrowDown. |
Scroll & Dialogs
| Tool | Description |
|---|---|
browser_scroll | Scroll the page or a scrollable container by direction, distance, or absolute position. Use the optional container parameter (CSS selector) to scroll within a specific scrollable element instead of the page. Returns current scroll position, total scroll size, and viewport dimensions. |
browser_handle_dialog | Handle JavaScript dialogs (alert, confirm, prompt) that block page execution. Accepts or dismisses, with optional prompt text. |
Storage & Cookies
| Tool | Description |
|---|---|
browser_get_storage | Read localStorage or sessionStorage from a tab. Useful for discovering auth tokens, session data, feature flags, and app config. |
browser_get_cookies | Get cookies for a URL, including HttpOnly cookies not accessible from JavaScript. |
browser_set_cookie | Create or overwrite a browser cookie with full control over domain, path, secure, httpOnly, and expiration. |
browser_delete_cookies | Delete a specific cookie by URL and name. |
History
| Tool | Description |
|---|---|
browser_search_history | Search browser history by text query. Matches against page URLs and titles. Returns history entries with url, title, visitCount, and lastVisitTime. Optionally filter by date range. |
browser_get_visits | Get detailed visit information for a specific URL. Returns an array of visits with visitId, visitTime, referringVisitId, and transition type (link, typed, form_submit, reload, etc.). |
Bookmarks
| Tool | Description |
|---|---|
browser_search_bookmarks | Search bookmarks by query string. Matches against bookmark titles and URLs. Returns matching bookmarks with id, title, url, parentId, and dateAdded. |
browser_create_bookmark | Create a new bookmark. Optionally specify a parentId to place it in a specific folder. Returns the created bookmark node with id, title, url, and dateAdded. |
browser_list_bookmark_tree | List the bookmark tree structure up to 3 levels deep. Returns bookmark folders and their children with id, title, url (for bookmarks), and children (for folders). Useful for finding folder IDs for browser_create_bookmark. |
Session
| Tool | Description |
|---|---|
browser_get_recently_closed | Get recently closed tabs and windows (up to 25). Returns sessions with type (tab or window), sessionId, closedAt, and details. Use the sessionId with browser_restore_session. |
browser_restore_session | Restore a recently closed tab or window by its session ID. Use browser_get_recently_closed to find session IDs. |
Network Capture
Network capture uses the Chrome DevTools Protocol (chrome.debugger) to intercept requests and responses.
| Tool | Description |
|---|---|
browser_enable_network_capture | Start capturing network requests and responses for a tab. Captures URL, method, status, headers, request/response bodies (text-based), MIME type, and timing. One capture session per tab. Also enables console log capture. Also captures WebSocket frame payloads (sent and received) — retrieve them with browser_get_websocket_frames. |
browser_get_network_requests | Retrieve captured network requests. Useful for reverse-engineering API shapes and understanding data flows. Optionally clears the buffer after reading. |
browser_get_websocket_frames | Get WebSocket frames captured since browser_enable_network_capture was called on this tab. Each frame includes URL, direction (sent/received), data payload, opcode, and timestamp. |
browser_export_har | Export captured network traffic as a HAR 1.2 JSON file. Requires an active capture session from browser_enable_network_capture. Must be called before browser_disable_network_capture, which clears the buffer. |
browser_disable_network_capture | Stop capturing and release the Chrome DevTools Protocol debugger session. |
Network Interception
Network interception uses the Chrome DevTools Protocol Fetch domain to pause and modify HTTP requests before they are sent.
| Tool | Description |
|---|---|
browser_intercept_requests | Start intercepting HTTP requests for a tab. Paused requests can be fulfilled with custom responses (browser_fulfill_request), failed with an error (browser_fail_request), or released by stopping interception. Use urlPatterns to filter which requests to intercept. Paused requests block the page — handle them promptly. |
browser_fulfill_request | Fulfill a paused HTTP request with a custom response. The request must have been paused by browser_intercept_requests. Provide the requestId, HTTP status code, optional response headers, and optional body. |
browser_fail_request | Fail a paused HTTP request with a network error. Use to simulate network failures, blocked requests, or connection errors. |
browser_stop_intercepting | Stop intercepting HTTP requests for a tab. Any still-paused requests are automatically continued. |
Emulation
Emulation tools override the browser environment using the Chrome DevTools Protocol Emulation domain. Overrides persist until cleared with browser_clear_emulation.
| Tool | Description |
|---|---|
browser_emulate_device | Emulate a device by overriding viewport dimensions, device scale factor, mobile flag, and user agent string. |
browser_set_geolocation | Override the geolocation reported by the browser for a tab. |
browser_set_media_features | Override CSS media features for a tab. Supports prefers-color-scheme, prefers-reduced-motion, prefers-contrast, and color-gamut. |
browser_emulate_vision_deficiency | Simulate a vision deficiency for a tab. Useful for accessibility testing. Set type to "none" to remove the simulation. |
browser_clear_emulation | Clear all emulation overrides for a tab — device metrics, user agent, geolocation, media features, and vision deficiency simulation. |
CSS & Styles
| Tool | Description |
|---|---|
browser_get_element_styles | Get computed CSS styles and matched CSS rules for a DOM element. Returns computed style properties and matched rules with selectors, values, source URLs, and line numbers. |
browser_force_pseudo_state | Force CSS pseudo-class states (:hover, :focus, :active, :visited, :focus-within, :focus-visible) on a DOM element. Useful for inspecting hover and focus styles without manual interaction. Pass an empty array to clear forced states. |
browser_get_css_coverage | Start CSS rule usage tracking, wait for page activity, then report which CSS rules are used vs. unused. Returns per-stylesheet usage percentages and total page-wide coverage. |
Network Throttling
| Tool | Description |
|---|---|
browser_throttle_network | Simulate slow network conditions using the Chrome DevTools Protocol. Choose a preset (offline, slow-3g, 3g, 4g, wifi) or provide custom latency and throughput values. |
browser_clear_network_throttle | Remove network throttling for a tab, restoring normal network conditions. |
Site Data
| Tool | Description |
|---|---|
browser_clear_site_data | Clear browsing data for a specific origin. Selectively clear cookies, localStorage, cache, IndexedDB, and/or service workers. Useful for resetting site state or debugging authentication issues. |
Console Logs
Console log capture is enabled alongside network capture via browser_enable_network_capture.
| Tool | Description |
|---|---|
browser_get_console_logs | Get console log messages from a tab. Requires browser_enable_network_capture to be active on the tab (the debugger captures both network requests and console output). Filter by level: log, warn, error, info, debug, or all. Optionally clears the buffer. |
browser_clear_console_logs | Clear the console log buffer for a tab without disabling capture. |
Resource Inspection
| Tool | Description |
|---|---|
browser_list_resources | Enumerate all resources loaded by a page (scripts, stylesheets, images, fonts, XHR, Fetch, WebSocket, etc.) via Chrome DevTools Protocol. Filter by resource type. |
browser_get_resource_content | Read content of a specific resource by URL from the browser cache (no re-fetch). Returns text as a string or binary as base64. Configurable max length (default 500,000 chars). Useful for reading JavaScript source to understand API patterns and endpoints. |
Extension Diagnostics
These tools control and diagnose the OpenTabs Chrome extension itself. They use the extension_ prefix instead of browser_.
| Tool | Description |
|---|---|
extension_reload | Reload the Chrome extension. The extension briefly disconnects and automatically reconnects. |
extension_get_state | Get the complete internal state of the extension: WebSocket connection status, all plugins with tab states, active network captures, offscreen document status. |
extension_get_logs | Retrieve internal logs from the background script and offscreen document. Filter by level and source. |
extension_get_side_panel | Get the side panel's React state and rendered HTML, or {open: false} if the panel is not open. |
extension_check_adapter | Check adapter injection status for a plugin across all matching tabs. Reports adapter presence, hash validity, isReady() result, and tool names per tab. |
extension_force_reconnect | Force a WebSocket disconnect and immediate reconnection without reloading the full extension. |
Site Analysis
| Tool | Description |
|---|---|
plugin_analyze_site | Comprehensively analyze a web page to produce actionable intelligence for building OpenTabs plugins. Opens the URL, captures network traffic, detects auth methods (cookies, JWT, Bearer, API keys, CSRF), classifies API endpoints by protocol (REST, GraphQL, gRPC-Web, JSON-RPC, tRPC, WebSocket, SSE), identifies frontend frameworks with SPA/SSR flags, scans globals, forms, and storage keys, and generates concrete tool suggestions. Input: { url, waitSeconds? } — waitSeconds defaults to 5, max 25. |
plugin_list_tabs | List open browser tabs that match a plugin's URL patterns, with per-tab readiness status. Returns tab IDs, URLs, titles, and readiness for each matching tab. Use this to discover available tabs before targeting a specific one with the tabId parameter on plugin tools. When called without a plugin argument, returns tabs for all plugins. |
Notifications
| Tool | Description |
|---|---|
browser_notify | Show a Chrome desktop notification. Use to alert the user about completed tasks, errors, or important events. The notification appears even when Chrome is in the background. If a URL is provided, clicking the notification opens that URL in a new tab. |
Summary
| Category | Count | Prefix |
|---|---|---|
| Tab Management | 6 | browser_ |
| Content Retrieval | 4 | browser_ |
| DOM Interaction | 7 | browser_ |
| Scroll & Dialogs | 2 | browser_ |
| Storage & Cookies | 4 | browser_ |
| Network Capture | 5 | browser_ |
| Console Logs | 2 | browser_ |
| Resource Inspection | 2 | browser_ |
| Site Analysis | 2 | plugin_ |
| Extension Diagnostics | 6 | extension_ |
| Tab Groups | 6 | browser_ |
| Windows | 4 | browser_ |
| Downloads | 3 | browser_ |
| History | 2 | browser_ |
| Bookmarks | 3 | browser_ |
| Session | 2 | browser_ |
| Network Interception | 4 | browser_ |
| Emulation | 5 | browser_ |
| CSS & Styles | 3 | browser_ |
| Network Throttling | 2 | browser_ |
| Site Data | 1 | browser_ |
| Notifications | 1 | browser_ |
| Total | 76 |
Last Updated: 15 Apr, 2026