本文へスキップ

Agent プッシュ設定

受信トレイは duckterm-hookd で動作します。Agent マシンでプラットフォーム別コマンドを実行し、DuckTerm で 1 回限りの QR を読み取ると、Hook 設定とサービス起動まで完了します。

始める前に

  • スマートフォンまたはタブレットに DuckTerm をインストール済み(Apple デバイスは iOS / iPadOS 17+)
  • Claude Code / Codex / Gemini CLI / その他の Agent が動く macOS、Windows 10+、または Linux マシン
  • macOS は Homebrew、Windows は PowerShell 5.1+、Linux は curl と systemd
  1. 1

    DuckTerm で Agent 通知を開く

    DuckTerm をインストールまたは開き、「設定 → Agent 通知」へ進みます。トークンやアカウント ID のコピーは不要です。

    ペアリング前に DuckTerm をインストール

    QR スキャナーは「設定 → Agent 通知」にあります。下のホストコマンドを実行する前に DuckTerm をインストールまたは開いてください。

  2. 2

    コマンドを実行して QR を読み取る

    プラットフォーム用コマンドを実行します。ローカル Web UI 付きの hookd がインストールされ、1 回限りの QR が表示されます。DuckTerm で読み取ると対応 Agent の Hook 設定とサービス起動まで進みます。

    以下はそのまま実行できる完全なコマンドです。パッケージにはローカル Web UI が含まれ、モバイル認証情報をシェル履歴へ残さず QR を表示します。

    macOS

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

    Windows

    ネイティブ 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 など主要な systemd ディストリビューション · 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

    Windows 内の Ubuntu · WSL1 / WSL2 · 自動サービス化
    hookd setup
    curl -fsSL https://raw.githubusercontent.com/ducksee/duckterm-hookd-releases/main/install.sh \
      | DUCKTERM_PAIR_QR=1 sh
  3. 3

    確認

    duckterm-hookd status を実行し、「設定 → Agent 通知」からローカルプッシュとプラットフォームプッシュをテストします。以後のアップグレードやサービス再起動でも、このペアリングは保持されます。

    詳細を表示
    $ 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.

    続いて「設定 → Agent 通知 → 確認」から、ローカルテストとプラットフォームプッシュのテストを送信します。両方がスマートフォンに届けば設定完了です。

  4. 4

    Hookd の更新または削除

    hookd と Web UI を更新し、Agent Hook を解除するか、このホストで DuckTerm が不要になった場合は Homebrew サービスを完全に削除します。

    詳細を表示
    # 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 は対応 Agent の設定から DuckTerm の項目だけを削除します。デーモン、ペアリング、他社の Hook は保持されます。

  5. 5

    LAN Direct とホストのファイアウォール

    LAN または VPN からスマートフォンが直接接続できるよう、hookd は全インターフェースの TCP 11434(0.0.0.0 / [::])を待ち受けます。これはインターネットへの公開ではありません。ルーターのポート転送は不要で、接続には DuckTerm のペアリングキーが必要です。

    詳細を表示

    Windows(ネイティブ)

    setup はインストール先をユーザー PATH に追加します。新しいターミナルで duckterm-hookd、または短い別名 dhook を使えます。TCP ポート規則はすべてのネットワークプロファイルに適用されます。管理者権限が必要な場合は、管理者 PowerShell で実行してください:

    duckterm-hookd firewall install
    duckterm-hookd firewall status

    macOS

    Homebrew は duckterm-hookd と短い別名 dhook をインストールします。最初のファイアウォール確認で「許可」を選びます。以前拒否した場合は、Homebrew 版 hookd だけを許可します:

    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

    インストーラーは duckterm-hookd と短い別名 dhook/usr/local/bin に配置します。UFW を使う場合は TCP 11434 を許可します。ルーターで公開ポート転送を設定しないでください:

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

    Public Direct

    任意 · 上級

    hookd は 127.0.0.1:11435 にループバック専用の入口を開き、自分で運用する HTTPS/WSS トンネル(Cloudflare Tunnel、frp、リバースプロキシ)から公開できます。LAN アドレスゲートを緩めることはなく、Web コントロールパネルの 20080 番ポートを含めることもありません。routeSecret はスキャナー隔離用であり、アプリケーションの鍵ではないため、ペアリング認証は変わりません。変更後は hookd を再起動してください。

    詳細を表示
    # 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

Agent ごとの接続メモ

hookd を入れれば対応 Agent はすべて接続されます。一部の Agent には初回起動時の操作があり、イベントが実際にスマートフォンへ届くかどうかを左右します(以下がその Agent です)。その後は Agent を tmux(または Herdr)の中で起動して 1 通送ってください。Live Preview はアタッチ先のセッションを必要とします。

OpenCode

OpenCode に確認手順はありません。インストーラーが DuckTerm プラグインをプラグインディレクトリへ書き込みます。ホストに OpenCode が無い状態で hookd を入れた場合は、インストーラーを再実行するとプラグインが配置されます。

試す
cd tmp
tmux new -s op-prod-main
opencode

入力 あなたはどのモデルですか そのうえでスマートフォンを確認します。メッセージが Inbox に届き、Live Preview でそのセッションがリアルタイムに見えるはずです。

Codex

Codex は初回起動時に hook を信頼するか尋ねます。すべて信頼を選んでください。信頼されていない hook は実行されないため、hookd に転送するものが残らず、Inbox は空のままになります。

試す
cd tmp
tmux new -s cx-prod-main
codex

入力 あなたはどのモデルですか そのうえでスマートフォンを確認します。メッセージが Inbox に届き、Live Preview でそのセッションがリアルタイムに見えるはずです。

Claude Code

Claude Code は ~/.claude/settings.json から hook を読み込み、このファイルはインストーラーが書き込みます。Claude Code は起動時にのみ読み込み、hook の変更を確認対象として提示します。すでに動いているセッションは一度再起動し、確認を求められたら承認してからイベントを待ってください。

試す
cd tmp
tmux new -s cc-prod-main
claude

入力 あなたはどのモデルですか そのうえでスマートフォンを確認します。メッセージが Inbox に届き、Live Preview でそのセッションがリアルタイムに見えるはずです。

DeepSeek Harness

DeepSeek Harness はツリー外の hooks bridge 経由で hookd に接続し、この bridge は hookd が代わりに導入します。失敗した場合は dsh の Web UI にエラーが表示されます。dsh plugin add @deepseek-ai/dsh-hooks-claude-code を自分で実行し、hookd のインストーラーを再実行してから dsh の Web UI を再起動してください。bridge は再起動後に有効になります。

試す
cd tmp
tmux new -s dsh-prod-main
dsh

入力 あなたはどのモデルですか そのうえでスマートフォンを確認します。メッセージが Inbox に届き、Live Preview でそのセッションがリアルタイムに見えるはずです。

Hook の対象

hookd は Claude Code、Codex、Grok Build、Antigravity、Cursor、OpenCode、Pi、Devin、Droid、Qoder、Amp、Gemini CLI、Kimi Code、DeepSeek Harness の 14 種のワークフローを検証しています。Contract v1 の 9 つの決定スキーマは、7 つのネイティブ構造化アダプターと、Antigravity/Grok 向けの保護されたワンタップ Hook アダプターで構成されます。

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

マシンの外へ送られる情報

hookd は Agent の Hook イベントとトランスクリプトから通知プレビューを生成します。プロンプトや出力内の文章・コード断片がプレビューに含まれる場合があります。承認、返信、Live Preview または画像のフォールバックも中継を通る場合がありますが、ターミナル通信は直接のままです。SSH 認証情報が当社のサーバーへ送信されることはありません。保存と保持期間の詳細はプライバシーポリシーをご覧ください。

プライバシーポリシー

問題が起きたら

サポートページのよくある問題を確認するか、メールでお問い合わせください。迅速に対応します。