Browser-Tool
Chrome-Automatisierung mit persistenten Login-Sitzungen. Einmal einloggen, und der Agent kann authentifizierte Seiten in deinem Auftrag durchsuchen.
config.toml wie unten beschrieben. Das Feature-Flag wird nur beim Kompilieren aus dem Quellcode benötigt.Schnellstart
Zwei Schritte, damit der Agent mit deinen Login-Sitzungen browsen kann:
1. In deine Dienste einloggen
aidaemon browser loginChrome öffnet sich mit einem dedizierten Profil. Logge dich in die Dienste ein, auf die der Agent zugreifen soll (Gmail, GitHub, AWS Console, Jira usw.), und schließe dann Chrome. Deine Sitzungen werden unter ~/.aidaemon/chrome-profile/ gespeichert und bleiben über Neustarts erhalten.
2. Das Browser-Tool aktivieren
[browser]
enabled = trueDas war's. Der Agent kann jetzt authentifizierte Seiten mit deinen gespeicherten Sitzungen durchsuchen.
Konfiguration
| Key | Type | Default | Description |
|---|---|---|---|
enabled | bool | false | Das Browser-Tool aktivieren |
headless | bool | true | Chrome ohne sichtbares Fenster ausführen |
screenshot_width | int | 1280 | Browser-Viewport-Breite in Pixeln |
screenshot_height | int | 720 | Browser-Viewport-Höhe in Pixeln |
user_data_dir | string | ~/.aidaemon/chrome-profile | Chrome-Profilverzeichnis für persistente Sitzungen |
profile | string | Default | Chrome-Profilname innerhalb von user_data_dir |
remote_debugging_port | int | null | Verbindung zu einer bestehenden Chrome-Instanz auf diesem Port (fortgeschritten) |
Minimale Konfiguration
[browser]
enabled = trueAlles andere hat sinnvolle Standardwerte. Sitzungen werden automatisch unter ~/.aidaemon/chrome-profile/ gespeichert.
Aktionen
| Aktion | Parameter | Beschreibung |
|---|---|---|
navigate | url | Zur URL navigieren, 2s auf Seitenladevorgang warten |
screenshot | selector? | PNG-Screenshot der gesamten Seite oder eines bestimmten Elements |
click | selector | Ein Element per CSS-Selektor anklicken |
fill | selector, value | Text in ein Formulareingabefeld eingeben |
get_text | selector? | Textinhalt eines Elements oder der gesamten Seite extrahieren |
execute_js | script | Beliebiges JavaScript ausführen und das Ergebnis zurückgeben |
wait | selector, timeout_secs? | Auf das Erscheinen eines Elements warten (Standard 10s Timeout) |
close | — | Die Browser-Sitzung schließen |
Sitzungspersistenz
Das Browser-Tool verwendet ein dediziertes Chrome-Profil unter ~/.aidaemon/chrome-profile/, das Cookies, Local Storage und Login-Sitzungen speichert. Das bedeutet:
- Einmal über
aidaemon browser logineinloggen, Sitzungen bleiben unbegrenzt erhalten - Der Agent startet Chrome im Headless-Modus mit diesem Profil — bereits authentifiziert
- Sitzungen überstehen aidaemon-Neustarts und Systemneustarts
- Führe
aidaemon browser loginjederzeit erneut aus, um neue Dienste hinzuzufügen oder abgelaufene Sitzungen zu erneuern
Bereitstellungsmodi
Isolierte Instanz (empfohlen)
Wenn aidaemon auf einem dedizierten Server oder einer VM läuft, ist kein anderes Chrome aktiv. Der Agent startet Chrome und besitzt es direkt.
# SSH into your instance
ssh user@my-server
# One-time: log into services
aidaemon browser login
# Config
# [browser]
# enabled = true
# Done — agent handles Chrome automatically from hereFür Headless-Server verwende SSH mit X-Forwarding (ssh -X) oder VNC für den initialen Login.
Persönlicher Computer
Wenn aidaemon neben deinem persönlichen Chrome läuft, startet der Agent eine separate Chrome-Instanz mit eigenem Profil. Beide laufen ohne Konflikte nebeneinander.
# Same setup — separate Chrome instance, no conflict
aidaemon browser login
# Your personal Chrome (47 tabs, extensions, bookmarks) → untouched
# Aidaemon's Chrome (~/.aidaemon/chrome-profile/) → isolatedFortgeschritten: Verbindung zu bestehendem Chrome
Für erfahrene Benutzer, die sich mit einer Chrome-Instanz verbinden möchten, die bereits mit einem Remote-Debugging-Port läuft:
[browser]
enabled = true
remote_debugging_port = 9222Starte Chrome mit --remote-debugging-port=9222 und der Agent verbindet sich direkt damit. Dies teilt die Sitzungen der Chrome-Instanz, erfordert aber, dass Chrome mit dem Debugging-Flag gestartet wird.
Screenshots
Screenshots werden als PNG aufgenommen und über den aktiven Kanal an den Benutzer gesendet (Telegram-Foto, Slack-Dateiupload usw.) mit Beschriftungen, die die Seiten-URL beschreiben.
Anwendungsfälle
- Überwachung — Dashboards prüfen (Grafana, Vercel, AWS Console), Bereitstellungsstatus als Screenshot festhalten
- Datenextraktion — JS-gerenderte Seiten auslesen, Berichte aus Admin-Panels abrufen
- Workflow-Automatisierung — Formulare ausfüllen, mehrstufige Abläufe in internen Tools navigieren
- Testen — Deine bereitgestellte App navigieren, UI überprüfen, responsive Layouts kontrollieren
- Authentifiziertes Browsen — Mit jedem Dienst interagieren, bei dem du eingeloggt bist, keine API-Schlüssel nötig
Aus Quellcode kompilieren
Das Browser-Tool erfordert das browser-Feature-Flag:
cargo build --release --features browserErfordert einen installierten Chromium-basierten Browser (Chrome, Chromium, Brave oder Edge).