Vibium – Browser-Automatisierung für AI und Menschen
(github.com/VibiumDev)- 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 vibiumsofort einsatzbereit - LLM-Agenten wie Claude Code können mit einem einzigen Befehl
claude mcp add vibiumBrowser-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
- Browser-Steuerung mit einfachen Befehlen wie
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 startenbrowser_navigate: zu einer URL navigierenbrowser_find: Element per CSS-Selektor findenbrowser_click: auf ein Element klickenbrowser_type: Text eingebenbrowser_screenshot: Viewport aufnehmenbrowser_quit: Browser beenden
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=1lä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(); - 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
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.
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.
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.
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.
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.
Ich frage mich, wie der Agent, nachdem er mit
browser_screenshotden Bildschirm erfasst hat, CSS-Selektoren findet, um dann zu klicken. Nur anhand des Screenshots ist der Elementtyp schwer zu erkennen.browser_evaluatehinzugefü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.
browser_navigateeinfach 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-DokumentationIch hatte vor, etwas Ähnliches wie Skyvern zu bauen, und frage mich, warum du statt einer Selenium-Erweiterung ein neues Vibium gebaut hast.
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.