bcurl: Browser-Screenshots auf der Kommandozeile

Wie curl, aber mit Chromium-Rendering. Open Source, von uns entwickelt.

Wer mit curl arbeitet, kennt das Problem: Man bekommt den Quelltext einer Seite – aber nicht das, was der Nutzer tatsächlich sieht. JavaScript wird nicht ausgeführt, CSS nicht gerendert, Single-Page-Apps bleiben leer. Genau dafür haben wir bcurl gebaut.

Was ist bcurl?

bcurl ist ein Kommandozeilen-Tool, das Webseiten in einem echten Chromium-Browser rendert und das Ergebnis als Screenshot (PNG/JPEG) oder PDF zurückgibt. Die Bedienung fühlt sich an wie curl – gleiche Flags, gleiche Gewohnheiten:

# Screenshot einer Webseite
bcurl -o screenshot.png https://example.com

# Mobile Ansicht simulieren
bcurl --device iphone-14 -o mobile.png https://example.com

# Komplette Seite als PDF
bcurl --full-page --format pdf -o seite.pdf https://example.com

Wer curl-Flags wie -H, -b, -u, -x oder -v kennt, fühlt sich sofort zu Hause.

Mehr als Screenshots

bcurl kann deutlich mehr als nur Bilder machen:

  • Device-Emulation – iPhone, Pixel, iPad, Galaxy – 10 vordefinierte Geräte
  • Login & Sessions – Formulare ausfüllen, Cookies speichern, Session wiederverwenden
  • Netzwerkanalyse – Request-Tabelle, HAR-Export, Timing-Waterfall
  • Visual Diff – Pixel-genauer Vergleich zweier Screenshots
  • Parallele Captures – mehrere URLs gleichzeitig aufnehmen
  • Record & Replay – komplexe Interaktionen aufzeichnen und abspielen
  • Daemon Mode – Chromium im Hintergrund halten, ~1,5 Sekunden Startup sparen

Praxisbeispiel: Login und Dashboard-Screenshot

Ein typischer Anwendungsfall: automatisiert einen Screenshot eines geschützten Bereichs aufnehmen.

# Login und Session speichern
bcurl \
  --form-login https://app.example.com/login \
  --form-field 'input[name="username"]=admin' \
  --form-field 'input[type="password"]=secret' \
  --form-submit 'button:text-is("Sign In")' \
  --session session.json \
  -o dashboard.png https://app.example.com/dashboard

# Nächstes Mal: Session wiederverwenden
bcurl --session session.json -o dashboard.png https://app.example.com/dashboard

Die Session-Datei speichert Cookies und localStorage – inklusive JWT-Tokens und Auth-State. Nachfolgende Aufrufe überspringen den Login komplett.

KI-Integration: 24 Browser-Tools für Agenten

Das vielleicht spannendste Feature: bcurl ist gleichzeitig ein MCP-Server (Model Context Protocol). KI-Agenten wie Claude Code können damit den Browser fernsteuern – navigieren, klicken, Formulare ausfüllen, Screenshots machen, Assertions prüfen:

# bcurl als MCP-Server für Claude Code registrieren
claude mcp add bcurl -- bcurl --mcp

Damit bekommt der KI-Agent 24 Browser-Tools: navigate, click, fill, screenshot, login, assert, evaluate und mehr. Das ermöglicht Szenarien wie automatisierte QA-Tests, Web-Scraping mit JavaScript-Rendering oder visuelle Regression-Tests – gesteuert durch natürliche Sprache.

Installation

bcurl ist Open Source und in wenigen Sekunden installiert:

# Via Homebrew (macOS/Linux)
brew tap christianbuerckert/bcurl https://github.com/christianbuerckert/bcurl
brew install bcurl

# Oder aus dem Quellcode
git clone https://github.com/christianbuerckert/bcurl.git
cd bcurl && ./install.sh

Voraussetzung ist Node.js ≥ 18. Chromium wird automatisch mitinstalliert.

Warum nicht Puppeteer/Playwright direkt?

Natürlich kann man Playwright-Scripts schreiben. Aber bcurl macht das Ganze zugänglich für alle, die keine Node.js-Projekte aufsetzen wollen. Ein Einzeiler auf der Kommandozeile reicht. Für CI/CD-Pipelines, Monitoring-Scripts oder schnelle Checks ist das ein echter Produktivitätsgewinn.

Und wer doch tiefer einsteigen will: Der MCP-Server macht bcurl zu einem vollwertigen Browser-Automatisierungstool – ohne eine Zeile Playwright-Code schreiben zu müssen.

bcurl auf GitHub

Fragen zu bcurl oder Browser-Automatisierung?

Wir helfen gerne bei der Integration in Ihre CI/CD-Pipeline, beim Aufsetzen von Visual Regression Tests oder bei der Anbindung an KI-Agenten.

GitHub Repository Kontakt aufnehmen