agentic-browser
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| AGENT_TOKEN | No | Optional Bearer token for the HTTP server | |
| AGENT_TOOLS | No | core (12 essential tools) or a comma-separated list. Fewer tools means fewer prompt tokens | all |
| AGENT_TRACE | No | Audit log of every tool call | ~/.agentic-browser/trace.jsonl |
| AGENT_CHROME | No | Path to the browser. Auto-detected by default. Any Chromium browser works: Chrome, Edge (falls back to it automatically), Brave, Chromium | |
| AGENT_FFMPEG | No | Path to ffmpeg for MP4 recordings; none forces the WebM fallback | ffmpeg |
| AGENT_CDP_URL | No | Attach to a running Chrome started with --remote-debugging-port=9222 --user-data-dir=… | |
| AGENT_DIALOGS | No | alert/confirm/prompt: accept or dismiss | accept |
| AGENT_PROFILE | No | Persistent agent profile (cookies and logins survive restarts) | ~/.agentic-browser/profile |
| AGENT_HEADLESS | No | 1 = no window (servers, CI) | 0 |
| AGENT_READONLY | No | 1 disables every tool that changes a page | 0 |
| AGENT_DOWNLOADS | No | Download folder | ~/.agentic-browser/downloads |
| AGENT_HTTP_PORT | No | HTTP port | 8787 |
| AGENT_RECORDINGS | No | Where browser_record_stop saves videos | ~/.agentic-browser/recordings |
| AGENT_CURSOR_SPEED | No | ms per 100 px of cursor travel; 0 = instant | 120 |
| AGENT_ALLOWED_ORIGINS | No | Domain allowlist, e.g. wikipedia.org,localhost (subdomains included) |
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 |
|---|---|
| browser_navigateC | Abre una URL en la pestaña activa. Devuelve título/URL y opcionalmente el snapshot. |
| browser_historyC | Atrás, adelante o recargar. |
| browser_snapshotA | PERCEPCIÓN PRINCIPAL (sin captura). Lista compacta de elementos visibles con ref, rol, nombre, estado y centro @x,y en píxeles. ~15 tokens por elemento. Con diff:true devuelve solo lo que cambió desde el snapshot anterior. |
| browser_findB | Busca elementos por texto/etiqueta y devuelve sus refs y coordenadas, incluso fuera del viewport. |
| browser_element_atB | Visión por píxel SIN imagen: dado (x,y) devuelve qué elemento hay ahí (rol, texto, si es clicable, ruta DOM). |
| browser_cursorB | Posición actual del cursor del agente y el elemento bajo él. |
| browser_moveA | Mueve el cursor visible (hover) a un ref o a x,y. Dispara mouseover/mousemove reales. |
| browser_clickC | Mueve el cursor de forma visible y hace clic real (CDP Input) sobre un ref o x,y. |
| browser_typeA | Escribe texto con eventos de teclado reales. Si das ref/x,y primero hace clic para enfocar. Nunca escribe en contraseñas, códigos 2FA, tarjetas ni números de cuenta (estado {sensitive}): eso lo hace la persona con browser_request_human. |
| browser_pressB | Pulsa teclas o combinaciones: "Enter", "Escape", "Control+L", "Tab", "ArrowDown"... Varias separadas por espacio. |
| browser_scrollB | Desplaza con la rueda del ratón (dy>0 baja). Con ref, lleva ese elemento al centro. |
| browser_dragB | Arrastra de un punto/ref a otro con el botón pulsado (sliders, kanban, mapas). |
| browser_selectC | Elige opciones en un (por valor o texto visible). |
| browser_uploadB | Adjunta archivos locales a un (o al selector que abre un clic en ese ref). Solo desde las carpetas permitidas (AGENT_UPLOAD_DIRS). |
| browser_readB | Texto legible de la página (o de un selector CSS), para leer artículos/resultados. |
| browser_extractA | Datos estructurados en UNA llamada: convierte la tabla o la lista repetida más relevante (productos, resultados, contactos) en filas JSON o CSV, con título, enlace, precio e imagen. Limítalo con ref o selector. Con file lo guarda en disco y solo devuelve un resumen. |
| browser_evalB | Ejecuta JavaScript en la página y devuelve el resultado (JSON). Desactivada salvo AGENT_ALLOW_EVAL=1. |
| browser_waitC | Espera ms, o hasta que aparezca un texto o selector. |
| browser_watchA | Espera (sin gastar tokens) hasta que la página cambie: aparece texto nuevo, cambia el título (ej. "(3) WhatsApp") o coincide un patrón. Ideal para vigilar chats, correos o resultados que tardan. |
| browser_request_humanA | Pide ayuda a la persona que mira el navegador (login, 2FA, CAPTCHA, una decisión). Muestra un banner y espera a que pulse "Listo" o "Cancelar". El agente no ve lo que el humano escribe. |
| browser_traceB | Últimas acciones ejecutadas (herramienta, argumentos, duración, URL, resultado) para depurar o auditar. |
| browser_tabsB | Gestiona pestañas: list, new (con url), select (index), close (index). |
| browser_consoleC | Últimos mensajes de consola y errores JS de la pestaña activa. |
| browser_eventsC | Diálogos aceptados, descargas guardadas y popups abiertos desde la última consulta. |
| browser_cursor_styleB | Muestra/oculta el cursor visual, su estela, el contador de tokens en vivo (hud) o la máscara de privacidad que difumina contactos y números al grabar o compartir pantalla. |
| browser_dismissA | Cierra popups que tapan la página (idioma, newsletter, cookies, "inicia sesión con Google"), con clics visibles. Solo pulsa botones de cerrar o rechazar, nunca aceptar, suscribirse ni iniciar sesión. Ya se hace solo tras browser_navigate (AGENT_AUTO_DISMISS=0 lo apaga). |
| browser_statsC | Tokens que ha devuelto agentic-browser en esta sesión frente a lo que habrían costado las capturas de pantalla (una por cada percepción, ancho×alto/750). |
| browser_teach_startA | MODO ENSEÑAR. Empieza a grabar una receta: la persona hace la tarea una vez en el Chrome del agente (clics, textos, selecciones, Enter) y pulsa "Terminar" en el banner. Se guarda por rol y nombre de cada elemento, no por píxeles. Las contraseñas nunca se graban. Después llama a browser_teach_stop. |
| browser_teach_stopA | Termina la grabación de browser_teach_start. Por defecto espera a que la persona pulse "Terminar" (o "Cancelar"). Guarda la receta y devuelve sus pasos y parámetros. |
| browser_recipesA | Lista las recetas grabadas o, con name, muestra sus pasos y parámetros. |
| browser_replayA | Repite una receta grabada. Localiza cada elemento por rol y nombre y ejecuta los pasos sin percibir la página: casi no gasta tokens. params cambia los textos escritos, ej. {"buscar": "facturas octubre"}. Los campos secretos (contraseñas) siempre los escribe la persona. |
| browser_record_startA | Empieza a grabar en vídeo la pestaña activa (con el cursor rojo visible) para clips de demostración. Sigue usando las demás herramientas y termina con browser_record_stop. Las pausas sin cambios conservan su duración real. MP4 (H.264) si hay ffmpeg en el PATH; si no, WebM. |
| browser_record_stopA | Detiene la grabación de browser_record_start y codifica el vídeo. Devuelve ruta, duración (s), tamaño y formato. |
| browser_batchA | Varias acciones en UNA llamada (ahorra un turno del agente por acción): [{tool:"browser_click", args:{ref:12}}, {tool:"browser_type", args:{ref:14, text:"hola", submit:true}}]. Se ejecutan en orden y se detiene en el primer error. Úsala cuando ya sabes los pasos siguientes; con snapshot:true devuelve el estado final. |
| browser_screenshotB | ÚLTIMO RECURSO (gasta tokens): imagen JPEG de la página o de un ref, para contenido puramente visual (canvas, gráficos, captchas no). |
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 35 tools
The core interaction tools (click, type, press, scroll, drag, select, upload) are cleanly separated, but the perception layer has four overlapping channels: browser_snapshot, browser_read, browser_extract and browser_screenshot all return page content, and browser_find vs browser_element_at vs browser_cursor all locate elements by different means. browser_wait and browser_watch both wait for page changes, and browser_cursor vs browser_cursor_style differ only subtly in name while doing unrelated things.
Every tool carries the same browser_ prefix and uses snake_case throughout, which makes the set highly predictable. The only inconsistency is grammatical: many names are verbs (navigate, click, extract, replay) while others are nouns (snapshot, tabs, events, history, stats, recipes, cursor), though each remains readable and guessable.
35 tools is well past the comfortable range for a single server and the surface sprawls into four sub-domains: core automation, perception, diagnostics (trace, stats, console, events), and a teaching/recording subsystem (teach_start, teach_stop, recipes, replay, record_start, record_stop). Several of these are convenience wrappers or observability extras that could be collapsed (batch, cursor_style, stats, trace) rather than separate tools.
The surface is unusually thorough: navigation, tabs, full input primitives, human handoff, downloads/dialogs, structured extraction, batch execution and a recipe-recording lifecycle are all covered with no obvious dead ends. Remaining gaps are real but niche for the domain: no iframe/frame targeting, no cookie or localStorage management, no viewport/device emulation, and no clipboard read beyond keyboard shortcuts.