chrome
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| OPENCODE_BROWSER_HOST | No | Endereço de escuta. | 127.0.0.1 |
| OPENCODE_BROWSER_PORT | No | Porta do bridge WebSocket. | 8787 |
| OPENCODE_BROWSER_DEBUG | No | `1` inclui stack traces nos erros das ferramentas. | |
| OPENCODE_BROWSER_TOKEN | No | Token compartilhado exigido da extensão. | |
| OPENCODE_BROWSER_ALLOW_REMOTE | No | `1` permite escutar fora do loopback. Evite. | |
| OPENCODE_BROWSER_REQUEST_TIMEOUT | No | Timeout padrão de comandos em ms. | 30000 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| statusA | Check whether the Chrome extension is connected, list open tabs and show the active tab. Call this first when browser tools seem unavailable. |
| tabsC | List, create, activate, close, reload, duplicate, pin or mute Chrome tabs. Actions: list, new, activate, close, get, reload, duplicate, pin, mute, unmute. |
| navigateB | Open a URL, go back/forward, reload or stop the active tab. Waits for the requested load state. Use newTab=true to open in a new tab. |
| snapshotA | Return a compact accessibility-style tree with stable refs (e.g. f0_e12) for interactive elements. Do this before clicking or typing. Refs belong to a frame; use allFrames=true to include iframes. |
| screenshotA | Capture the viewport, the full page, or one element. Set annotate=true to draw element refs as labeled boxes and grid=true for a 100px coordinate grid. Returns an image the model can see. |
| clickA | Click an element by ref (preferred), CSS selector, visible text, or viewport coordinates. Uses trusted CDP input by default and falls back to DOM events. Waits for a navigation if one starts. |
| typeB | Type into an input, textarea or contenteditable element. Clears the field by default and uses trusted CDP keystrokes. Set pressEnter=true to submit. If no target is given, types into the focused element. |
| pressC | Press a key or key combination: Enter, Tab, Escape, Backspace, ArrowDown, Control+A, Shift+Enter, F5, etc. Optionally focus an element first. |
| hoverB | Move the real mouse over an element to trigger CSS :hover, tooltips and menus. Falls back to synthetic mouse events without CDP. |
| selectA | Choose one or more options in a native by value, label or index. For custom dropdowns, click the trigger and then click an option with chrome_click. |
| scrollB | Scroll the page or a container, jump to top/bottom, or bring an element into view. Uses trusted mouse wheel events when CDP is available. |
| wait_forB | Wait for a selector/text state, a URL, a JavaScript predicate, or a page load state. Use after actions that trigger async updates or navigation. |
| evaluateB | Execute JavaScript in the page main world and return a JSON value. Use an IIFE for multiple statements, e.g. "(() => ({title: document.title}))()". Powerful: prefer snapshot/DOM when possible. |
| domC | Query DOM elements and return metadata, HTML, text, attributes, computed styles, rects or counts. Supports open shadow DOM with the ">>>" separator, e.g. "my-app >>> button". |
| fill_formC | Fill multiple fields in one call and optionally submit. Each field may use ref or selector; type can be "text", "select", "checkbox" or "radio". |
| upload_fileC | Set one or more files on an using absolute paths on the machine running Chrome. Requires CDP and the top frame. |
| consoleB | Read console logs, warnings, errors and unhandled rejections captured since page load. Use action="clear" to reset the buffer. |
| networkC | Read fetch/XHR requests captured since page load, including status, duration and errors. Set includeStatic=true to include scripts/images/cached resource timings. |
| cookiesC | Read, set, delete or clear cookies for the current site using Chrome cookies API. Values are returned to the model: handle secrets carefully. |
| dialogA | Inspect recent alert/confirm/prompt dialogs, clear the log, or change how future dialogs are answered. Interception avoids blocking automation. |
| highlightB | Draw temporary labeled outlines over one element, all elements with refs, or a selector/text match on the live page. Useful for visual debugging and demos. |
| dragC | Drag from one element/point to another using real mouse events when CDP is available, with synthetic pointer/drag events as fallback. Works for pointer-based UIs and many HTML5 drop zones. |
| emulateA | Emulate viewport size, device scale, mobile, user agent, geolocation, color scheme, timezone or offline/network conditions. Requires CDP. Use action="reset" to clear overrides. |
| debuggerB | Show, attach or detach the Chrome debugger for a tab. CDP enables trusted input, full-page screenshots, evaluation, uploads and emulation. Attaching shows a Chrome debug banner. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 24 tools
Most tools target clearly distinct concerns (navigation, interaction, inspection, storage, emulation), so an agent can pick correctly. Minor overlaps exist: opening a tab via tabs vs navigate(newTab=true), typing-with-Enter via type vs press, and visual tools screenshot/highlight. These are adequately differentiated in the descriptions.
Consistent snake_case throughout with no camelCase mixing, and a semi-predictable convention where interaction tools are verbs (click, type, drag, scroll) and inspection tools are nouns (status, tabs, console, network, cookies). The verb/noun mix and a few compound names (fill_form, upload_file, wait_for) keep it from being a strict single pattern.
24 tools is on the heavy side of the ideal range, but for a full browser-control surface covering navigation, input, DOM/a11y inspection, network, storage and emulation, each tool maps to a genuine capability. No obvious redundant tool inflates the count.
Coverage is broad and coherent across the browser lifecycle: navigation, tab management, DOM/snapshot/screenshot, input primitives, form fill, uploads, dialogs, console, network, cookies, emulation and debugger control. Gaps like explicit storage APIs and download handling exist but are workable via evaluate.