browser-harness: der editierbare CDP-WebSocket, mit dem Agenten den Browser übernehmen
Browser-Kabelbaum | Selbstheilender Gurt, der es LLMs ermöglicht, jede Aufgabe zu erledigen.
Auf einen Blick
- Was ist das?
- Das Python-Projekt von browser-use verbindet ein LLM über genau eine CDP-Verbindung mit dem echten Chrome, und der Agent schreibt fehlende Helfer während der Arbeit selbst.
- Für wen ist es gedacht?
- browser-harness richtet sich an Entwickler, die ihrem Coding-Agenten wie Claude Code oder Codex den echten Chrome zur Verfügung stellen wollen, statt isolierte Headless-Instanzen zu pflegen. Der Kern bleibt klein und geschützt, der Agent erweitert agent_helpers.py und domain-skills im eigenen Arbeitsbereich.
- Darf ich es kommerziell nutzen?
- Ja. MIT ist eine freizügige Lizenz: Sie dürfen darauf aufbauende Software nutzen, verändern und verkaufen, solange Sie die Urheberrechts- und Lizenzhinweise beibehalten.
- Wird es noch gepflegt?
- Ja. Die letzten Commits kamen vor 4 Tagen.
- In welcher Sprache ist es geschrieben?
- Hauptsächlich Python, laut der Sprachstatistik von GitHub.
Die Antworten beruhen auf den GitHub-Daten des Projekts (zuletzt abgeglichen am 15. September 2026) und auf unserer Analyse. Sie sind keine Rechtsberatung.
TIEFGEHENDE OPEN-SOURCE-ANALYSE
Ein CDP-WebSocket und die Verse v0.1.10 von browser-harness
Browser Harness verbindet ein LLM direkt mit dem echten Browser, über genau ein editierbares CDP-WebSocket, ohne Zwischenschicht. Das README verspricht dazu den Satz, man werde den Browser nie wieder selbst benutzen. Die Metadaten zeigen ein aktives Projekt: 17206 Sterne, 1659 Forks, Sprache Python, MIT-Lizenz, 282 offene Issues, Standard-Branch main. Releases existieren, aktuell v0.1.10 vom 26. August 2026, davor v0.1.9 vom 16. August und v0.1.8 vom 26. Juli.
Das Projektpositionierung ist bewusst minimalistisch. Statt einer vollständigen Agentenplattform liefert das Harness die Verbindungs- und Arbeitsbereichslogik, der Rest entsteht zur Laufzeit durch den Agenten selbst. Die README illustriert den Selbstheilungsansatz mit einer Datei-Upload-Szene: Der Agent will eine Datei hochladen, entdeckt, dass in agent-workspace/agent_helpers.py der passende Helfer fehlt, schreibt ihn, und der Upload gelingt. Das Harness verbessere sich so mit jedem Task.
Der Setup-Prompt für Claude Code und chrome://inspect/#remote-debugging
Die Installation läuft ungewöhnlich über einen Prompt. Die README enthält einen abfertigungsfertigen Text zum Einfügen in Claude Code oder Codex, der den Agenten anweist, browser-harness mit uv und Python 3.12 auf die neueste stabile Version zu installieren oder zu aktualisieren, den Skill aus browser-harness skill zu registrieren und die Verbindung zum Browser herzustellen. Der Prompt fragt auch nach lokalen Browseraufzeichnungen, default nein, und bewahrt bestehende Präferenzen bei Upgrades. Bei Fehlschlag soll der Agent der Datei install.md folgen.
Der Agent öffnet daraufhin chrome://inspect/#remote-debugging. Beim ersten Setup muss der Nutzer dort ein Kontrollkästchen aktivieren, damit sich der Agent verbinden darf, und bei dem pro Verbindung erscheinenden Popup in Chrome 144 und höher auf Allow klicken. Diese Reihenfolge, Prompt statt Installationsanleitung, zieht die Verantwortung für die Einrichtung in den Agenten und hält die manuellen Schritte auf zwei Klicks im Browser geschrumpft.
install.md, SKILL.md und der geschützte Kern in src/browser_harness/
Die Architektur verteilt sich laut README auf wenige Stellen. install.md verbindet den Agenten mit dem Browser, SKILL.md bringt ihm den Browser-Workflow bei, und src/browser_harness/ bleibt als Kernpaket geschützt, während der Agent wiederverwendbare Helfer in seinem lokalen Arbeitsbereich schreibt. Die Arbeitsbereichsorte liegen unter ${XDG_CONFIG_HOME:-~/.config}/browser-harness/: agent_helpers.py für Code, den der Agent bearbeitet, und domain-skills/ für wiederverwendbare, seitenspezifische Skills.
Die Trennung ist der eigentliche Entwurf. Der Kern ändert sich nicht, wenn der Agent experimentiert, und alles Agentengenerierte bleibt sichtbar und editierbar im Arbeitsbereich. Wer einen isolierten Browser statt des täglichen Chrome braucht, startet laut README Chrome mit --remote-debugging-port und übergibt BU_CDP_URL, oder greift auf einen Browser-Use-Cloud-Browser zurück. Die einfache browser-harness-Helferaufrufe verbinden sich mit dem laufenden Chrome- oder Chromium-CDP-Endpunkt.
domain-skills für github, linkedin und amazon werden vom Agenten geschrieben
Der Arbeitsbereich agent-workspace/domain-skills/ im Repository enthält Beispiele für github, linkedin und amazon. Aktiviert werden Domänen-Skills durch Setzen von BH_DOMAIN_SKILLS=1. Der wichtigste Punkt der Contributing-Richtlinien betrifft genau diese Dateien: Skills werden nicht von Hand geschrieben. Wenn der Agent etwas nicht Offensichtliches herausfindet, legt er den Skill selbst ab.
Beiträger werden gebeten, stattdessen eine Aufgabe mit dem Agenten auszuführen und dann einen Pull Request mit dem generierten Ordner domain-skills/<site>/ zu öffnen, der in die Beispiele des Repositorys kopiert wird. Bugfixes und Dokumentationsverbesserungen sind gleichermaßen willkommen. Dieser Weg hält die Skills als authentische Produkte von Agentenläufen, nicht als von Hand verfasste Idealisierung. Für Nutzer bedeutet es, dass der Wert des Harness mit der Zahl der bereits gelaufenen Aufgaben wächst, nicht mit der Zahl der Contributeur.
mcp_server.py: Browserhelfer als MCP-Tools über stdio
Für MCP-Clients gibt es einen eigenen Weg. mcp_server.py legt die Browsersteuerungshelfer als MCP-Tools über stdio offen, sodass beliebige MCP-Clients wie Claude Code, Devin oder Cursor den Browser fahren können, ohne eine zweite CDP-Schicht zu schreiben. Setup und Clientkonfiguration stehen in docs/MCP.md.
Dieser Pfad trennt zwei Nutzungsarten sauber. Im Skill-Modus arbeitet der Agent mit dem Wissen aus SKILL.md und erweitert seinen Arbeitsbereich. Im MCP-Modus konsumiert ein beliebiger Client fertige Tools, ohne die Selbstheilungslogik zu berühren. Wer das Harness in eine bestehende MCP-Infrastruktur einbinden will, umgeht damit die Prompt-Installation komplett. Die README behandelt beide Wege gleichwertig, wahlweise je nachdem, ob der Agent den Workflow lernen oder nur Werkzeuge konsumieren soll.
Browser Use Cloud, Showcase-Tasks und die Grenzen des lokalen Modells
Das lokale Harness ist für eingeloggte, persönliche Arbeit gedacht. Wenn viele Browser parallel laufen sollen, mit Live-Vorschau, Proxys, Stealth und CAPTCHA-Lösung, verweist das README auf Browser Use Cloud. Diese Aufteilung definiert die Grenze des Open-Source-Teils: Ein Chrome, ein Agent, ein WebSocket. Parallelität und Ausweitung sind Cloud-Themen.
Zur Reichweite gehört auch die Selbstauskunft. Der Showcase verlinkt ein Video zur Task, das eigene X-Profil zu öffnen, die letzten 20 Videoposts zu finden und herunterzuladen, und zwei Blogposts, The Bitter Lesson of Agent Harnesses und Web Agents That Actually Learn, liegen dem Projekt als Hintergrund bei. Die harten Grenzen bleiben: Der Agent bekommt Zugriff auf den echten, eingeloggeden Browser, was eine offene Debugging-Schnittstelle voraussetzt. In Umgebungen, in denen diese Schnittstelle aus Sicherheitsgründen geschlossen bleiben muss, läuft das Konzept nicht. Wer es prüft, startet mit einem leeren Profildatei und beobachtet, welche Helfer der Agent in agent_helpers.py nachschiebt.
Redaktionelles Fazit
browser-harness richtet sich an Entwickler, die ihrem Coding-Agenten wie Claude Code oder Codex den echten Chrome zur Verfügung stellen wollen, statt isolierte Headless-Instanzen zu pflegen. Der Kern bleibt klein und geschützt, der Agent erweitert agent_helpers.py und domain-skills im eigenen Arbeitsbereich. Ungeeignet ist das Setup für Teamumgebungen, in denen keine Debugging-Schnittstelle des Browsers geöffnet werden darf, und für Aufgaben, die mehr Parallelität brauchen, als ein lokaler Browser bietet. Vor dem Ernstbetrieb sollte man mit einer isolierten Profildatei und einer Task wie der Video-Download-Beispielübung aus der Showcase prüfen, wie die Helfer konkret arbeiten, und die Einstellung zu lokalen Aufzeichnungen bewusst setzen.
Community-Notizen