visual-regression-scanner
Features Bedienung Verantwortung Installation GitHub
Open Source TUI Tool · v1.5.0

Visual Regression
Scanner

Nimmt jede Seite einer Sitemap auf und vergleicht sie Pixel für Pixel mit einer gespeicherten Referenz. Unterschiede fallen so auf, bevor sie jemand anderes bemerkt - mit Bildvorschau direkt im Terminal.

GitHub Repository Installation
Ein Lauf erzeugt Last. Für jede Aufnahme wird die Seite vollständig in einem echten Browser gerendert - mit Skripten, Schriften und Bildern, am Zwischenspeicher des Servers vorbei. Eine Seite wiegt damit ein Vielfaches eines einfachen Abrufs, und ein Lauf fasst jede Seite der Sitemap an. Der Scanner ist deshalb von Haus aus auf 60 Seiten pro Minute gedrosselt. Setze ihn nur gegen Systeme ein, für die Du eine Berechtigung hast — Einzelheiten unter Verantwortung.
visual-regression-scanner
$ visual-regression-scanner https://example.com/sitemap.xml

Rate-Limit aktiv: max. 60 Seiten/Minute
robots.txt beachtet - keine Seite gesperrt
48 URLs geladen

/produkte/strom unverändert
! /kontakt 2,4 % geändert
/impressum unverändert
+ /aktionen/sommer neue Referenz

44 OK | 3 Abweichungen | 1 neu | 0 Fehler
Features

Was es kann

Screenshot-Vergleich für ganze Websites, bedienbar im Terminal.

🔍

Pixelgenauer Vergleich

Jede Seite der Sitemap wird aufgenommen und gegen die gespeicherte Referenz gehalten. Ab einer einstellbaren Schwelle gilt eine Seite als verändert - so schlägt nicht jede Schriftglättung Alarm.

🖼️

Vorschau im Terminal

Referenz, aktuelle Aufnahme und Unterschied lassen sich direkt umschalten - über Sixel beziehungsweise das Kitty-Protokoll, sonst aus Unicode-Halbblöcken, die überall darstellbar sind.

🐢

Voreingestellt gedrosselt

60 Seiten pro Minute, damit ein Lauf ein Produktivsystem nicht in die Knie zwingt. Über den Regler in den Einstellungen oder --rate-limit anpassbar.

🤖

robots.txt beachtet

Gesperrte Seiten aus der Sitemap werden übersprungen und im Protokoll ausgewiesen. Für eigene Testsysteme lässt sich die Prüfung abschalten.

⚙️

Einstellungen und Verlauf

Schwelle, Viewport, Drosselung und mehr bleiben gespeichert. Der Verlauf merkt sich geprüfte Sitemaps samt Ergebnis - Auswahl statt Abtippen.

📄

Berichte

Ergebnisse als JSON oder HTML, wahlweise automatisch beim Lauf. Für den genauen Blick öffnet eine Vergleichsansicht alle drei Bilder im Browser.

Bedienung

Tastenkürzel

Alles ist über die Tastatur erreichbar; das Protokoll bietet zusätzlich ein Kontextmenü.

TasteFunktion
uSitemap-URL eingeben
cLauf starten
sEinstellungen
hVerlauf geprüfter Sitemaps
rReferenzbilder der Site zurücksetzen
RBerichte speichern
oBilder im Browser vergleichen
eNur Abweichungen anzeigen
lProtokoll ein- und ausblenden
/Filter
iInfo
qBeenden
Tech Stack

Gebaut mit

Die Technologien hinter dem Projekt.

Python 3.12+
Textual
Playwright
Pillow
textual-image
Verantwortung

Nutzung auf eigene Verantwortung

Was ein Lauf auf dem Zielsystem anrichtet - und wer dafür geradesteht.

Für jeden Screenshot wird die Seite vollständig in einem echten Browser gerendert: Skripte, Schriften und Bilder werden geladen, der Aufruf läuft an den Zwischenspeichern des Servers vorbei. Bei Ganzseiten-Aufnahmen wird zusätzlich durch die komplette Seite gescrollt, damit nachgeladene Inhalte erscheinen. Eine Seite wiegt damit ein Vielfaches eines einfachen Abrufs - und ein Lauf fasst jede Seite der Sitemap an.

Deshalb ist der Scanner voreingestellt gedrosselt: 60 Seiten pro Minute. --concurrency ist dabei kein Rate-Limit, sondern begrenzt nur, wie viele Browser-Tabs gleichzeitig laufen.

Mit der Nutzung erklären Sie:

  1. Sie setzen das Programm ausschließlich gegen Systeme ein, für die Ihnen eine ausdrückliche Berechtigung des Betreibers vorliegt.
  2. Sie tragen die alleinige Verantwortung für den Einsatz, die gewählten Einstellungen und alle daraus entstehenden Folgen.
  3. Vor einem Lauf gegen ein Produktivsystem prüfen Sie, ob die eingestellten Grenzwerte für dieses System angemessen sind.

Die Software wird unentgeltlich und ohne jede Gewährleistung bereitgestellt ("as is"), wie in Abschnitt 7 der Apache-Lizenz 2.0 beschrieben. Eine Haftung des Autors (Michael Blaess) für Schäden, die aus der Nutzung entstehen, ist ausgeschlossen, soweit dies gesetzlich zulässig ist. Unberührt bleibt die Haftung für Vorsatz und grobe Fahrlässigkeit, für Schäden aus der Verletzung des Lebens, des Körpers oder der Gesundheit sowie nach dem Produkthaftungsgesetz.

Beim ersten Start fragt das Programm diesen Hinweis ab; ohne Zustimmung startet es nicht. Die Oberfläche gibt es vollständig auf Deutsch und Englisch, umschaltbar in den Einstellungen; beim allerersten Start entscheidet die Systemumgebung - Deutsch nur bei deutschsprachiger Umgebung, sonst Englisch.

Installation

Schnellstart

Fertige Programmdateien pro Plattform oder aus dem Quellcode.

Fertige Datei (empfohlen)

Release herunterladen und entpacken

Aus dem Quellcode

git clone && ./bootstrap.sh
Windows
Linux
macOS