El navegador integrado

Cada máquina (un espacio de trabajo, en el editor de ajustes) incluye su propio navegador web: un Chromium completo que se abre como un panel junto al chat o al terminal. Existe para que un agente pueda ver la web: abrir la app que acaba de construir, leer una página de documentación, reproducir un error, recorrer un flujo, y para que tú puedas observar (y conducir) el mismo navegador que él. El navegador se ejecuta en su propia VM sidecar desechable, separada de la VM de la máquina, de modo que una página hostil nunca puede tocar los archivos del agente ni tu Mac.

Este capítulo es la guía completa para usarlo: cómo abrirlo, conducirlo a mano, dejar que el agente lo controle a través del servidor MCP del navegador integrado, mantener las sesiones iniciadas y el modelo de privacidad. Todo lo que aquí se explica también se aplica cuando un agente remoto lo controla a través de una conexión de cliente enriquecido.

Para los controles gráficos de la aplicación web Bromure independiente, consulta Aceleración Metal en Bromure Web. Esos controles son independientes de los ajustes del navegador integrado que se describen aquí.

Abrir el navegador

Muestra u oculta el panel del navegador con ⌃⌘B, o haz clic en el botón del globo de la barra de herramientas, junto al menú de la máquina. Se abre como una división en el borde derecho del escenario, junto al chat de la sesión o al terminal de la máquina. Cada máquina tiene su propio navegador: el panel muestra el navegador de la máquina que hay detrás de lo que esté en el escenario. En una sala, el globo y el panel siguen a la sesión de la celda enfocada.

La primera vez que lo abras (por Mac, no por máquina) una tarjeta de consentimiento pregunta ¿Instalar el navegador? con Descargar e instalar y Ahora no. La imagen del navegador es una descarga única (la tarjeta indica su tamaño, unos 500 MB), compartida por todas las máquinas. Mientras se descarga, el panel muestra Configurando el navegador con una barra de progreso. También puedes descargarla por adelantado desde los ajustes del Navegador de la máquina con Descargar ahora.

Una vez instalado, la VM del navegador arranca de forma diferida la primera vez que cualquier máquina abre el panel (o la primera vez que un agente llama a una herramienta del navegador), lo que tarda un segundo o dos. No gestionas esta VM directamente: se crea, se suspende y se destruye por ti (consulta Ciclo de vida y uso de recursos).

Nota: El navegador se ejecuta en una VM distinta de aquella en la que se ejecuta el shell de tu agente. Ambas comparten una red privada (consulta Cargar un servidor de desarrollo), pero no son la misma máquina: un archivo que el agente escribe en su directorio de inicio no está en el disco del navegador, y localhost en el navegador no es el localhost del agente.

Conducirlo tú mismo

El panel es una vista de navegador sin cromado, bajo una barra de pestañas compacta al estilo de Safari:

ControlQué hace
Atrás / adelanteLos botones de flecha, o ⌘[ y ⌘].
Píldoras de pestañaUna píldora por cada pestaña abierta. La píldora activa también funciona como campo de dirección ("Buscar o introducir URL"): escribe un nombre de host simple y se antepone https://; escribe cualquier cosa que no sea una URL y se convierte en una búsqueda de Google.
+Nueva pestaña (⌘T cuando el panel tiene el foco).
DevToolsMuestra u oculta las Herramientas para desarrolladores de Chromium (F12): el inspector de elementos completo, la consola y el panel de red.
Información del sitioHaz clic en el favicon para ver una ventana emergente con información del sitio, incluida la cadena de certificados en páginas HTTPS.
CompartirEl menú estándar de compartir de macOS para la página actual.

Arrastra el borde izquierdo del panel para cambiar su tamaño (por defecto 640 puntos, ajustable entre 380 y 1400). Arrástralo por debajo del ancho mínimo para cerrar el panel.

Nota: Mientras la vista del navegador tiene el foco del teclado, ⌘Q y ⌘Tab son capturados por el invitado para que los atajos dentro de la página funcionen; no cerrarán la app ni cambiarán de app en macOS. Haz clic en el terminal o en la barra lateral para devolver esos atajos a macOS.

Cargar un servidor de desarrollo que inició el agente

La razón más común para abrir el navegador es ver algo que el agente está construyendo. Como la VM del navegador comparte la misma red privada que la VM de la máquina, puede acceder directamente a un servidor de desarrollo que el agente haya iniciado, pero no en localhost, porque el navegador es una máquina separada.

Accede al servidor de desarrollo por la dirección IP de la máquina:

  1. Inicia el servidor en el terminal del agente como de costumbre (por ejemplo, un servidor de desarrollo en el puerto 3000).
  2. Copia la dirección IP de la máquina: abre el menú de la máquina en la barra de herramientas (la cápsula con el nombre de la máquina) y elige Copiar dirección IP (…). También puedes leerla en el panel de la máquina, o ejecutar hostname -I en el terminal de la máquina.
  3. En el navegador, ve a http://<machine-ip>:3000.

Al agente, cuando conduce el navegador él mismo, se le indica que haga exactamente esto (acceder a los servidores de desarrollo por la IP de la LAN, nunca por localhost) para que sus capturas de pantalla y comprobaciones alcancen el servidor correcto.

Dejar que el agente lo controle

El navegador es agéntico: a cada agente de la máquina se le entrega automáticamente un servidor MCP browser integrado, sin configuración. Sus herramientas permiten al agente abrir páginas, hacer clic, escribir, leer el DOM, tomar capturas de pantalla e inspeccionar la consola y la red, conduciendo el mismo panel que ves. Tú y el agente compartís un único navegador: una página que el agente abre aparece en tu panel, y una pestaña que tú abres es visible para el browser_list_tabs del agente.

No hay que activar esto. Basta con pedirle al agente que haga algo que requiera un navegador; por ejemplo:

Open http://<machine-ip>:3000, click "Sign up", fill the form with a test
account, and tell me if the confirmation page renders. Screenshot it.

Las llamadas a herramientas del agente pueden arrancar y mostrar el navegador automáticamente para su máquina; si el panel estaba cerrado, una llamada a una herramienta lo abre y espera el arranque en frío. (El panel nunca se vuelve a abrir por sí mismo después de que lo hayas cerrado manualmente dentro de una sesión, de modo que siempre mantienes el control sobre si está visible.)

Prompts que activan el navegador

No existe un comando "usar el navegador": el agente recurre a las herramientas browser_* siempre que tu petición solo pueda responderse cargando, viendo o actuando sobre una página real. En la práctica, cualquier cosa que nombre una URL, pida al agente que mire o haga clic en algo renderizado, o solicite una captura de pantalla, un registro de la consola o actividad de red, atraerá al navegador. Algunas formas que lo hacen de manera fiable:

  • Ver algo que construiste — "Abre mi servidor de desarrollo en http://<machine-ip>:3000 y dime si el panel de control se renderiza." / "Toma una captura de pantalla de ancho completo de la página de inicio." / "Cambié la cabecera a azul: recarga la página y confirma que se ve bien."
  • Reproducir o probar un flujo — "Ve a la página de registro, rellénala con una cuenta de prueba, envíala y dime si aparece la pantalla de confirmación." / "Recorre el proceso de compra y detente en el primer paso que dé error."
  • Leer o extraer de una página — "Abre <docs URL> y resume la sección de autenticación." / "Enumera todos los enlaces salientes de esta página." / "Toma la tabla de precios como Markdown."
  • Depurar un problema del lado del cliente — "El botón de comprar no hace nada: abre la página, haz clic en él y revisa la consola y el registro de red en busca de la solicitud que falla." (El agente usa browser_console y browser_network para leer exactamente lo que verías en DevTools, sin que tú copies nada.)

Cuanto más concretamente señales una página o una acción en pantalla, más directamente irá el agente al navegador. Si solo describes un resultado ("¿funciona el registro?"), el agente normalmente abrirá el navegador de todos modos para comprobarlo, pero nombrar la URL o el botón elimina un ida y vuelta. Recuerda proporcionarle la dirección IP de la máquina, no localhost, para los servidores de desarrollo (consulta Cargar un servidor de desarrollo).

Las herramientas del navegador

El servidor expone 23 herramientas, agrupadas según lo que hacen:

GrupoHerramientas
Navegaciónbrowser_navigate, browser_back, browser_forward, browser_reload, browser_wait_for
Pestañasbrowser_new_tab, browser_list_tabs, browser_activate_tab, browser_close_tab
Leer la páginabrowser_get_text, browser_get_html, browser_get_links, browser_screenshot (con opción de página completa), browser_evaluate (ejecutar JavaScript)
Interactuarbrowser_click, browser_fill, browser_type, browser_press_key, browser_pick_element
Diagnósticobrowser_console, browser_network, browser_network_summary, browser_clear_network

browser_evaluate ejecuta JavaScript arbitrario en la página y devuelve el resultado, y browser_network / browser_console proporcionan al agente el mismo registro de solicitudes y salida de consola que leerías en DevTools, que es como un agente depura una petición fetch fallida o un error del lado del cliente sin que tú copies nada a mano. browser_pick_element es la que te involucra directamente, y tiene su propia sección más abajo.

Señalar un elemento

Las palabras son una forma torpe de identificar un elemento en una página cargada: "la segunda tarjeta", "ese botón roto", "la etiqueta desalineada". Cuando el agente no sabe a qué elemento te refieres, pídele que te deje señalar, y te cederá el control en lugar de adivinar:

One card in this grid is misaligned — let me point at it. Then read that
element's classes and tell me why it's off.

Detrás de eso, el agente llama a browser_pick_element, que arma un selector interactivo directamente en el panel del navegador: los elementos se resaltan al mover el ratón sobre ellos, y aparece un banner "haz clic en un elemento" en la parte superior. Haz clic en el elemento que quieres decir, y el agente recibe de inmediato su selector CSS exacto: no hay nada que describir, copiar ni pegar. Tienes unos 60 segundos para hacer clic antes de que el selector se agote y el agente no reciba nada.

Nunca pulsas un botón de "activar el selector" ni abres ningún menú: armar el selector es la llamada a herramienta del agente, así que ocurre en el instante en que lo pides. Frases que lo activan de forma fiable: "deja que lo señale", "yo haré clic en el que quiero decir", "¿qué elemento? te lo muestro", o simplemente "señalar y elegir". Una vez que el agente tiene el selector, puede hacer cualquier cosa con ese elemento (hacer clic en él, leer su texto o sus clases, observarlo o usarlo como ancla para explicar un error de maquetación), así que un buen remate es decir qué quieres hacer con el elemento en el mismo aliento en que te ofreces a señalarlo.

Consejo: El selector es la forma más rápida de salvar la distancia entre "yo veo el problema, tú no". En lugar de describir un fallo visual, señala el elemento culpable y deja que el agente inspeccione el nodo real del DOM.

Internamente, las herramientas alcanzan el navegador a través de un shim de stdio de Python generado, bromure-browser-mcp.py, montado como de solo lectura en la VM del agente en /mnt/bromure-meta/. Marca al anfitrión a través del puerto vsock 5830 y se reconecta indefinidamente, de modo que las herramientas nunca desaparecen de la lista de herramientas del agente, ni siquiera entre destrucciones del navegador. La referencia completa de herramientas se encuentra en CLI, API y MCP.

Nota: En un cliente enriquecido, el tráfico MCP del navegador de una máquina remota puede retransmitirse sobre la conexión SSH para que sus agentes controlen el panel del navegador que estás observando localmente. El relé lleva a todos los agentes de esa máquina a la vez, así que varias sesiones de una misma máquina pueden usar el navegador a través de él.

Mantener la sesión iniciada frente a mantenerlo desechable

Por defecto, el navegador es desechable: su disco es un clon efímero que se elimina cuando se destruye el navegador, por lo que las cookies, los inicios de sesión y el historial desaparecen con él. Cada apertura nueva empieza en limpio. Este es el valor predeterminado seguro: nada de lo que un agente hace en el navegador persiste ni se filtra a trabajos posteriores.

Cuando necesites que las sesiones iniciadas sobrevivan (iniciar sesión en un sitio de staging que el agente revisitará, mantener una sesión entre reinicios) activa Mantener la sesión iniciada en los sitios web en los ajustes del Navegador de la máquina. El perfil de Chromium vive entonces en un disco cifrado, por máquina, bajo ~/Library/Application Support/BromureAC/browser-profiles/ y sobrevive a las destrucciones. Al cambiar este ajuste se reinicia el navegador de la máquina, así que se te advierte antes de guardar el cambio.

Advertencia: Activar Mantener la sesión iniciada cambia la desechabilidad por comodidad. Las cookies e inicios de sesión guardados son exactamente el tipo de cosa que un agente con inyección de prompts intentaría exfiltrar. Prefiere el valor predeterminado desechable para cualquier máquina apuntada a código no fiable, y reserva la persistencia para navegadores que solo visitan sitios en los que confías.

Ciclo de vida y uso de recursos

La VM del navegador se gestiona por ti y se mantiene económica cuando está inactiva:

  • Se crea de forma diferida al abrirla por primera vez (o en la primera llamada a herramienta del agente) y arranca desde la imagen compartida de 500 MB como un clon de copia en escritura.
  • Un navegador oculto se suspende tras unos 10 segundos y se destruye por completo tras 5 minutos contraído, liberando su memoria y disco.
  • El estado abierto/cerrado del panel pertenece a lo que está en el escenario: cada sesión recuerda el suyo (abre el navegador en una sesión y no te seguirá a otra sesión de la misma máquina —la Centralita, por ejemplo— aunque compartan el navegador de la máquina), y la vista de terminal propia de una máquina recuerda el de la máquina. Una sesión dormida, y la pantalla de nueva sesión, nunca muestran el panel: allí no hay globo para cerrarlo. El estado dura mientras la app está en ejecución, deliberadamente no entre reinicios: un navegador desechable no sobreviviría a un reinicio de todos modos.

A diferencia de las máquinas, la VM sidecar del navegador sí se sirve desde un grupo precalentado, razón por la cual abrir el panel suele sentirse instantáneo después de la primera vez.

Atajos de teclado

Estos se aplican mientras el panel del navegador tiene el foco del teclado:

AtajoAcción
⌃⌘BMostrar u ocultar el panel del navegador
⌘T / ⌘WNueva / cerrar pestaña del navegador, mientras el panel del navegador tiene el foco del teclado (haz clic primero en la página). Con el foco en otro lugar, ⌘T abre una pestaña de terminal como de costumbre.
⌘[ / ⌘]Atrás / adelante
⌘RRecargar
⌘LEnfocar el campo de dirección (la píldora de pestaña activa)
F12Mostrar u ocultar DevTools

Solución de problemas

El panel muestra una solicitud de instalación en lugar de una página. La imagen del navegador aún no se ha descargado. Haz clic en Descargar e instalar, o descárgala por adelantado desde los ajustes del Navegador → Descargar ahora (unos 500 MB).

La página del agente no carga / muestra conexión rechazada. El agente casi con seguridad está usando localhost. El navegador es una VM separada: debe alcanzar el servidor de desarrollo por la dirección IP de la máquina (Copiar dirección IP (…) en el menú de la máquina de la barra de herramientas, o hostname -I en el terminal de la máquina), como en Cargar un servidor de desarrollo.

⌘Q o ⌘Tab no hacen nada. La vista del navegador tiene el foco y los está capturando para uso dentro de la página. Haz clic en el terminal o en la barra lateral para devolver esos atajos a macOS.

Los inicios de sesión desaparecen entre sesiones. Ese es el valor predeterminado desechable. Activa Mantener la sesión iniciada en los sitios web en los ajustes del Navegador para mantener un perfil persistente.

El panel del navegador no se vuelve a abrir por sí solo después de que el agente lo usara. Es intencionado: una vez que cierras el panel manualmente, permanece cerrado hasta que lo vuelvas a abrir, aunque el agente siga emitiendo llamadas a herramientas del navegador (que se siguen ejecutando; simplemente no ves el panel). Pulsa ⌃⌘B para traerlo de vuelta.

Ajustes y herramientas relacionados

  • Ajustes del Navegador — el interruptor Mantener la sesión iniciada en los sitios web y la gestión de la imagen del navegador.
  • Máquinas — el menú de la máquina, el panel y el panel Archivos que está junto al navegador.
  • CLI, API y MCP — la referencia completa de herramientas browser_* y el transporte vsock.