Zum Inhalt springen

Agent-Push einrichten

Der Posteingang wird von duckterm-hookd gespeist. Führen Sie einen Plattformbefehl neben Ihren Agents aus und scannen Sie den Pairing-QR-Code in DuckTerm; danach werden Hooks eingerichtet und der Dienst gestartet.

Voraussetzungen

  • DuckTerm auf Ihrem Smartphone oder Tablet (auf Apple-Geräten iOS / iPadOS 17+)
  • Ein Rechner mit macOS, Windows 10+ oder Linux, auf dem Claude Code / Codex / Gemini CLI / andere Agents laufen
  • Homebrew unter macOS; PowerShell 5.1+ unter Windows; curl und systemd unter Linux
  1. 1

    Agent-Benachrichtigungen in DuckTerm öffnen

    DuckTerm installieren oder öffnen und Einstellungen → Agent-Benachrichtigungen aufrufen. Pair-Token oder Konto-ID müssen nicht kopiert werden.

    DuckTerm vor dem Pairing installieren

    Der QR-Scanner befindet sich unter Einstellungen → Agent-Benachrichtigungen. Installieren oder öffnen Sie DuckTerm, bevor Sie den Host-Befehl ausführen.

  2. 2

    Einen Befehl ausführen und QR-Code scannen

    Den passenden Plattformbefehl ausführen. Er installiert hookd samt lokaler Weboberfläche und zeigt einen Pairing-QR-Code. Nach dem Scan richtet DuckTerm unterstützte Agent-Hooks ein und startet den Hintergrunddienst.

    Dies sind vollständige Befehle. Das Paket enthält die lokale Weboberfläche und zeigt den Pairing-QR-Code, ohne mobile Zugangsdaten in der Shell-Historie abzulegen.

    macOS

    Homebrew · Apple Silicon & Intel
    hookd setup
    brew install ducksee/tap/duckterm-hookd && \
    "$(brew --prefix duckterm-hookd)/bin/duckterm-hookd" setup --qr

    Windows

    Natives PowerShell / CMD · Windows 10 / 11 · x64 / arm64
    PowerShell
    irm https://raw.githubusercontent.com/ducksee/duckterm-hookd-releases/main/install.ps1 | iex
    Command Prompt
    curl.exe -fsSL https://raw.githubusercontent.com/ducksee/duckterm-hookd-releases/main/install.cmd -o install.cmd && install.cmd

    Linux

    Ubuntu, Debian & gängige systemd-Distributionen · arm64 / x86_64
    hookd setup
    curl -fsSL https://raw.githubusercontent.com/ducksee/duckterm-hookd-releases/main/install.sh \
      | DUCKTERM_PAIR_QR=1 sh

    Windows WSL

    Ubuntu unter Windows · WSL1 / WSL2 · verwalteter Dienst
    hookd setup
    curl -fsSL https://raw.githubusercontent.com/ducksee/duckterm-hookd-releases/main/install.sh \
      | DUCKTERM_PAIR_QR=1 sh
  3. 3

    Prüfen

    duckterm-hookd status ausführen und danach unter Einstellungen → Agent-Benachrichtigungen den lokalen sowie den Plattform-Push testen. Spätere Upgrades und Dienstneustarts behalten diese Kopplung bei.

    Details anzeigen
    $ duckterm-hookd status
    DuckTerm Agent connection · vX.Y.Z
    [ok] Connected to DuckTerm: <this host>
    [ok] Background service is running
    [ok] Cloud connection is online
    [ok] Membership: Pro
    [ok] Coding agents connected: Claude Code, Codex
    
    # End-to-end Hookd → cloud → APN / Inbox test
    $ duckterm-hookd test-push --note "Setup verification"
    test push accepted by local Hookd
    source=<this host>
    time=<current RFC3339 time>
    cwd=<current directory>
    Cloud/APN delivery is asynchronous; verify it on the device or in local send records.

    Senden Sie danach unter Einstellungen → Agent-Benachrichtigungen → Prüfen sowohl einen lokalen Test als auch einen Plattform-Push-Test. Kommen beide am Smartphone an, ist die Einrichtung abgeschlossen.

  4. 4

    Hookd aktualisieren oder entfernen

    Aktualisieren Sie hookd und die Weboberfläche, trennen Sie Agent-Hooks oder entfernen Sie den Homebrew-Dienst vollständig, wenn DuckTerm auf diesem Host nicht mehr benötigt wird.

    Details anzeigen
    # Homebrew / native Windows: verify, upgrade, and restart Hookd
    duckterm-hookd upgrade
    
    # Linux / WSL: upgrade binary, bundled UI, and service
    curl -fsSL https://raw.githubusercontent.com/ducksee/duckterm-hookd-releases/main/install.sh | sh
    
    # Upgrade only the independently versioned Web UI
    duckterm-hookd ui upgrade
    
    # Disconnect Agent hooks; keep the daemon installed
    duckterm-hookd hook uninstall
    
    # Homebrew: remove the service and binary completely
    brew services stop duckterm-hookd && brew uninstall duckterm-hookd

    duckterm-hookd hook uninstall entfernt nur DuckTerm-Einträge aus unterstützten Agent-Konfigurationen. Daemon, Kopplung und Hooks von Drittanbietern bleiben erhalten.

  5. 5

    LAN Direct und Host-Firewall

    Für direkte Verbindungen per LAN oder VPN lauscht hookd auf TCP 11434 an allen Schnittstellen (0.0.0.0 / [::]). Das ist keine Freigabe ins öffentliche Internet: kein Router-Portforwarding einrichten. Jede Verbindung benötigt weiterhin den DuckTerm-Pairing-Schlüssel.

    Details anzeigen

    Windows (nativ)

    Setup fügt das Installationsverzeichnis zum Benutzer-PATH hinzu. In einem neuen Terminal funktionieren duckterm-hookd und der kurze Alias dhook. Eine TCP-Portregel gilt für alle Netzwerkprofile. Falls erhöhte Rechte nötig sind, in einer Administrator-PowerShell ausführen:

    duckterm-hookd firewall install
    duckterm-hookd firewall status

    macOS

    Homebrew installiert duckterm-hookd und den kurzen Alias dhook. Beim ersten Firewall-Dialog „Erlauben“ wählen. Wurde zuvor abgelehnt, erlauben diese Befehle nur die per Homebrew installierte Hookd-Datei:

    sudo /usr/libexec/ApplicationFirewall/socketfilterfw --add \
      "$(brew --prefix duckterm-hookd)/bin/duckterm-hookd"
    sudo /usr/libexec/ApplicationFirewall/socketfilterfw --unblockapp \
      "$(brew --prefix duckterm-hookd)/bin/duckterm-hookd"

    Linux / WSL

    Das Installationsskript legt duckterm-hookd und den kurzen Alias dhook in /usr/local/bin ab. Bei aktivem UFW TCP 11434 erlauben. Kein öffentliches Router-Portforwarding einrichten:

    sudo ufw allow 11434/tcp
    duckterm-hookd firewall status
  6. 6

    Public Direct

    Optional · fortgeschritten

    hookd kann unter 127.0.0.1:11435 einen reinen Loopback-Eingang öffnen, den ein selbst betriebener HTTPS/WSS-Tunnel veröffentlicht — Cloudflare Tunnel, frp oder ein Reverse Proxy. Das LAN-Adressgate wird dabei nicht geweitet, und Port 20080 des Web-Control-Panels ist nie enthalten; routeSecret dient der Scanner-Isolation und ist kein Anwendungsschlüssel, die Pairing-Authentifizierung bleibt unverändert. Nach jeder Änderung hookd neu starten.

    Details anzeigen
    # 1 · Enable the loopback ingress (default port 11435) and register the origin
    duckterm-hookd access enable
    duckterm-hookd access add https://hookd.example.com
    duckterm-hookd access list
    
    # 2a · Cloudflare Tunnel — shortest form
    cloudflared tunnel --url http://127.0.0.1:11435
    
    # 2b · frp — shortest frpc.toml
    # serverAddr = "frps.example.com"
    # serverPort = 7000
    # [[proxies]]
    # name = "hookd"
    # type = "https"
    # localIP = "127.0.0.1"
    # localPort = 11435
    # customDomains = ["hookd.example.com"]
    
    # 3 · Public Direct changes only take effect after a restart
    duckterm-hookd restart

Hinweise je Agent

Die hookd-Installation verbindet jeden unterstützten Agent. Einige haben zusätzlich einen Schritt beim ersten Start, der darüber entscheidet, ob Ereignisse überhaupt auf dem Telefon ankommen — die folgenden gehören dazu. Danach den Agent in tmux (oder Herdr) starten und eine Nachricht senden; Live Preview braucht eine Sitzung, an die es sich hängen kann.

OpenCode

OpenCode braucht keine Bestätigung: Der Installer schreibt ein DuckTerm-Plugin in sein Plugin-Verzeichnis. Wurde hookd installiert, bevor OpenCode auf diesem Host existierte, den Installer erneut ausführen, damit das Plugin landet.

Ausprobieren
cd tmp
tmux new -s op-prod-main
opencode

Eingeben Welches Modell bist du? Dann das Telefon prüfen: Die Nachricht sollte im Inbox ankommen und Live Preview die Sitzung in Echtzeit zeigen.

Codex

Codex fragt beim ersten Start, ob Hooks vertraut werden soll. Wählen Sie, allen zu vertrauen — ein nicht vertrauter Hook wird nie ausgeführt, hookd hat also nichts weiterzuleiten und der Inbox bleibt leer.

Ausprobieren
cd tmp
tmux new -s cx-prod-main
codex

Eingeben Welches Modell bist du? Dann das Telefon prüfen: Die Nachricht sollte im Inbox ankommen und Live Preview die Sitzung in Echtzeit zeigen.

Claude Code

Claude Code liest Hooks aus ~/.claude/settings.json, das der Installer schreibt. Claude Code liest die Datei nur beim Start und markiert Hook-Änderungen zur Bestätigung — starten Sie eine bereits laufende Sitzung also neu und bestätigen Sie die Änderung, bevor Sie Ereignisse erwarten.

Ausprobieren
cd tmp
tmux new -s cc-prod-main
claude

Eingeben Welches Modell bist du? Dann das Telefon prüfen: Die Nachricht sollte im Inbox ankommen und Live Preview die Sitzung in Echtzeit zeigen.

DeepSeek Harness

DeepSeek Harness erreicht hookd über eine Hooks-Bridge außerhalb des Baums, die hookd für Sie installiert. Schlägt das fehl, zeigt die dsh-Weboberfläche den Fehler — installieren Sie die Bridge selbst mit dsh plugin add @deepseek-ai/dsh-hooks-claude-code, führen Sie den hookd-Installer erneut aus und starten Sie danach die dsh-Weboberfläche neu. Erst nach diesem Neustart greift die Bridge.

Ausprobieren
cd tmp
tmux new -s dsh-prod-main
dsh

Eingeben Welches Modell bist du? Dann das Telefon prüfen: Die Nachricht sollte im Inbox ankommen und Live Preview die Sitzung in Echtzeit zeigen.

Welche Agents angebunden werden

hookd verifiziert Workflows für Claude Code, Codex, Grok Build, Antigravity, Cursor, OpenCode, Pi, Devin, Droid, Qoder, Amp, Gemini CLI, Kimi Code und DeepSeek Harness. Die neun Entscheidungsschemata in Vertrag v1 bestehen aus sieben nativ strukturierten Adaptern sowie geschützten Einmalbestätigungs-Hook-Adaptern für Antigravity und Grok.

Claude Code Codex Grok Build Antigravity Cursor OpenCode Pi Devin Droid Qoder Amp Gemini DeepSeek Harness Kimi Code

Was Ihren Rechner verlässt

hookd erstellt Mitteilungsvorschauen aus Agent-Hook-Ereignissen und Transkripten; Text oder Code aus Prompts und Ausgaben kann darin erscheinen. Freigaben, Antworten sowie Live Preview- oder Bild-Fallback können ebenfalls den Relay-Dienst durchlaufen, während der Terminalverkehr direkt bleibt. SSH-Zugangsdaten werden niemals an unsere Server gesendet. Angaben zu Speicherung und Aufbewahrung stehen in der Datenschutzerklärung.

Datenschutzerklärung

Probleme?

Prüfen Sie die häufigen Probleme auf der Support-Seite oder schreiben Sie uns — wir antworten schnell.