14 Punkte von GN⁺ 2025-12-25 | 1 Kommentare | Auf WhatsApp teilen
  • Ein Open-Source-Projekt zur Browser-Automatisierung, das Jason Huggins, der vor 21 Jahren Selenium entwickelt hat, mit Blick auf AI-Agenten neu aufgebaut hat
  • Vibium ist eine Browser-Automatisierungsinfrastruktur für AI-Agenten, die als einzelne Binärdatei den Browser-Lebenszyklus und das WebDriver-BiDi-Protokoll verwaltet und einen MCP-Server bereitstellt
  • Die 10 MB große einzelne Go-Binärdatei Clicker erkennt und startet Chrome automatisch und ermöglicht es AI-Modellen oder JS-Clients, den Browser zu steuern – über einen BiDi-Proxy und einen MCP-Server
  • Der JS/TS-Client unterstützt sowohl synchrone als auch asynchrone APIs und ist nach npm install vibium sofort einsatzbereit
  • LLM-Agenten wie Claude Code können mit einem einzigen Befehl claude mcp add vibium Browser-Steuerung hinzufügen
  • Eignet sich sowohl für AI-Automatisierung als auch für Testautomatisierung und bietet eine konfigurationsfreie Browser-Steuerungsumgebung

Überblick über Vibium

  • Vibium ist eine Browser-Automatisierungsinfrastruktur für AI-Agenten und menschliche Nutzer
    • Vereint Browser-Management, WebDriver-BiDi-Proxy und MCP-Server-Funktionen in einer einzelnen Go-Binärdatei
    • Kompatibel mit verschiedenen LLM-Modellen wie Claude Code, Codex und Gemini
  • Die Architektur funktioniert sofort ohne Installationsprozess und lässt sich in AI-Agenten- oder Testautomatisierungsumgebungen einsetzen

Komponenten

  • Clicker: eine etwa 10 MB große Go-Binärdatei mit folgenden Funktionen
    • Automatische Chrome-Erkennung und Start im BiDi-Modus
    • Weiterleitung von Befehlen über einen WebSocket-basierten BiDi-Proxy-Server
    • Kommunikation mit LLM-Agenten über einen MCP-Server
    • Auto-Wait-Funktion zum Warten auf Elemente vor der Interaktion
    • Unterstützung für Screenshot-Erfassung
  • JS/TS-Client: als npm-Paket verfügbar und mit Unterstützung für synchrone (browserSync) und asynchrone (browser) APIs
    • Browser-Steuerung mit einfachen Befehlen wie vibe.go(), vibe.find(), vibe.click(), vibe.quit()
    • Enthält grundlegende Automatisierungsfunktionen wie Screenshot-Speicherung, Elementsuche und Klicks
    Anzeige

Integration von AI-Agenten

  • Befehl zum Hinzufügen von Browser-Steuerung zu Claude Code:
    claude mcp add vibium -- npx -y vibium  
    
    • Chrome wird automatisch heruntergeladen, daher ist keine zusätzliche Konfiguration nötig
  • Verfügbare Befehle
    • browser_launch: Browser starten
    • browser_navigate: zu einer URL navigieren
    • browser_find: Element per CSS-Selektor finden
    • browser_click: auf ein Element klicken
    • browser_type: Text eingeben
    • browser_screenshot: Viewport aufnehmen
    • browser_quit: Browser beenden
    Anzeige

Installation für menschliche Nutzer

  • Automatische Installation mit dem Befehl npm install vibium
    • Lädt je nach Plattform die Clicker-Binärdatei sowie Chrome for Testing und chromedriver in den Cache herunter
    • Linux: ~/.cache/vibium/, macOS: ~/Library/Caches/vibium/, Windows: %LOCALAPPDATA%\vibium\
  • Mit der Umgebungsvariable VIBIUM_SKIP_BROWSER_DOWNLOAD=1 lässt sich der Browser-Download überspringen

Plattformunterstützung

  • Unterstützt Linux x64, macOS (Intel/Apple Silicon) und Windows x64

Schnellstart

  • Beispiel für die Nutzung als Bibliothek
    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();  
    
    Anzeige
  • Beispiel für die Integration mit Claude Code
    • Nach der Installation ist Browser-Steuerung mit einem Befehl wie “Go to example.com and click the first link” möglich

Roadmap

  • V1: Fokus auf Browser-Steuerung über MCP und den JS-Client
  • V2 geplant
    • Python- und Java-Clients
    • Cortex (Speicher- und Navigationsschicht)
    • Retina (Erweiterung für Aufzeichnung)
    • Videoaufzeichnung, AI-basierte Elementsuche

1 Kommentare

 
GN⁺ 2025-12-25
Hacker-News-Kommentare
  • Dank Selenium hat sich meine Karriere stark verändert. Dafür bin ich wirklich dankbar.
    Inzwischen nutze ich Playwright, aber ich bin neugierig auf den neuen Ansatz von Vibium.

    • Playwright hat mit schneller Browser-Steuerung auf Basis von WebSockets+JSON große Fortschritte gemacht. Vibium verwendet dazu passend den Standard W3C WebDriver BiDi. Das Ziel ist, eine großartige Developer Experience zu bieten, bei der es wie bei Playwright mit „ein paar Klicks“ erledigt ist.
    • Wenn du bereits Playwright nutzt, empfehle ich, Stagehand auszuprobieren. Die API ist ähnlich, wurde aber nicht für Tests, sondern für Automatisierung entwickelt.
  • Ich frage mich, ob Vibium JS-Injection, DOM-Änderungen sowie das Überwachen und Verändern von Netzwerk-Requests unterstützt. Wenn ich Playwright nutze, verwende ich diese Funktionen fast immer.

    • Noch wird das nicht unterstützt, aber es ist auf der Roadmap. Das Ziel ist, die Stärken von Playwright zu übernehmen und darüber hinauszugehen.
    • Persönlich wäre für mich schon allein Netzwerk-Monitoring ausreichend. Flutter- + Amazon-AppSync-Apps sind extrem schwer zu debuggen.
  • Klingt interessant. Ich habe kürzlich dev-browser verwendet und dadurch Kontext eingespart und mehr Geschwindigkeit gewonnen. Vibium werde ich auf jeden Fall ebenfalls ausprobieren.

    • Vibium plant ebenfalls, diese skill-basierte Erweiterbarkeit zu unterstützen.
  • Als jemand, der seit über 10 Jahren seinen Lebensunterhalt mit UI-Automatisierung verdient, bin ich Selenium dankbar. Heute ist Playwright de facto der Standard, aber Selenium war der ursprüngliche Browser-Treiber. Ich frage mich, worin sich Vibium von Playwright unterscheidet.

    • Bei der „Geschwindigkeit“ liegt Playwright vorn, aber Selenium hat weiterhin ein weltweit tief verwurzeltes Ökosystem. Vibium will eine Brücke schaffen, damit Selenium-Nutzer natürlich zu zukunftsorientiertem Agent Coding übergehen können.
  • Ich bin jemand, der früher geholfen hat, die Test-Erweiterung von Atlassian mit Selenium auszubauen. Ich erinnere mich an Gespräche von vor etwa 13 bis 15 Jahren. Schön zu sehen, dass du in diesem Bereich immer noch aktiv bist.

  • Ich frage mich, ob man beim Umzug alter Selenium-Skripte zu Vibium die Self-Heal-Funktion bei Test-Fehlschlägen nutzen kann.

    • Bildlich gesprochen baue ich gerade ein Inselresort. Die Brücke (der Migrationspfad) kommt später. Wenn das Resort attraktiv genug ist, gibt es auch einen Grund, die Brücke zu bauen. Im Moment konzentriere ich mich auf den Bau des Resorts, aber ich möchte die Brücke auf jeden Fall ebenfalls bauen.
  • Ich frage mich, wie der Agent, nachdem er mit browser_screenshot den Bildschirm erfasst hat, CSS-Selektoren findet, um dann zu klicken. Nur anhand des Screenshots ist der Elementtyp schwer zu erkennen.

    • Dem aktuellen MCP-Server fehlt noch eine vollständig autonome Erkundung. In meinem Fork habe ich das Tool browser_evaluate hinzugefügt, um per JS den Accessibility Tree zu holen und darauf basierend navigieren zu können. Details siehe V2-Roadmap.
  • Wenn man Tools wie Claude freie Browser-Automatisierung nutzen lassen will, braucht man eine Browser-Lockdown-Funktion, die nur bestimmte URLs erlaubt. Ich frage mich, ob so etwas auf der Roadmap steht.

    • Wenn du Claude Code nutzt, lässt sich das mit dem Hook browser_navigate einfach steuern. Ein Skript für eine Whitelist ist in 5 Minuten eingerichtet. Komplexere Richtlinien lassen sich mit cupcake und Rego umsetzen. Siehe auch: Claude-Code-Hooks-Dokumentation
    • Ich bin mir des „blast radius“-Risikos bei Claude sehr bewusst. Ich entwickle Vibium selbst auch innerhalb einer UTM-VM. Ich denke zudem darüber nach, Netzwerkregeln hinzuzufügen. Die V2-Roadmap habe ich bereits veröffentlicht, und ich sollte wohl auch einen Entwurf für V3 vorbereiten.
    • Die sicherste Methode ist, nur eine kurze Whitelist innerhalb eines Containers mit Firewall zu erlauben.
  • Ich hatte vor, etwas Ähnliches wie Skyvern zu bauen, und frage mich, warum du statt einer Selenium-Erweiterung ein neues Vibium gebaut hast.

    • Im Vibium-v1-Announcement wird das teilweise erklärt. Selenium und Playwright waren nicht AI-zentriert entworfen. Vibium wurde von Anfang an mit einer Struktur optimiert, die auf AI-basiertes „vibe coding“ ausgerichtet ist.
  • Ich frage mich, wie ihr das Problem der Kontext-Aufblähung (context bloat) zwischen Browser und LLM behandelt. Außerdem wurde gefragt, ob ihr wie bei Playwright Tracing-Dateien offenlegen oder JS-Ausführung erlauben wollt.

    • Die Browser-Exponierung soll schrittweise erweitert werden. Für Kontext-Aufblähung gibt es bisher noch keine perfekte Lösung. Langfristig könnte die Antwort sogar darin liegen, „ohne MCP zu arbeiten“. Aktuell bietet Vibium sowohl einen MCP-Server als auch eine JS/TS-API. In der JS/TS-API kann beliebiges JS ausgeführt werden. Ein möglicher Workaround zur Verringerung der Kontext-Aufblähung wäre, den Agenten Vibium-Skripte schreiben und ausführen zu lassen.