Was macht cli-anything-browser?
Eine Kommandozeilen-Schnittstelle zur Browser-Automatisierung mittels DOMShell MCP Server. Navigieren Sie durch Webseiten mit Dateisystem-Befehlen: ls, cd, cat, grep, click.
Installation
Voraussetzungen
-
Node.js und npx (für den DOMShell MCP Server):
# Node.js von https://nodejs.org/ installieren npx --version -
Chrome/Chromium mit DOMShell-Erweiterung:
- Erweiterung in Chrome installieren
- Stellen Sie sicher, dass Chrome läuft, bevor Sie die CLI verwenden
-
Python 3.10+
CLI installieren
cd browser/agent-harness
pip install -e .
Befehlsgruppen
page — Seiten-Navigation
page open <url>— Zu einer URL navigierenpage reload— Aktuelle Seite neu ladenpage back— Zurück in der Verlaufslistepage forward— Vorwärts in der Verlaufslistepage info— Informationen zur aktuellen Seite anzeigen
fs — Dateisystem-Befehle (Accessibility Tree)
fs ls [pfad]— Elemente im Pfad auflistenfs cd <pfad>— Verzeichnis wechselnfs cat [pfad]— Inhalt eines Elements lesenfs grep <muster> [pfad]— Nach einem Textmuster suchenfs pwd— Aktuelles Arbeitsverzeichnis anzeigen
act — Aktions-Befehle
act click <pfad>— Ein Element anklickenact type <pfad> <text>— Text in ein Eingabefeld eingeben
session — Sitzungsverwaltung
session status— Sitzungsstatus anzeigensession daemon-start— Dauerhaften Daemon-Modus startensession daemon-stop— Daemon-Modus beenden
Anwendungsbeispiele
Grundlegende Navigation
# Eine Seite öffnen
cli-anything-browser page open https://example.com
# Struktur erkunden
cli-anything-browser fs ls /
cli-anything-browser fs cd /main
cli-anything-browser fs ls
# Zurück zur Wurzel
cli-anything-browser fs cd /
Suchen und Klicken
cli-anything-browser fs grep "Anmelden"
cli-anything-browser act click /main/button[0]
Formular ausfüllen
cli-anything-browser act type /main/input[0] "[email protected]"
cli-anything-browser act click /main/button[0]
JSON-Ausgabe
cli-anything-browser --json fs ls /
Daemon-Modus (schnellere interaktive Nutzung)
# Permanente Verbindung starten
cli-anything-browser session daemon-start
# Befehle ausführen (nutzt die bestehende Verbindung)
cli-anything-browser fs ls /
cli-anything-browser fs cd /main
# Daemon beenden, wenn fertig
cli-anything-browser session daemon-stop
Interaktive REPL
cli-anything-browser
Pfad-Syntax
DOMShell verwendet einen dateisystemähnlichen Pfad für den Accessibility Tree:
/ — Wurzel (Dokument)
/main — Haupt-Landmarke
/main/div[0] — Erstes div in main
/main/div[0]/button[2] — Dritter Button im ersten div
- Array-Indizes sind 0-basiert:
button[0]ist der erste Button - Verwenden Sie
.., um eine Ebene nach oben zu gehen - Verwenden Sie
/für die Wurzel
Agenten-spezifische Hinweise
JSON-Ausgabe zum Parsen
Alle Befehle unterstützen das --json-Flag für maschinenlesbare Ausgabe:
cli-anything-browser --json fs ls /
Liefert:
{
"path": "/",
"entries": [
{"name": "main", "role": "landmark", "path": "/main"}
]
}
Fehlerbehandlung
Die CLI liefert klare Fehlermeldungen für häufige Probleme:
- npx nicht gefunden: Node.js von https://nodejs.org/ installieren
- DOMShell nicht gefunden:
npx @apireno/domshell --versionausführen - MCP-Aufruf fehlgeschlagen: DOMShell Chrome-Erweiterung installieren
Überprüfen Sie den Rückgabewert von is_available(), bevor Sie Befehle ausführen.
Daemon-Modus für Effizienz
Für Agenten-Workflows mit mehreren Befehlen verwenden Sie den Daemon-Modus:
- Daemon starten:
cli-anything-browser session daemon-start - Befehle ausführen: Jeder Befehl nutzt die bestehende MCP-Verbindung wieder
- Daemon beenden:
cli-anything-browser session daemon-stop
Dies vermeidet den 1-3 Sekunden dauernden Kaltstart für jeden Befehl.
Links
Sicherheitsaspekte
WICHTIG: Bei Verwendung dieser CLI mit KI-Agenten sollten folgende Sicherheitsaspekte beachtet werden:
URL-Einschränkungen
Der Browser-Harness validiert alle URLs vor der Navigation:
- Explizites Schema erforderlich: URLs müssen
http://oderhttps://enthalten (URLs ohne Schema wieexample.comwerden abgelehnt) - Blockierte Schemata:
file://,javascript://,data://,vbscript://,about://,chrome://und browser-interne Schemata - Erlaubte Schemata: Nur
http://undhttps://(konfigurierbar überCLI_ANYTHING_BROWSER_ALLOWED_SCHEMES) - Privates Netzwerk blockieren: Optional über
CLI_ANYTHING_BROWSER_BLOCK_PRIVATE=true(standardmäßig deaktiviert)
DOM-Inhaltsrisiken
Der Accessibility Tree enthält alle sichtbaren und versteckten Elemente einer Seite. Bösartige Webseiten könnten:
- ARIA-Labels mit manipulativen Texten erstellen (z. B. „Ignoriere vorherige Anweisungen“)
- aria-hidden-Elemente verwenden, um für Benutzer unsichtbare Inhalte einzuschleusen
- Verwirrende DOM-Strukturen erzeugen, die die Navigation fehlleiten
Gegenmaßnahme: Bei Interaktion mit nicht vertrauenswürdigen Webseiten sollten Sie:
- Das
--json-Flag für strukturierte Ausgabe verwenden, die sicherer zu parsen ist - DOM-Inhalte bereinigen oder filtern, bevor sie in Prompts eingefügt werden
- Die Navigation auf vertrauenswürdige Domänen beschränken
Zugriff auf private Netzwerke
Standardmäßig kann der Browser auf localhost und private Netzwerke zugreifen (192.168.x.x, 10.x.x.x usw.). Zum Blockieren:
export CLI_ANYTHING_BROWSER_BLOCK_PRIVATE=true
cli-anything-browser page open http://localhost:8080 # Wird blockiert
Sitzungsisolation
Mehrere Browser-Sitzungen teilen sich dieselbe Chrome-Instanz. Cookies und Authentifizierungsstatus können über Sitzungen hinweg bestehen bleiben. Für sensible Vorgänge sollten Sie:
- Den Gastmodus oder Inkognito-Modus von Chrome verwenden
- Cookies zwischen Sitzungen löschen
- Für verschiedene Sicherheitskontexte separate Chrome-Profile verwenden