Navegador (gestionado por OpenClaw)
Servicio de control de navegador integrado + comandos de acción
OpenClaw puede ejecutar un perfil dedicado de Chrome/Brave/Edge/Chromium que el agente controla.
Está aislado de tu navegador personal y es gestionado a través de un pequeño servicio
de control local dentro del Gateway (solo loopback).
Vista para principiantes:
- Piénsalo como un navegador separado, solo para el agente.
- El perfil ''openclaw'' ''no'' toca tu perfil de navegador personal.
- El agente puede abrir pestañas, leer páginas, hacer clic y escribir en un carril seguro.
- El perfil ''chrome'' predeterminado usa el ''navegador Chromium predeterminado del sistema'' via el
relay de extensión; cambia a ''openclaw'' para el navegador gestionado aislado.
Lo que obtienes
- Un perfil de navegador separado llamado openclaw (acento naranja por defecto).
- Control determinista de pestañas (listar/abrir/enfocar/cerrar).
- Acciones del agente (clic/escribir/arrastrar/seleccionar), instantáneas, capturas de pantalla, PDFs.
- Soporte opcional de multi-perfil (''openclaw'', ''work'', ''remote'', ...).
Este navegador no es tu conductor diario. Es una superficie segura y aislada para
automatización y verificación del agente.
Inicio rápido
openclaw browser --browser-profile openclaw status openclaw browser --browser-profile openclaw start openclaw browser --browser-profile openclaw open https://example.com openclaw browser --browser-profile openclaw snapshot
Si obtienes "Navegador deshabilitado", habilítalo en la configuración (ver abajo) y reinicia el
Gateway.
Perfiles: `openclaw` vs `chrome`
- ''openclaw'': navegador gestionado, aislado (no requiere extensión).
- ''chrome'': relay de extensión a tu ''navegador del sistema'' (requiere que la extensión OpenClaw
esté adjunta a una pestaña).
Establece ''browser.defaultProfile: "openclaw"'' si quieres modo gestionado por defecto.
Configuración
Los ajustes del navegador viven en ''~/.openclaw/openclaw.json''.
{
browser: {
enabled: true, // default: true
// cdpUrl: "http://127.0.0.1:18792", // legacy single-profile override
remoteCdpTimeoutMs: 1500, // remote CDP HTTP timeout (ms)
remoteCdpHandshakeTimeoutMs: 3000, // remote CDP WebSocket handshake timeout (ms)
defaultProfile: "chrome",
color: "#FF4500",
headless: false,
noSandbox: false,
attachOnly: false,
executablePath: "/Applications/Brave Browser.app/Contents/MacOS/Brave Browser",
profiles: {
openclaw: { cdpPort: 18800, color: "#FF4500" },
work: { cdpPort: 18801, color: "#0066CC" },
remote: { cdpUrl: "http://10.0.0.42:9222", color: "#00AA00" },
},
},
}Notas:
- El servicio de control del navegador se vincula a loopback en un puerto derivado de ''gateway.port''
(predeterminado: ''18791'', que es gateway + 2). El relay usa el siguiente puerto (''18792'').
- Si anulas el puerto del Gateway (''gateway.port'' o ''OPENCLAW_GATEWAY_PORT''),
los puertos derivados del navegador se desplazan para permanecer en la misma "familia".
- ''cdpUrl'' por defecto es el puerto del relay cuando no está establecido.
- ''remoteCdpTimeoutMs'' aplica a verificaciones de alcance CDP remotas (no loopback).
- ''remoteCdpHandshakeTimeoutMs'' aplica a verificaciones de alcance WebSocket CDP remoto.
- ''attachOnly: true'' significa "nunca lanzar un navegador local; solo adjuntar si ya está ejecutándose."
- ''color'' + ''color'' por perfil tiñen la UI del navegador para que puedas ver qué perfil está activo.
- El perfil predeterminado es ''chrome'' (relay de extensión). Usa ''defaultProfile: "openclaw"'' para el navegador gestionado.
- Orden de auto-detección: navegador predeterminado del sistema si es basado en Chromium; sino Chrome → Brave → Edge → Chromium → Chrome Canary.
- Los perfiles ''openclaw'' locales auto-asignan ''cdpPort''/''cdpUrl'' — establece esos solo para CDP remoto.
Usar Brave (u otro navegador basado en Chromium)
Si tu navegador predeterminado del sistema es basado en Chromium (Chrome/Brave/Edge/etc),
OpenClaw lo usa automáticamente. Establece ''browser.executablePath'' para anular
la auto-detección:
Ejemplo CLI:
openclaw config set browser.executablePath "/usr/bin/google-chrome"
// macOS
{
browser: {
executablePath: "/Applications/Brave Browser.app/Contents/MacOS/Brave Browser"
}
}
// Windows
{
browser: {
executablePath: "C:\Program Files\BraveSoftware\Brave-Browser\Application\brave.exe"
}
}
// Linux
{
browser: {
executablePath: "/usr/bin/brave-browser"
}
}Control local vs remoto
- Control local (predeterminado): el Gateway inicia el servicio de control loopback y puede lanzar un navegador local.
- Control remoto (host de nodo): ejecuta un host de nodo en la máquina que tiene el navegador; el Gateway hace proxy de acciones del navegador a él.
- ''CDP remoto:'' establece ''browser.profiles.<name>.cdpUrl'' (o ''browser.cdpUrl'') para
adjuntar a un navegador remoto basado en Chromium. En este caso, OpenClaw no lanzará un navegador local.
Las URLs de CDP remoto pueden incluir autenticación:
- Tokens de consulta (ej., ''https://provider.example?token=<token>'')
- Autenticación básica HTTP (ej., ''https://user:[email protected]'')
OpenClaw preserva la autenticación al llamar endpoints ''/json/*'' y al conectar
al WebSocket CDP. Prefiere variables de entorno o gestores de secretos para
tokens en lugar de confirmarlos en archivos de configuración.
Proxy de navegador de nodo (predeterminado sin configuración)
Si ejecutas un host de nodo en la máquina que tiene tu navegador, OpenClaw puede
auto-enrutar llamadas de herramientas del navegador a ese nodo sin configuración extra del navegador.
Esta es la ruta predeterminada para gateways remotos.
Notas:
- El host de nodo expone su servidor de control de navegador local via un comando proxy.
- Los perfiles vienen de la propia configuración ''browser.profiles'' del nodo (igual que local).
- Deshabilítalo si no lo quieres:
- En el nodo: ''nodeHost.browserProxy.enabled=false''
- En el gateway: ''gateway.nodes.browser.mode="off"''
Browserless (CDP remoto alojado)
''Browserless'' es un servicio de Chromium alojado que expone
endpoints CDP sobre HTTPS. Puedes apuntar un perfil de navegador OpenClaw a un
endpoint de región de Browserless y autenticarte con tu clave API.
Ejemplo:
{
browser: {
enabled: true,
defaultProfile: "browserless",
remoteCdpTimeoutMs: 2000,
remoteCdpHandshakeTimeoutMs: 4000,
profiles: {
browserless: {
cdpUrl: "https://production-sfo.browserless.io?token=<BROWSERLESS_API_KEY>",
color: "#00AA00",
},
},
},
}Notas:
- Reemplaza ''<BROWSERLESS_API_KEY>'' con tu token real de Browserless.
- Elige el endpoint de región que coincida con tu cuenta de Browserless (ver sus docs).
Seguridad
Ideas clave:
- El control del navegador es solo loopback; el acceso fluye a través del auth del Gateway o emparejamiento de nodo.
- Mantén el Gateway y cualquier host de nodo en una red privada (Tailscale); evita exposición pública.
- Trata las URLs/tokens de CDP remoto como secretos; prefiere variables de entorno o un gestor de secretos.
Consejos de CDP remoto:
- Prefiere endpoints HTTPS y tokens de corta duración cuando sea posible.
- Evita incrustar tokens de larga duración directamente en archivos de configuración.
Perfiles (multi-navegador)
OpenClaw soporta múltiples perfiles nombrados (configuraciones de enrutamiento). Los perfiles pueden ser:
- gestionados por openclaw: una instancia de navegador basado en Chromium dedicada con su propio directorio de datos de usuario + puerto CDP
- remotos: una URL CDP explícita (navegador basado en Chromium ejecutándose en otro lugar)
- relay de extensión: tu(s) pestaña(s) de Chrome existentes via el relay local + extensión de Chrome
Predeterminados:
- El perfil ''openclaw'' se auto-crea si falta.
- El perfil ''chrome'' está integrado para el relay de extensión de Chrome (apunta a ''http://127.0.0.1:18792'' por defecto).
- Los puertos CDP locales asignan desde 18800–18899 por defecto.
- Eliminar un perfil mueve su directorio de datos local a la Papelera.
Todos los endpoints de control aceptan ''?profile=<name>''; el CLI usa ''--browser-profile''.
Relay de extensión de Chrome (usa tu Chrome existente)
OpenClaw también puede controlar tus pestañas de Chrome existentes (sin instancia de Chrome "openclaw" separada) via un relay CDP local + una extensión de Chrome.
Guía completa: ''Extensión de Chrome''
Flujo:
- El Gateway se ejecuta localmente (misma máquina) o un host de nodo se ejecuta en la máquina del navegador.
- Un ''servidor relay local'' escucha en un ''cdpUrl'' loopback (predeterminado: ''http://127.0.0.1:18792'').
- Haces clic en el ícono de la extensión OpenClaw Browser Relay en una pestaña para adjuntar (no se auto-adjunta).
- El agente controla esa pestaña via la herramienta ''browser'' normal, seleccionando el perfil correcto.
Si el Gateway se ejecuta en otro lugar, ejecuta un host de nodo en la máquina del navegador para que el Gateway pueda hacer proxy de acciones del navegador.
Sesiones en sandbox
Si la sesión del agente está en sandbox, la herramienta ''browser'' puede predeterminar a ''target="sandbox"'' (navegador sandbox).
La toma de control del relay de extensión de Chrome requiere control del navegador host, así que:
- ejecuta la sesión sin sandbox, o
- establece ''agents.defaults.sandbox.browser.allowHostControl: true'' y usa ''target="host"'' al llamar la herramienta.
Configuración
1. Carga la extensión (dev/desempaquetada):
openclaw browser extension install
- Chrome → ''chrome://extensions'' → habilita "Modo desarrollador"
- "Cargar desempaquetada" → selecciona el directorio impreso por ''openclaw browser extension path''
- Fija la extensión, luego haz clic en ella en la pestaña que quieres controlar (badge muestra ''ON'').
2. Úsala:
- CLI: ''openclaw browser --browser-profile chrome tabs''
- Herramienta del agente: ''browser'' con ''profile="chrome"''
Opcional: si quieres un nombre diferente o puerto de relay, crea tu propio perfil:
openclaw browser create-profile --name my-chrome --driver extension --cdp-url http://127.0.0.1:18792 --color "#00AA00"
Notas:
- Este modo depende de Playwright-on-CDP para la mayoría de operaciones (capturas/instantáneas/acciones).
- Desconecta haciendo clic en el ícono de la extensión de nuevo.
Garantías de aislamiento
- Directorio de datos de usuario dedicado: nunca toca tu perfil de navegador personal.
- ''Puertos dedicados'': evita ''9222'' para prevenir colisiones con flujos de trabajo de desarrollo.