Was macht Slack-Automatisierung?
Interagiere mit Slack-Workspaces, um Nachrichten zu prüfen, Daten zu extrahieren und allgemeine Aufgaben zu automatisieren.
Schnellstart
Verbinde zu einer bestehenden Slack-Browser-Sitzung oder öffne Slack:
# Verbinde zu bestehender Sitzung auf Port 9222 (typisch für bereits geöffnetes Slack)
agent-browser connect 9222
# Oder öffne Slack, falls nicht bereits ausgeführt
agent-browser open https://app.slack.com
Dann erstelle einen Snapshot, um zu sehen, was verfügbar ist:
agent-browser snapshot -i
Kern-Workflow
- Verbinden/Navigieren: Slack öffnen oder verbinden
- Snapshot: Interaktive Elemente mit Referenzen (
@e1,@e2, usw.) abrufen - Navigieren: Tabs anklicken, Abschnitte erweitern oder zu bestimmten Kanälen navigieren
- Extrahieren/Interagieren: Daten auslesen oder Aktionen ausführen
- Screenshot: Nachweise der Ergebnisse erfassen
# Beispiel: Ungelesene Kanäle prüfen
agent-browser connect 9222
agent-browser snapshot -i
# Suche nach "Weitere ungelesene"-Button
agent-browser click @e21 # Referenz für "Weitere ungelesene"-Button
agent-browser screenshot slack-unreads.png
Allgemeine Aufgaben
Ungelesene Nachrichten prüfen
# Mit Slack verbinden
agent-browser connect 9222
# Snapshot erstellen, um Ungelesenen-Button zu lokalisieren
agent-browser snapshot -i
# Suche nach:
# - "Weitere ungelesene"-Button (normalerweise oben in der Seitenleiste)
# - "Aktivität"-Tab-Umschalter (zeigt Anzahl ungelesener Nachrichten)
# - Kanalnamen mit Abzeichen/fettem Text, die auf Ungelesene hinweisen
# Zum Aktivität-Tab navigieren, um alle Ungelesene in einer Ansicht zu sehen
agent-browser click @e14 # Aktivität-Tab (Referenz kann variieren)
agent-browser wait 1000
agent-browser screenshot activity-unreads.png
# Oder DM-Tab prüfen
agent-browser click @e13 # DM-Tab
agent-browser screenshot dms.png
# Oder "Weitere ungelesene" in der Seitenleiste erweitern
agent-browser click @e21 # Weitere ungelesene-Button
agent-browser wait 500
agent-browser screenshot expanded-unreads.png
Zu einem Kanal navigieren
# Nach Kanal in der Seitenleiste oder nach Name suchen
agent-browser snapshot -i
# Suche nach Kanalnamen in der Liste (z.B. "entwicklung", "produktdesign")
# Klicke auf die Kanal-Ref vom Typ treeitem
agent-browser click @e94 # Beispiel: Referenz für Entwicklungskanal
# Ersetze `entwicklung` mit dem Namen des angeklickten Kanals, sodass die alte
# Kanalüberschrift die Bedingung nicht erfüllen kann, während der neue Kanal noch rendert.
agent-browser wait --fn "document.querySelector('[data-qa=\"channel_header\"]')?.innerText.includes('entwicklung')"
agent-browser screenshot channel.png
Nachrichten/Threads finden
# Slack-Suche verwenden
agent-browser snapshot -i
agent-browser click @e5 # Such-Button (typische Referenz)
agent-browser fill @e_search "Suchbegriff"
agent-browser press Enter
# Gleiche die eingegebene Abfrage ab, damit eine wiederholte Suche die alte Route nicht wiederverwenden kann.
agent-browser wait --fn "location.pathname.includes('/search') && new URL(location.href).searchParams.get('q') === 'Suchbegriff'"
agent-browser screenshot search-results.png
Kanalinformationen extrahieren
# Liste aller sichtbaren Kanäle abrufen
agent-browser snapshot --json > slack-snapshot.json
# Nach Kanalnamen und Metadaten parsen
# Suche nach treeitem-Elementen mit level=2 (Unterkanäle unter Abschnitten)
Kanaldetails prüfen
# Einen Kanal öffnen
agent-browser click @e_channel_ref
agent-browser wait 1000
# Kanalinfo abrufen (Mitglieder, Beschreibung usw.)
agent-browser snapshot -i
agent-browser screenshot channel-details.png
# Durch Nachrichten scrollen
agent-browser scroll down 500
agent-browser screenshot channel-messages.png
Notizen machen/Zustand erfassen
Wenn du Ergebnisse aus Slack dokumentieren musst:
# Annotierten Screenshot erstellen (zeigt Elementnummern)
agent-browser screenshot --annotate slack-state.png
# Vollbild-Screenshot erstellen
agent-browser screenshot --full slack-full.png
# Aktuelle URL als Referenz abrufen
agent-browser get url
# Seitentitel abrufen
agent-browser get title
Seitenleistenstruktur
Das Verständnis der Slack-Seitenleiste hilft dir, effizient zu navigieren:
- Threads
- Huddles
- Entwürfe & gesendet
- Verzeichnisse
- [Abschnittsüberschriften - Externe Verbindungen, Markierte, Kanäle, usw.]
- [Kanäle als treeitems aufgelistet]
- Direktnachrichten
- [DMs aufgelistet]
- Apps
- [App-Verknüpfungen]
- [Weitere ungelesene]-Button (schaltet Liste ungelesener Kanäle um)
Wichtige Referenzen, auf die du achten solltest:
@e12- Home-Tab (normalerweise)@e13- DM-Tab@e14- Aktivität-Tab@e5- Such-Button@e21- Weitere ungelesene-Button (variiert pro Sitzung)
Tabs in Slack
Nachdem du auf einen Kanal geklickt hast, siehst du Tabs:
- Nachrichten - Kanalunterhaltung
- Dateien - Geteilte Dateien
- Angepinnt - Angepinnte Nachrichten
- Canvas hinzufügen - Kollaboratives Canvas
- Andere Tabs je nach Arbeitsbereich-Konfiguration
Klicke auf Tab-Referenzen, um die Ansicht zu wechseln und andere Informationen zu erhalten.
Daten aus Slack extrahieren
Textinhalt abrufen
# Text einer Nachricht oder eines Elements abrufen
agent-browser get text @e_message_ref
Accessibility-Baum parsen
# Vollständigen Snapshot als JSON für programmatisches Parsen
agent-browser snapshot --json > output.json
# Suche nach:
# - Kanalnamen (name-Feld in treeitem)
# - Nachrichteninhalt (in listitem/document-Elementen)
# - Benutzernamen (button-Elemente mit Benutzerinfo)
# - Zeitstempel (link-Elemente mit Uhrzeitinfo)
Ungelesene zählen
# Nach Erweitern des Ungelesenen-Abschnitts:
agent-browser snapshot -i | grep -c "treeitem"
# Jedes treeitem mit einem Kanalnamen im Ungelesenen-Abschnitt ist eine ungelesene Nachricht
Best Practices
- Verbinde zu bestehenden Sitzungen: Verwende
agent-browser connect 9222, wenn Slack bereits geöffnet ist. Das ist schneller als das Öffnen eines neuen Browsers. - Snapshots vor dem Klicken machen: Immer
snapshot -iverwenden, um Referenzen vor dem Klicken auf Buttons zu identifizieren. - Erneuten Snapshot nach Navigation: Nach dem Navigieren zu einem neuen Kanal oder Abschnitt einen neuen Snapshot erstellen, um neue Referenzen zu finden.
- JSON-Snapshots zum Parsen verwenden: Wenn du strukturierte Daten extrahieren musst, verwende
snapshot --jsonfür maschinenlesbare Ausgabe. - Interaktionen rhythmisieren: Füge
sleep 1zwischen schnellen Interaktionen ein, damit die UI aktualisiert werden kann. - Accessibility-Baum prüfen: Der Accessibility-Baum zeigt, was Screenreader (und deine Automatisierung) sehen können. Wenn ein Element nicht im Snapshot ist, ist es möglicherweise versteckt oder erfordert Scrollen.
- In der Seitenleiste scrollen: Verwende
agent-browser scroll down 300 --selector ".p-sidebar", um in der Slack-Seitenleiste zu scrollen, wenn die Kanalliste lang ist.
Einschränkungen
- Kein Zugriff auf Slack-API: Dies verwendet Browser-Automation, nicht die Slack-API. Kein OAuth, Webhooks oder Bot-Tokens erforderlich.
- Sitzungsabhängig: Screenshots und Snapshots sind an die aktuelle Browser-Sitzung gebunden.
- Ratenbegrenzung: Slack kann schnelle Interaktionen ratenbegrenzen. Füge bei Bedarf Verzögerungen zwischen Befehlen ein.
- Arbeitsbereich-spezifisch: Du interagierst mit deinem eigenen Arbeitsbereich – keine arbeitsbereichsübergreifende Automatisierung.
Fehlerbehebung
Konsole auf Fehler prüfen
agent-browser console
agent-browser errors
Aktuellen Seitenstatus abrufen
agent-browser get url
agent-browser get title
agent-browser screenshot page-state.png
Beispiel: Vollständige Überprüfung ungelesener Nachrichten
#!/bin/bash
# Mit Slack verbinden
agent-browser connect 9222
# Ersten Snapshot erstellen
echo "=== Slack-Ungelesene überprüfen ==="
agent-browser snapshot -i > snapshot.txt
# Aktivität-Tab auf Ungelesene prüfen
agent-browser click @e14 # Aktivität-Tab
agent-browser wait 1000
agent-browser screenshot activity.png
ACTIVITY_RESULT=$(agent-browser get text @e_main_area)
echo "Aktivität: $ACTIVITY_RESULT"
# DMs prüfen
agent-browser click @e13 # DM-Tab
agent-browser wait 1000
agent-browser screenshot dms.png
# Ungelesene Kanäle in der Seitenleiste prüfen
agent-browser click @e21 # Weitere ungelesene-Button
agent-browser wait 500
agent-browser snapshot -i > unreads-expanded.txt
agent-browser screenshot unreads.png
# Zusammenfassung
echo "=== Zusammenfassung ==="
echo "Details siehe activity.png, dms.png und unreads.png"
Referenzen
- Slack-Dokumentation: https://slack.com/help
- Web-Oberfläche: https://app.slack.com
- Tastaturkürzel: Drücke
?in Slack, um die Liste der Kurzbefehle anzuzeigen