Clawdbot macOS-App

Die Clawdbot-Begleit-App für macOS bietet Menüleisten-Integration, Berechtigungsverwaltung und native macOS-Funktionen für Ihren KI-Assistenten.

Clawdbot macOS-Begleiter Übersicht

Die Clawdbot macOS-App ist der Menüleisten-Begleiter für Clawdbot. Sie besitzt Berechtigungen, verwaltet/verbindet sich mit dem Gateway lokal (launchd oder manuell) und stellt macOS-Funktionen dem Agenten als Knoten zur Verfügung.

Was sie macht

  • Zeigt native Benachrichtigungen und Status in der Menüleiste
  • Besitzt TCC-Anfragen (Benachrichtigungen, Bedienungshilfen, Bildschirmaufnahme, Mikrofon, Spracherkennung, Automatisierung/AppleScript)
  • Führt das Gateway aus oder verbindet sich damit (lokal oder remote)
  • Stellt macOS-exklusive Tools bereit (Canvas, Kamera, Bildschirmaufnahme, system.run)
  • Verwaltet den lokalen Knoten-Host-Dienst
  • Installiert das globale CLI (clawdbot) via npm/pnpm auf Anfrage

Lokal vs Remote-Modus

ModusBeschreibung
Lokal (Standard)App verbindet sich mit laufendem lokalen Gateway; aktiviert launchd-Dienst bei Bedarf
RemoteApp verbindet sich mit Gateway über SSH/Tailscale; startet lokalen Knoten-Host-Dienst

Die App startet das Gateway nicht als Kindprozess.

Launchd-Steuerung

Die App verwaltet einen LaunchAgent pro Benutzer mit dem Label bot.molt.gateway (oder bot.molt.<profile> bei Verwendung von --profile).

# Gateway neu starten
launchctl kickstart -k gui/$UID/bot.molt.gateway

# Gateway stoppen
launchctl bootout gui/$UID/bot.molt.gateway

Wenn der LaunchAgent nicht installiert ist, aktivieren Sie ihn über die App oder führen Sie aus:

clawdbot gateway install

Knoten-Fähigkeiten (macOS)

Die macOS-App präsentiert sich als Knoten mit diesen Fähigkeiten:

KategorieBefehle
Canvascanvas.present, canvas.navigate, canvas.eval, canvas.snapshot
Kameracamera.snap, camera.clip
Bildschirmscreen.record
Systemsystem.run, system.notify

Der Knoten meldet eine Berechtigungskarte, damit Agenten entscheiden können, was erlaubt ist.

Ausführungsgenehmigungen (system.run)

system.run wird durch Ausführungsgenehmigungen in der macOS-App gesteuert (Einstellungen → Ausführungsgenehmigungen).

Konfiguration gespeichert in:

~/.clawdbot/exec-approvals.json

Beispielkonfiguration:

{
  "version": 1,
  "defaults": {
    "security": "deny",
    "ask": "on-miss"
  },
  "agents": {
    "main": {
      "security": "allowlist",
      "ask": "on-miss",
      "allowlist": [{"pattern": "/opt/homebrew/bin/rg"}]
    }
  }
}

Hinweise:

  • Whitelist-Einträge sind Glob-Muster für aufgelöste Binärpfade
  • Die Auswahl von "Immer erlauben" im Prompt fügt diesen Befehl zur Whitelist hinzu

Die App registriert das URL-Schema clawdbot:// für lokale Aktionen.

clawdbot://agent

Löst eine Gateway-Agent-Anfrage aus:

open 'clawdbot://agent?message=Hello%20from%20deep%20link'

Abfrageparameter:

ParameterBeschreibung
messageErforderlich - die zu sendende Nachricht
sessionKeyOptional - Sitzungskennung
thinkingOptional - Denkmodus aktivieren
deliver / to / channelOptional - Lieferziel
timeoutSecondsOptional - Anfrage-Timeout
keyOptional - Schlüssel für unbeaufsichtigten Modus

Sicherheit: Ohne key fordert die App eine Bestätigung an.

Onboarding-Ablauf

  1. Installieren und starten Sie Clawdbot.app
  2. Vervollständigen Sie die Berechtigungs-Checkliste (TCC-Anfragen)
  3. Stellen Sie sicher, dass der lokale Modus aktiv ist und das Gateway läuft
  4. Installieren Sie das CLI, wenn Sie Terminal-Zugriff wünschen

Build- und Entwicklungs-Workflow

cd apps/macos && swift build
swift run Clawdbot  # oder verwenden Sie Xcode

# App verpacken
scripts/package-mac-app.sh

Gateway-Konnektivität debuggen

Verwenden Sie das Debug-CLI, um den Gateway-WebSocket-Handshake zu testen:

cd apps/macos
swift run clawdbot-mac connect --json
swift run clawdbot-mac discover --timeout 3000 --json

Verbindungsoptionen:

OptionBeschreibung
--url <ws://host:port>Konfiguration überschreiben
--mode <local|remote>Aus Konfiguration auflösen
--probeNeue Gesundheitsprüfung erzwingen
--timeout <ms>Anfrage-Timeout (Standard: 15000)
--jsonStrukturierte Ausgabe

Remote-Verbindung (SSH-Tunnel)

Für Remote-Gateway-Zugriff:

# Steuerungs-Tunnel (Gateway-WebSocket-Port)
ssh -N -L 18789:127.0.0.1:18789 user@host

Nächste Schritte