El navegador integrado

Cada espacio de trabajo incluye su propio navegador web: un Chromium completo que se abre como un panel junto 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 del espacio de trabajo, 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. Es el mismo panel que se presenta en Sesiones; 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.

Abrir el navegador

Muestra u oculta el panel del navegador con ⌃⌘B, o haz clic en el botón del globo en la barra de herramientas de la ventana de sesión. Se abre como una división en el borde derecho del escenario, compartiendo la ventana con el terminal.

La primera vez que lo abras (por Mac, no por espacio de trabajo) una tarjeta de consentimiento pregunta ¿Instalar el navegador? con Descargar e instalar y Ahora no. La imagen del navegador es una descarga única de aproximadamente 500 MB, compartida por todos los espacios de trabajo. Hasta que esté instalada, el panel muestra la solicitud de instalación en lugar de una página; también puedes descargarla por adelantado desde los ajustes del Navegador del espacio de trabajo con Descargar ahora.

Una vez instalado, la VM del navegador arranca de forma diferida la primera vez que cualquier espacio de trabajo 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; el terminal siempre conserva al menos 240 puntos). 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 subred NAT que la VM del espacio de trabajo, 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 VM del espacio de trabajo:

  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 IP del espacio de trabajo desde la píldora de IP en la barra de herramientas (o ejecuta hostname -I en el terminal del agente).
  3. En el navegador, dirígete a http://<workspace-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 del espacio de trabajo 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://<workspace-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 el espacio de trabajo seleccionado; 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://<workspace-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 IP de la LAN del espacio de trabajo, 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, automatización y MCP.

Nota: En un cliente enriquecido, el flujo de MCP del navegador de un agente remoto puede empalmarse sobre la conexión SSH para que el agente remoto controle el panel del navegador que estás observando localmente. Hay un relé de este tipo activo a la vez.

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 del espacio de trabajo. El perfil de Chromium vive entonces en un disco cifrado, por espacio de trabajo, bajo ~/Library/Application Support/BromureAC/browser-profiles/ y sobrevive a las destrucciones. Al cambiar este ajuste se reinicia el navegador del espacio de trabajo, 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 espacio de trabajo apuntado 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 se recuerda por espacio de trabajo mientras la app se ejecuta, pero deliberadamente no entre reinicios de la app: un navegador desechable no sobreviviría a un reinicio de todos modos.

A diferencia de las VM de espacio de trabajo, la VM sidecar del navegador 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 pestaña / cerrar pestaña del navegador
⌘[ / ⌘]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 NavegadorDescargar 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 IP de la LAN de la VM del espacio de trabajo (hostname -I en el terminal del agente, o la píldora de IP de la barra de herramientas), 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.
  • Sesiones — el panel del navegador en el contexto de toda la ventana de sesión.
  • CLI, automatización y MCP — la referencia completa de herramientas browser_* y el transporte vsock.