14 puntos por GN⁺ 2025-12-25 | 1 comentarios | Compartir por WhatsApp
  • Proyecto open source de automatización de navegador rediseñado pensando en los agentes de IA por Jason Huggins, quien desarrolló Selenium hace 21 años
  • Vibium es una infraestructura de automatización de navegador para agentes de IA que gestiona el ciclo de vida del navegador y el protocolo WebDriver BiDi en un solo binario, y expone un servidor MCP
  • Clicker, un binario único de Go de 10 MB, detecta y ejecuta Chrome automáticamente, y permite que modelos de IA o clientes JS controlen el navegador mediante un proxy BiDi y un servidor MCP
  • El cliente JS/TS admite tanto API síncrona como asíncrona, y puede usarse de inmediato tras instalarlo con npm install vibium
  • Los agentes LLM como Claude Code pueden agregar funciones de control del navegador con una sola línea: claude mcp add vibium
  • Es adecuado tanto para automatización con IA como para automatización de pruebas, y ofrece un entorno de control del navegador sin configuración

Resumen de Vibium

  • Vibium es una infraestructura de automatización de navegador para agentes de IA y usuarios humanos
    • Integra en un solo binario de Go la gestión del navegador, un proxy WebDriver BiDi y funciones de servidor MCP
    • Compatible con varios modelos LLM como Claude Code, Codex y Gemini
  • Su diseño funciona de inmediato sin proceso de instalación, por lo que puede utilizarse en entornos de agentes de IA o de automatización de pruebas

Componentes

  • Clicker: binario de Go de aproximadamente 10 MB que realiza las siguientes funciones
    • Detección automática de Chrome y ejecución en modo BiDi
    • Transmisión de comandos mediante un servidor proxy BiDi basado en WebSocket
    • Comunicación con agentes LLM a través de un servidor MCP
    • Función de Auto-Wait para esperar elementos antes de interactuar
    • Función de captura de pantalla
  • Cliente JS/TS: se ofrece como paquete npm y admite tanto API síncrona (browserSync) como asíncrona (browser)
    • Control del navegador con comandos simples como vibe.go(), vibe.find(), vibe.click() y vibe.quit()
    • Incluye funciones básicas de automatización como guardar capturas, buscar elementos y hacer clic

Integración con agentes de IA

  • Comando para agregar funciones de control del navegador a Claude Code:
    claude mcp add vibium -- npx -y vibium  
    
    • Chrome se descarga automáticamente, por lo que no se requiere configuración adicional
  • Lista de comandos disponibles
    • browser_launch: iniciar navegador
    • browser_navigate: navegar a una URL
    • browser_find: buscar un elemento con selector CSS
    • browser_click: hacer clic en un elemento
    • browser_type: ingresar texto
    • browser_screenshot: capturar la vista del navegador
    • browser_quit: cerrar navegador

Instalación para usuarios humanos

  • Instalación automática con el comando npm install vibium
    • Descarga en caché el binario Clicker, Chrome for Testing y chromedriver para cada plataforma
    • Linux: ~/.cache/vibium/, macOS: ~/Library/Caches/vibium/, Windows: %LOCALAPPDATA%\vibium\
  • Se puede omitir la descarga del navegador con la variable de entorno VIBIUM_SKIP_BROWSER_DOWNLOAD=1

Soporte de plataformas

  • Compatible con Linux x64, macOS (Intel/Apple Silicon) y Windows x64

Inicio rápido

  • Ejemplo de uso de la librería
    import { browser } from "vibium";  
    const vibe = await browser.launch();  
    await vibe.go("https://example.com");  
    const el = await vibe.find("a");  
    await el.click();  
    await vibe.quit();  
    
  • Ejemplo de integración con Claude Code
    • Después de instalarlo, se puede controlar el navegador con instrucciones como “Go to example.com and click the first link”

Hoja de ruta

  • V1: enfocada en el control del navegador mediante MCP y el cliente JS
  • Planes para V2
    • Clientes para Python y Java
    • Cortex (capa de memoria y navegación)
    • Retina (función ampliada de grabación)
    • Grabación de video y búsqueda de elementos basada en IA

1 comentarios

 
GN⁺ 2025-12-25
Comentarios en Hacker News
  • Gracias a Selenium, mi carrera cambió muchísimo. Le estoy sinceramente agradecido
    Hoy en día uso Playwright, pero me da curiosidad el nuevo enfoque de Vibium

    • Playwright logró grandes avances con un control rápido del navegador basado en WebSockets+JSON. Vibium usa el estándar W3C WebDriver BiDi como respuesta a eso. El objetivo es ofrecer una experiencia de desarrollo genial, del tipo “se resuelve con unos cuantos clics”, como Playwright
    • Si ya usas Playwright, recomiendo probar Stagehand. La API es similar, pero está diseñado para automatización, no para pruebas
  • Me pregunto si Vibium soporta inyección de JS, modificación del DOM y monitoreo/cambio de solicitudes de red. Casi siempre uso esas funciones cuando trabajo con Playwright

    • Aún no lo soporta, pero está incluido en la hoja de ruta. La meta es tomar las ventajas de Playwright y expandirlas aún más
    • En lo personal, con solo tener monitoreo de solicitudes de red ya me bastaría. Las apps hechas con Flutter + Amazon AppSync son demasiado difíciles de depurar
  • Interesante. Últimamente he estado usando dev-browser y he logrado ahorro de contexto y mejoras de velocidad. Definitivamente también voy a probar Vibium

    • En Vibium también planean soportar este tipo de extensibilidad basada en skills
  • Como alguien que se ha ganado la vida con automatización de UI por más de 10 años, le agradezco a Selenium. Ahora Playwright es de facto el estándar, pero Selenium fue el navegador driver original. Me pregunto en qué se diferencia Vibium de Playwright

    • Playwright va adelante en términos de “velocidad”, pero Selenium todavía tiene un ecosistema profundamente arraigado a nivel mundial. Vibium planea construir un puente para que los usuarios de Selenium puedan pasar de forma natural hacia una codificación orientada a agentes del futuro
  • Soy alguien que en su momento ayudó con la expansión de pruebas de Atlassian usando Selenium. Recuerdo haber conversado hace unos 13 a 15 años. Da gusto ver que sigues activo en este campo

  • Me pregunto si al migrar scripts antiguos de Selenium a Vibium se podría aprovechar la función de auto-recuperación (self-heal) cuando fallen las pruebas

    • Por decirlo con una metáfora, ahora mismo estoy construyendo un resort en una isla. El puente (la ruta de migración) lo haré después. Primero, si el resort resulta atractivo, habrá razones para construir el puente. Por ahora estoy enfocado en construir el resort, pero también quiero hacer el puente sin falta
  • Me pregunto cómo encuentra selectores CSS un agente cuando toma una captura con browser_screenshot y luego quiere hacer clic. Solo con la captura es difícil saber el tipo de elemento

    • El servidor MCP actual todavía carece de exploración autónoma completa. En mi fork añadí la herramienta browser_evaluate para obtener el árbol de accesibilidad con JS y permitir la exploración en base a eso. Para más detalles, revisa la hoja de ruta V2
  • Para permitir que herramientas como Claude usen libremente la automatización del navegador, hace falta una función de bloqueo del navegador que solo permita URLs específicas. Me pregunto si eso está en la hoja de ruta

    • Si usas Claude Code, se puede controlar fácilmente con el hook browser_navigate. Un script de lista blanca se configura en 5 minutos. Políticas más complejas se pueden implementar con cupcake y Rego. Referencia: documentación de Claude Code Hooks
    • Conozco bien el riesgo del “blast radius” de Claude. Yo también desarrollo Vibium dentro de una VM de UTM. También estoy considerando agregar reglas de red. Ya publiqué la hoja de ruta V2, y parece que también tendré que preparar un borrador para V3
    • La forma más segura es permitir solo una lista blanca corta dentro de un contenedor con firewall
  • Estaba pensando en hacer algo parecido a Skyvern, pero me pregunto por qué, en lugar de extender Selenium, se decidió crear un Vibium nuevo

    • En el anuncio de Vibium v1 se explica parcialmente. Selenium y Playwright no fueron diseñados con IA como eje central. Vibium fue diseñado desde el principio con una estructura optimizada para el “vibe coding” basado en IA
  • Me pregunto cómo manejan el problema de la sobrecarga de contexto (context bloat) entre el navegador y el LLM. También preguntan si planean exponer archivos de trazas como Playwright o permitir la ejecución de JS

    • La exposición del navegador se irá ampliando gradualmente. La sobrecarga de contexto todavía no se ha resuelto por completo en ningún lado. A largo plazo, la respuesta podría ser “ir en una dirección que no use MCP”. Actualmente Vibium ofrece dos opciones: servidor MCP y API de JS/TS. En la API de JS/TS se puede ejecutar JS arbitrario. Hacer que el agente escriba y ejecute scripts de Vibium podría ser una vía alternativa para reducir la sobrecarga de contexto