Zum Hauptinhalt springen

Befehlsausführung

Verfügbare Browser-Befehle durchsuchen, einmalige Aktionen ausführen, Inhalte von Seiten extrahieren und Streaming-Test-Sessions ausführen.

otto commands list

Listet alle verfügbaren Befehle auf einem verbundenen Node auf, optional nach Site gefiltert.

Verwendung

otto commands list [Optionen]

Flags

FlagKurzformErforderlichTypStandardBeschreibung
--site-sNeinstringNach Site filtern (z. B. reddit.com)
--node-idNeinstringAutomatisch ausgewähltZiel-Node-ID
--jsonNeinbooleanfalseAls JSON ausgeben

Beispiele

# Alle Befehle auflisten
otto commands list

# Befehle für eine bestimmte Site auflisten
otto commands list --site reddit.com

# Maschinenlesbare Ausgabe
otto commands list --json

Beendigungscodes

CodeBedeutung
0Befehle aufgelistet
1Kein Node verbunden oder Relay-Fehler

otto cmd

Führt eine einzelne Befehlsaktion auf einem verbundenen Node aus. Nützlich für Primitive und einmalige Befehle.

Verwendung

otto cmd [Optionen]

Flags

FlagKurzformErforderlichTypStandardBeschreibung
--action-aJastringAuszuführende Aktion (z. B. primitive.tab.open)
--payload-pNeinstring{}JSON-Payload-String
--node-idNeinstringAutomatisch ausgewähltZiel-Node-ID
--tab-sessionNeinstringTab-Session-ID für tab-bezogene Aktionen
--timeoutNeinnumber30000Befehls-Timeout in Millisekunden
--jsonNeinbooleanfalseErgebnis als JSON ausgeben und interaktive TUI überspringen

Beispiele

# Verwalteten Tab öffnen
otto cmd --action primitive.tab.open --payload '{"url":"https://www.reddit.com"}'

# Text aus einem offenen Tab extrahieren
otto cmd --action primitive.dom.extract_text --tab-session <tabSessionId>

# Screenshot per URL aufnehmen
otto cmd --action primitive.page.screenshot --payload '{"url":"https://example.com"}'

# Site-Befehl direkt ausführen
otto cmd --action command.run --payload '{"site":"reddit.com","command":"getPosts"}'

Beendigungscodes

CodeBedeutung
0Befehl erfolgreich abgeschlossen
1Befehl fehlgeschlagen, Timeout oder Relay-Fehler

otto test

Führt einen Site-Befehl im Testmodus aus, mit optionalem Stream-Follow für Streaming-Befehle.

Verwendung

otto test <site> <command> [Optionen]

Argumente

ArgumentErforderlichBeschreibung
<site>JaSite-Identifikator (z. B. reddit.com)
<command>JaBefehlsname (z. B. getChatMessages)

Flags

FlagKurzformErforderlichTypStandardBeschreibung
--payload-pNeinstring{}JSON-Payload für den Befehl
--node-idNeinstringAutomatisch ausgewähltZiel-Node-ID
--tab-sessionNeinstringBestehende Tab-Session-ID (überspringt automatisches Öffnen)
--timeoutNeinnumber30000Befehls-Timeout in Millisekunden
--stream-follow-msNeinnumberWie lange Stream-Updates nach Befehlsabschluss verfolgt werden (ms)
--stream-probeNeinbooleanfalseTraffic-Probe sofort nach Stream-Abonnement erzwingen
--stream-poll-interval-msNeinnumberPoll-Intervall-Override für Stream-Listener-Modi, die Polling unterstützen
--wait-for-interruptNeinbooleanfalseVerwalteten Tab bis Ctrl+C offen halten
--jsonNeinbooleanfalseAls JSON ausgeben (maschinenlesbare Stream-Frames)

Beispiele

# Einfachen Site-Befehlstest ausführen
otto test reddit.com getPosts

# Mit Payload ausführen
otto test reddit.com getPosts --payload '{"limit":5}'

# Chat-Befehl 45 Sekunden lang stream-verfolgen
otto test reddit.com getChatMessages --stream-follow-ms 45000

# Stream mit Probe und JSON-Ausgabe für Automatisierung
otto test reddit.com getChatMessages --stream-probe --stream-follow-ms 45000 --json

# Tab nach dem Test offen halten
otto test reddit.com getPosts --wait-for-interrupt

Stream-Follow-Verhalten

Wenn --stream-follow-ms gesetzt ist, abonniert otto test alle vom Befehl zurückgegebenen Stream-Manifeste und verfolgt Listener-Updates, bis das Timeout abläuft. Drücken Sie Ctrl+C zum vorzeitigen Abbrechen — dies sendet command_cancel für aktive Stream-Tests und schließt den automatisch geöffneten Tab.

Automatisches Tab-Öffnen

Wenn --tab-session weggelassen wird, öffnet otto test automatisch einen Tab zum preloadHost des Befehls, falls verfügbar, andernfalls https://<site>. Der Tab wird nach dem Test automatisch geschlossen, es sei denn, --wait-for-interrupt ist gesetzt.

Beendigungscodes

CodeBedeutung
0Test erfolgreich abgeschlossen
1Test fehlgeschlagen, Timeout, manual_login_required oder Relay-Fehler

otto extract-content

Extrahiert Seiteninhalte mit einem Befehl und wählbarem Ausgabeformat. Standardformat ist markdown. Für Selektor-Entwicklung und Befehlserstellung bevorzugen Sie clean_html.

Verwendung

otto extract-content [url] [Optionen]

Argumente

ArgumentErforderlichBeschreibung
[url]NeinSeiten-URL, von der extrahiert werden soll. Optional, wenn --tab-session angegeben ist.

Flags

FlagKurzformErforderlichTypStandardBeschreibung
--formatNeinenummarkdownmarkdown, distilled_html, clean_html, raw_html oder text
--tab-sessionNeinstringBestehende Tab-Session-ID, von der extrahiert werden soll
--selectorNeinstringbodyCSS-Selektor (unterstützt für clean_html, raw_html und text)
--distill-modeNeinenumreadabilityreadability oder dom-distiller (für markdown und distilled_html)
--no-fallback-to-readabilityNeinbooleanfalseReadability-Fallback deaktivieren, wenn dom-distiller ausgewählt ist
--max-charsNeinnumberMaximale extrahierte Zeichen für unterstützte Formate
--node-idNeinstringAutomatisch ausgewähltZiel-Node-ID
--timeoutNeinnumber60000Befehls-Timeout in Millisekunden
--jsonNeinbooleanfalseVollständiges JSON-Ergebnis ausgeben

Beispiele

# Markdown extrahieren (Standard)
otto extract-content https://example.com

# Destilliertes HTML extrahieren
otto extract-content https://example.com --format distilled_html

# Sauberes HTML extrahieren (empfohlen für Selektor-Erstellung)
otto extract-content https://example.com --format clean_html --selector article

# Rohes HTML aus einem Selektor extrahieren
otto extract-content https://example.com --format raw_html --selector article

# Text aus einem bestehenden verwalteten Tab extrahieren
otto extract-content --format text --tab-session <tabSessionId>

Verhaltenshinweise

  • Geben Sie entweder [url] oder --tab-session an.
  • Bei --format text und reinen URL-Aufrufen öffnet Otto automatisch einen temporären verwalteten Tab, extrahiert Text und schließt den Tab.
  • --selector wird für markdown und distilled_html abgelehnt.
  • clean_html bewahrt semantische Attribute, während Skripte/Styles/Inline-Handler entfernt werden, was normalerweise das beste Format für DOM-Debugging ist.

Beendigungscodes

CodeBedeutung
0Extraktion erfolgreich abgeschlossen
1Extraktion fehlgeschlagen, Eingabevalidierung fehlgeschlagen oder Relay-Fehler

Verwandte Befehle