Windows(ネイティブ)
setup はインストール先をユーザー PATH に追加します。新しいターミナルで duckterm-hookd、または短い別名 dhook を使えます。TCP ポート規則はすべてのネットワークプロファイルに適用されます。管理者権限が必要な場合は、管理者 PowerShell で実行してください:
duckterm-hookd firewall install
duckterm-hookd firewall status 受信トレイは duckterm-hookd で動作します。Agent マシンでプラットフォーム別コマンドを実行し、DuckTerm で 1 回限りの QR を読み取ると、Hook 設定とサービス起動まで完了します。
DuckTerm をインストールまたは開き、「設定 → Agent 通知」へ進みます。トークンやアカウント ID のコピーは不要です。
QR スキャナーは「設定 → Agent 通知」にあります。下のホストコマンドを実行する前に DuckTerm をインストールまたは開いてください。
プラットフォーム用コマンドを実行します。ローカル Web UI 付きの hookd がインストールされ、1 回限りの QR が表示されます。DuckTerm で読み取ると対応 Agent の Hook 設定とサービス起動まで進みます。
以下はそのまま実行できる完全なコマンドです。パッケージにはローカル Web UI が含まれ、モバイル認証情報をシェル履歴へ残さず QR を表示します。
brew install ducksee/tap/duckterm-hookd && \
"$(brew --prefix duckterm-hookd)/bin/duckterm-hookd" setup --qr irm https://raw.githubusercontent.com/ducksee/duckterm-hookd-releases/main/install.ps1 | iex curl.exe -fsSL https://raw.githubusercontent.com/ducksee/duckterm-hookd-releases/main/install.cmd -o install.cmd && install.cmd curl -fsSL https://raw.githubusercontent.com/ducksee/duckterm-hookd-releases/main/install.sh \
| DUCKTERM_PAIR_QR=1 sh curl -fsSL https://raw.githubusercontent.com/ducksee/duckterm-hookd-releases/main/install.sh \
| DUCKTERM_PAIR_QR=1 sh 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 通知 → 確認」から、ローカルテストとプラットフォームプッシュのテストを送信します。両方がスマートフォンに届けば設定完了です。
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 は保持されます。
LAN または VPN からスマートフォンが直接接続できるよう、hookd は全インターフェースの TCP 11434(0.0.0.0 / [::])を待ち受けます。これはインターネットへの公開ではありません。ルーターのポート転送は不要で、接続には DuckTerm のペアリングキーが必要です。
setup はインストール先をユーザー PATH に追加します。新しいターミナルで duckterm-hookd、または短い別名 dhook を使えます。TCP ポート規則はすべてのネットワークプロファイルに適用されます。管理者権限が必要な場合は、管理者 PowerShell で実行してください:
duckterm-hookd firewall install
duckterm-hookd firewall status 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" インストーラーは duckterm-hookd と短い別名 dhook を /usr/local/bin に配置します。UFW を使う場合は TCP 11434 を許可します。ルーターで公開ポート転送を設定しないでください:
sudo ufw allow 11434/tcp
duckterm-hookd firewall status 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 hookd を入れれば対応 Agent はすべて接続されます。一部の Agent には初回起動時の操作があり、イベントが実際にスマートフォンへ届くかどうかを左右します(以下がその Agent です)。その後は Agent を tmux(または Herdr)の中で起動して 1 通送ってください。Live Preview はアタッチ先のセッションを必要とします。
OpenCode に確認手順はありません。インストーラーが DuckTerm プラグインをプラグインディレクトリへ書き込みます。ホストに OpenCode が無い状態で hookd を入れた場合は、インストーラーを再実行するとプラグインが配置されます。
cd tmp
tmux new -s op-prod-main
opencode 入力 あなたはどのモデルですか そのうえでスマートフォンを確認します。メッセージが Inbox に届き、Live Preview でそのセッションがリアルタイムに見えるはずです。
Codex は初回起動時に hook を信頼するか尋ねます。すべて信頼を選んでください。信頼されていない hook は実行されないため、hookd に転送するものが残らず、Inbox は空のままになります。
cd tmp
tmux new -s cx-prod-main
codex 入力 あなたはどのモデルですか そのうえでスマートフォンを確認します。メッセージが Inbox に届き、Live Preview でそのセッションがリアルタイムに見えるはずです。
Claude Code は ~/.claude/settings.json から hook を読み込み、このファイルはインストーラーが書き込みます。Claude Code は起動時にのみ読み込み、hook の変更を確認対象として提示します。すでに動いているセッションは一度再起動し、確認を求められたら承認してからイベントを待ってください。
cd tmp
tmux new -s cc-prod-main
claude 入力 あなたはどのモデルですか そのうえでスマートフォンを確認します。メッセージが Inbox に届き、Live Preview でそのセッションがリアルタイムに見えるはずです。
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 でそのセッションがリアルタイムに見えるはずです。
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
Amp
Gemini
DeepSeek Harness
Kimi Code hookd は Agent の Hook イベントとトランスクリプトから通知プレビューを生成します。プロンプトや出力内の文章・コード断片がプレビューに含まれる場合があります。承認、返信、Live Preview または画像のフォールバックも中継を通る場合がありますが、ターミナル通信は直接のままです。SSH 認証情報が当社のサーバーへ送信されることはありません。保存と保持期間の詳細はプライバシーポリシーをご覧ください。
プライバシーポリシー