04/Documentation
ターミナル
CollieをHerdr、tmux、zellij、tuios、Ternに向ける方法、各ツールが応答可能な内容、agent beaconについて。tmux、zellij、tuios、Ternへの対応は実験的機能であり、バグ報告を歓迎します
Collieがセッションを読み取る対象のターミナルは、Herdr、tmux、zellij、tuios、Ternです。Collieはインストールごとに1つのターミナルを駆動し、デフォルトはHerdrです。このページでは、Collieをこれらに向ける方法、各ターミナルが応答できる内容、ペイン内のエージェント検出にCollieが使用するビーコンについて説明します。画面を持たない常駐エージェントはターミナルではなく、durable agentで扱います。
tmuxとzellijは最上位グループをセッションと呼びます。Collieはこれをスペースとして表示します。
Collieをマルチプレクサに向ける
COLLIE_MUX でバックエンドを指定し、エンドポイントを設定して再起動し、beacon フックをインストールします。
実験的。 tmux と zellij(1.0 以降)は、単一ホスト上の tmux 3.6b および zellij 0.44.2 でテストされました。tuios(1.15.0 以降)は tuios 0.8.4 でテストされました。Tern は、メンテナが実行できないクローズドベータである tern 0.4.5 上でコントリビューターによって検証されました。Herdr がデフォルトであり、主要なサポート対象バックエンドです。テスター募集: マルチプレクサ、バージョン、OS、発生した事象を記載し、tmux: …、zellij: …、tuios: …、またはtern: …というタイトルで AltanS/collie に Issue を作成してください。
コマンドラインでマルチプレクサを指定します:
COLLIE_MUX=herdr collie start
COLLIE_MUX=tmux collie start
COLLIE_MUX=zellij collie start
COLLIE_MUX=tuios collie start
COLLIE_MUX=tern collie startデフォルトのターゲットと異なる場合は、エンドポイントを設定します:
# in your .env: ~/.config/collie/.env, or Herdr's plugin config dir on a Herdr
# install. See Configure for the full precedence.
COLLIE_MUX=tmux
COLLIE_MUX_ENDPOINT_TMUX=/run/user/1000/collie-tmux.sock
COLLIE_MUX_ENDPOINT_ZELLIJ=collie-zellij
# only if the binary sits somewhere unusual
# COLLIE_TMUX_BIN=/usr/bin/tmux
# COLLIE_ZELLIJ_BIN=/home/you/.local/bin/zellij| 変数 | 値 | 意味 |
|---|---|---|
COLLIE_MUX | herdr、tern、tmux、zellij、または tuios | このインストール環境が駆動するターミナル |
COLLIE_MUX_ENDPOINT_TMUX | /run/user/1000/collie-tmux.sock | ソケットの PATH(tmux -S)。/ が含まれるため |
COLLIE_MUX_ENDPOINT_TMUX | work | ソケットの NAME(tmux -L work)。/ なし |
COLLIE_MUX_ENDPOINT_TMUX | 空 | tmux 自身のデフォルトサーバー |
COLLIE_MUX_ENDPOINT_ZELLIJ | collie-zellij | セッションの NAME(パスではない) |
COLLIE_MUX_ENDPOINT_ZELLIJ | 空 | 実行中の単一セッション |
COLLIE_MUX_ENDPOINT_TUIOS | /run/user/1000/tuios/tuios.sock | tuiosデーモンのソケットPATH |
COLLIE_MUX_ENDPOINT_TUIOS | 空 | $XDG_RUNTIME_DIR/tuios/tuios.sock、それ以外は/tmp/tuios-<uid>/tuios.sock |
COLLIE_MUX_ENDPOINT_TERN | /run/user/1000/tern/daemon.sock | Tern デーモンのソケット PATH |
COLLIE_MUX_ENDPOINT_TERN | 空 | $XDG_RUNTIME_DIR/tern/daemon.sock、それ以外は/tmp/tern-<uid>/daemon.sock |
COLLIE_TERN_BIN | /home/you/.local/opt/tern/tern | tern が通常とは異なる場所にある場合のみ |
COLLIE_TMUX_BIN | /usr/bin/tmux | tmux が通常とは異なる場所にある場合のみ |
COLLIE_ZELLIJ_BIN | /home/you/.local/bin/zellij | zellij が通常とは異なる場所にある場合のみ |
Herdr にはここに対応するエンドポイント変数がありません。そのソケットは HERDR_SOCKET_PATH であり、COLLIE_MUX_ENDPOINT_ 名ではありません。
そのソケットはローカル専用です。Herdrに保存されたマシンはcrewメンバーではなく、別マシンのペインをスマートフォンに届けるのはCollie crewのみです。各リストの内容と両者の違いについては、Herdrのマシンとcrewを参照してください。
その後、再起動し、ビーコンフックをインストールして、スマートフォンから認識できる場所でエージェントを起動します:
collie restart # after every .env edit
collie hooks install claude # once per host; tmux, zellij and tern need it, Herdr gets hook edges
# open a window or a tab for the agent
tmux -S /run/user/1000/collie-tmux.sock new-window -n claude
zellij --session collie-zellij action new-tab --name claude
claude # in that window or tab上記コマンドの処理内容
コマンドラインで COLLIE_MUX を指定すると、その実行時およびそれ以降のすべての実行時の選択が設定されます。start は .env に名前を書き込むため、後で collie start を実行しても同じマルチプレクサを操作します。
COLLIE_MUX が未設定の場合、start は Herdr、tmux、zellij を検出し、バックエンドの選択を促して、その回答を .env に書き込みます。設定のリファレンス全体については MUX_CONTRACT.md → Collie からマルチプレクサを指定する を参照してください。
collie hooks install claude は、tmux、zellij、tern で必要となる Collie の beacon フックをインストールします。これらはペインを汎用シェルとして公開するため、フックがない場合、すべてのペインは bash として表示されます。
このコマンドは~/.claude/settings.jsonを更新し、プロジェクト設定(詳細は以下を参照)には手を加えません。Claude Code 2.1.301は実行中にフックを再読み込みします。これより古いバージョンのClaudeは再起動してください。
注。 このモードではHerdrは不要です。COLLIE_MUX=tmuxまたはCOLLIE_MUX=zellijを指定すると、ブリッジは選択されたアダプターのみを読み込み、Herdrのソケットを無視します。複数のHerdr設定ルートにまたがるHerdrセッションの検出は無効化されます(bridge/index.ts)。Herdrをインストールまたは実行しておく必要はなく、.envはプラグイン設定ディレクトリではなく~/.config/collie/に置かれます。
tmuxに関する注意事項
COLLIE_TMUX_BINは通常、未設定のままにします。Collieは標準パスのリストを確認し、バックグラウンドサービスやHerdrのアクションがログインシェルと共有しないPATHは読み取りません。
注。 ソケットパスは短く保ってください。約 100 文字を超える Unix ドメインソケットは接続に失敗し、tmux はerror connecting to … (File name too long)を返します。深いディレクトリパスではなく、/run/user/<uid>/または/tmpを使用してください。
window-size を manual に設定した 3.7 未満の tmux バージョンでは、ウィンドウを作成するとサーバーがクラッシュします。Collie はこの状態でのウィンドウ作成をブロックし、tmux set -g window-size latest の実行を促します。テスト済みのバージョン一覧は 要件 に記載されています。
automatic-renameが有効な場合、tmuxは実行中のプログラム名に合わせてウィンドウ名を変更します。画面がbashというタブで埋め尽くされても何も伝わらないため、Collieは代わりにそのウィンドウのアクティブなペインの最後のフォルダを表示します。自身で命名したウィンドウはその名前を保持します。
zellijに関する注意事項
利用中のディストリビューションに zellij パッケージがない場合は、zellij の GitHub リリース からバイナリをダウンロードして PATH に配置してください。
エンドポイントを空のままにすると、実行中の単一セッションがデフォルトになります。セッションが存在しないか複数存在する場合、Collie は 1 つを選択せずにエラーで停止します。名前付きセッションが終了した場合、Collie はアクティブなセッションに切り替えるのではなく、そのセッション名を報告します。
Zellij がセッションを検出するには XDG_RUNTIME_DIR が必要です。Collie がすべてのセッションを終了済みとして報告する場合は、systemd サービスにこの環境変数が含まれていることを確認してください(コントラクト)。
Zellij セッションは、最初のターミナルとは独立して維持されます。zellij -s collie-zellij でセッションを作成し、Ctrl o d でデタッチします。ヘッドレスホストでは、zellij attach --create-background collie-zellij でデタッチされたセッションを直接開始できます(zellij 0.44.2 で検証済み)。
注。 Collie はアクティブなセッションを管理しますが、セッションの作成や再起動は行いません。
Zellij 0.44 以降は各ペインのフォルダを報告するため、zellij のペインには「Files」ボタンが表示され、ブランチも表示されます。それより古い zellij はフォルダを報告しないため、ペインにはどちらも表示されません。
tern に関する注意事項
Collie で Tern を指定する:
COLLIE_MUX=tern collie start
collie hooks install claude # beacon hooks for agent detectionCollie は Tern のセッションをスペース、タブをタブ、ブロックをペインとして読み取ります。エンドポイントは Tern デーモンのソケットであり、デフォルトは $XDG_RUNTIME_DIR/tern/daemon.sock(または /tmp/tern-<uid>/daemon.sock)です。Tern ペイン内では、$TERN_PANE がブロックを識別し、$TERN_PANE_SOCKET がデーモンソケットを指します。
Tern は tern events 経由でライフサイクルイベントを報告し、トポロジ変更の即時通知を可能にします。
「Show in terminal」を実行すると、Ternウィンドウが該当ペインのTernセッションとタブに移動し、そのブロックにフォーカスが当たります。Collieが作成したタブやTernセッションはバックグラウンドで開き、ウィンドウは移動しません。
Collie は tuios を自動検出しないのと同様に、Tern も自動検出しません。COLLIE_MUX=tern で指定してください。128 KiB を超える入力テキストは、単一のコマンドライン引数として渡されるため拒否されます。
durableに関する注意事項
接続した常駐エージェントはターミナルではなく、画面も持ちません。durable agentでは、collie durable attachで常駐エージェントを接続する方法、COLLIE_MUX=durableで単一の常駐エージェントのみを駆動する従来の方法、常駐エージェントへアクセスする2つの手段、スマートフォン上で可能な操作、接続不能と表示されたときの確認事項について説明します。
tuiosに関する注意事項
tuiosはエージェントを自身でレポートするため、ビーコンフックは不要です:
COLLIE_MUX=tuios collie start
tuios integration install claude-code # once, so tuios hears the agent's hooksCollieはエージェント、その状態、および会話をtuiosデーモンから読み取ります。入力を待機しているペインはブロック中として表示され、エージェントが会話をレポートしている場合はペインの履歴が開きます。Collieがハーネスを持たないエージェントはシェルとして表示されます。
Collieは、tuiosの各セッションをスペース、各ワークスペースをタブ、各ウィンドウをペインとして表示します。ワークスペースは、ペインを保持している間タブとして表示されます。別のマシンで実行されているペインは表示されません。そのマシン上のCollieを、そのマシン自体のtuiosに向けてください。
エンドポイントはデーモンのソケットです。tuios 自体が使用するソケットを使う場合は、空のままにしてください。Collieはこれを見つけるために XDG_RUNTIME_DIR を読み取るため、サービスにその変数が設定されていることを確認してください。tuiosペイン内では、echo $TUIOS_SOCKET がパスを出力します。
Collieには tuios 0.8.3以降 が必要です。デーモンが workspace-renamed イベントを通知する必要がありますが、0.8.2では通知されません。古いデーモンの場合、Collieはブリッジを切断中として表示し、ログに更新すべき内容が出力されます。
tuiosでは一部の動作が異なります:
- 新しいタブは、最も番号の小さい空きワークスペースで開きます。tuiosセッションにはデフォルトで9つのワークスペースがあるため、Collieは10番目のタブの作成を拒絶します。
- Show in terminalは、該当ペインのtuiosセッションを表示しているすべてのターミナル(tuios-webタブを含む)を移動させます。tuiosはターミナルを別のtuiosセッションへ移動させることはできません。ペインのtuiosセッションを表示しているターミナルがない場合、Collieは拒否し、そのターミナルが表示しているtuiosセッション名を返します。
- Newページの新しいworktreeスイッチはオフのままで、Herdrが必要である旨が表示されます。
動作確認
collie doctor # the `mux` check names the multiplexer, its endpoint,
# and whether it answered (durable: the six `durable-*` checks)
# `[bridge] mux: tmux · socket /run/user/1000/collie-tmux.sock`, printed at
# startup; a multiplexer it cannot reach is one warning line more
collie logs
# the herd, as the phone is given it; reads need the pairing token
curl -s -H "Authorization: Bearer $COLLIE_TOKEN" http://127.0.0.1:8787/api/snapshot | head -c 400すべての読み取りにはペアリング済みデバイスのトークンが必要なため、この curl 呼び出しはトークンを送信します。トークンがない場合、ブリッジは 403 device not paired を返します。スクリプト用のトークンを取得するには、1.18.0 へのアップグレード を参照してください。collie doctor はホスト上でトークンを必要としません。COLLIE_DEVICE_HEADER は引き続き、書き込みと Files ビュー(デバイスをペアリングする)のみを制限します。
スマートフォンの UI を確認します。ダッシュボードに tmux ウィンドウ または zellij タブ が表示され、Claude ペインが bash ではなくエージェントとして識別されている必要があります。ペインが依然として標準シェルとして表示される場合は、以下の beacon フックのインストール手順を確認してください。
Collie は Claude 自身の設定にフックを書き込みます
$ collie hooks install claude
$ collie hooks status
would install: /home/you/collie/bin/collie beacon emit (this checkout)
/home/you/.claude/settings.json: installed (v1)tmux、zellij、Ternはペインを汎用シェルとして公開するため、エージェント側から自身を通知する必要があります。そのためには、Claude Codeの設定にCollieのbeaconフックをインストールしなければなりません。Herdr上では、同じフックがフックエッジのみを提供します。
出力は、このリポジトリの bin/collie パスを参照します。パッケージインストールでは、バージョン管理されたディレクトリではなく、インストールされたバイナリパス(~/.local/bin/collie または ~/.local/share/collie/current/bin/collie)が使用されるため、アップデート後もリンクが有効なまま維持されます。
Claude 設定変更時の動作詳細:
- グローバル の
~/.claude/settings.jsonおよびアクティブなCLAUDE_CONFIG_DIRを変更します。プロジェクトレベルの.claude/settings.jsonファイルには変更を加えません。 # collie-beacon v1のタグが付いた、タイムアウト10秒の 5つ フックを注入します。既存のフックは保持されます。hooks uninstall claudeは Collie のエントリのみを削除します。- 指定しない限り statusLine を変更しません フラグを指定しない場合、インストール処理は
statusLineを変更しません。ベルトの上のモデル名の横にあるコンテキストドットはそのまま表示されます。フックがセッションのトランスクリプトを読み取り、セッション開始時のウィンドウサイズを取得します - 5時間と7日間のウィンドウが自動的に表示されます フックも statusLine も不要です。Claude のペインが開いている間、bridge はこのマシン上の Claude ログイン情報(
~/.claude/.credentials.jsonまたは$CLAUDE_CONFIG_DIR/.credentials.json。ファイルがない Mac では Keychain)を読み取り、Claude Code の/usageと同じ呼び出しでapi.anthropic.com/api/oauth/usageに問い合わせます。問い合わせは、ペインの表示時、ターンの終了後(最大で1分に1回)、および5分ごとに行われます。ログイン情報は保存されず、更新もされず、他へ送信されることもありません。他者が読み取れるログインファイル(0600より緩い権限のもの)や、期限切れのログイン情報はスキップされ、期限切れのものは Claude Code の次回の呼び出し時に更新されます。APIキー、Bedrock、Vertex のセッションには表示するウィンドウがありません。Codex のペインも同様のスケジュールで、ログイン情報を読み取ることなく自身のセッションファイルから同じように情報を取得します。OpenCode Go と Grok は、COLLIE_ACCOUNT_WINDOWS=allまたは一覧(利用状況ウィンドウ を参照)で指定するまで無効です。COLLIE_ACCOUNT_WINDOWS=0(または[bridge] account_windows = false)はこれらすべてを無効化し、collie doctorはaccount-windows行でどれが無効かを示します - statusLine のラップは2つ目の方法です
collie hooks install claude --statuslineを指定すると、Collie は独自の statusLine もラップし、Claude Code から渡された内容からウィンドウを取得します。ログイン情報の読み取りよりもこの方法を好む場合は、COLLIE_ACCOUNT_WINDOWS=0で利用してください。コマンドはcollie beacon statusline …になり、スクリプトは以前と同様に実行され出力を表示します。Collie が statusLine を新たに追加することはなく、hooks uninstall claudeを実行すると元のコマンドに完全に戻ります。フラグなしでインストールした場合は既存のラップを維持し、現在のバイナリを参照するように更新します。不要になったラップを解除するには、collie hooks uninstall claudeを実行した後に--statuslineなしでcollie hooks install claudeを実行します。Windows では利用できません - ラップされた statusLine を変更するには、まずラップを解除します
collie hooks uninstall claudeを実行し、statusLine.commandを編集してから、再度collie hooks install claude --statuslineを実行します。ラップされたコマンドは collie バイナリをパスで指定するため、バイナリが移動すると、再インストールするまで statusLine は何も出力しません。ラップされた statusLine が古いバイナリを参照している場合、collie updateが通知します。ラッパーを手動で試すには、マルチプレクサの外(env -u HERDR_PANE_ID -u TMUX_PANE -u ZELLIJ_PANE_ID …)で実行してください。そうしないと、実行中のすべての bridge に読み取り値が書き込まれます - Claude Codeは実行中にフックを再読み込みします。 これは2.1.301に適用されます。フックエッジが届かない場合は、古いClaudeを再起動してください。
- Linux のみ。 エージェントの生存確認は
/procに依存しています。他の OS ではビーコンが送信されません。 - ビーコンはマルチプレクサごとに固有です。 これらはアクティブなバックエンドのペイン識別子とセッション識別子を記録します。
COLLIE_MUXを切り替えると既存のビーコンは無効になります。古いビーコンは消去されるまでディスク上に残り、collie doctorのbeaconsカウントに表示されます。 COLLIE_STATE_DIRを使用する場合は、エージェントのシェル環境でエクスポートしてください。collie beacon emitはこの変数を直接読み取ります。設定しない場合、ビーコンはデフォルトの状態ディレクトリに書き込まれ、ブリッジから検出できなくなります。
collie doctor には、フックの不足や移動したチェックアウトへの無効なパスを指摘する beacon-hooks-claude 診断チェックが含まれています。ランタイムの詳細については、エージェントビーコン を参照してください。
Herdr との変更点
以下の表に主な違いをまとめています。正確な仕様については MUX_CONTRACT.md を参照してください。
| Herdr | tmux | zellij | |
|---|---|---|---|
| スペース は | ワークスペース | セッション | セッションが厳密に1つのため、スマートフォン側でスペースストリップを非表示にします |
| タブ は | タブ | ウィンドウ | タブ |
| ペイン は | ペイン | ペイン | ターミナルペイン |
| ペインがエージェントを保持していると判定する主体 | Herdr 自身 | beacon、または何もなし | beacon、または何もなし |
| 通知されない変更が反映されるまでの時間 | プッシュ通知 | プッシュ通知 | スケジュールに従ってカウント(最大 12 秒) |
| "Show in terminal" | 可 | 可 | 不可の場合、zellijはリクエストを受け付けますが何も移動しません |
| タブの作成・名前変更・削除 | 可 | 可(上記の tmux クラッシュ時は作成拒否) | 可 |
| スペースの作成 | 可 | 可 | 不可の場合、作成したセッションが自身から見えなくなります |
| ペイン履歴 | Herdr 独自のペインレコードから取得 | ビーコンのセッションキーから取得 | ビーコンのセッションキーから取得 |
アクティブなビーコンがない場合、tmux、zellij、tern はペインを生のシェルとして提示し、ペインの履歴は空のコンテンツを返すのではなく、利用不可としてマークされます。
スマートフォン利用時の2つの相違点
- "N秒前に同期": このインジケーターはダッシュボードのヘッダーに表示され、データの経過時間を示します。zellij などのように、バックエンドが定期ポーリングに依存している場合のみ 表示されます(ポーリング間隔は最大12秒)。Herdr と tmux は状態変更を即座にプッシュするため、鮮度バッジは表示されません。
- "端末で表示": このペインアクションは、アクティブなホスト端末で選択したペインにフォーカスします。zellij のフォーカス操作は指示を受け付けても表示状態を変更しないため、zellij では無効 になっています。
注。 モバイルインターフェースがホストターミナルのフォーカスを自動的に変更することはありません。明示的な「Show in terminal」操作のみが表示を更新します。ダッシュボードの移動やペインを開く操作は、アクティブなホストカーソルに影響しません(ADR 0031)。
tmuxのヒント: 再起動後にウィンドウを復元する
claude --resume # reconnects the conversation, not the windowCollieはマルチプレクサの状態を保持しません。tmuxサーバーを再起動するとウィンドウが破棄され、ダッシュボードは空になります。標準のtmuxプラグインを使用すれば、ウィンドウレイアウトと作業ディレクトリを復元できます。プラグイン管理にはtpm、セッションツリーの保存にはtmux-resurrect、自動スナップショットにはtmux-continuumを使用します。
注。 実行中のエージェントプロセスは保持されません。復旧後はClaude Codeを手動で再起動してください。
zellijのヒント: 再起動後は復元するものがありません
zellij -s collie-zellij # start the session
zellij attach --create-background collie-zellij # headless: start it detached
claude --resume # reconnects the agentZellijにはtmux-resurrectに相当する機能がありません。端末切断後も保持されたセッションは(EXITED - attach to resurrect)として表示され、アタッチ時にセッションコマンドの再実行がトリガーされます。そのため再起動後は、上記のいずれかのコマンドでセッションを新規開始し、その中でエージェントを起動して、それぞれclaude --resumeまたはclaude --continueで再接続する必要があります。
注。 アタッチによって副作用が生じるため、Collieはセッションへのアタッチや復元を行いません。終了したセッションは到達不能として表示され、UIには空のセッションリストではなく切断バナーが表示されます。
エージェントビーコン(任意、Linux)
beacon は、ペインが汎用シェルとして認識されてしまう tmux、zellij、tern 上で、エージェントが Collie に対して自身を識別するための手段です。
$ collie hooks install claude
$ collie hooks status
would install: /home/you/collie/bin/collie beacon emit (this checkout)
/home/you/.claude/settings.json: installed (v1)Claude Codeの設定にあるフックがcollie beacon emitを実行し、ハーネス名、セッション、対象ペインを含むファイルを書き込みます。Herdrはこれをネイティブに追跡します。セットアップの詳細はCollieをマルチプレクサに向けるに記載されています。このセクションではその仕組みを説明します。
上記のパスはローカルチェックアウトの bin/collie を参照しています。バイナリインストールでは ~/.local/bin/collie を指し、その名前がリンクされていない場合は ~/.local/share/collie/current/bin/collie を指します (前述の通り)。status コマンドは書き込みを実行しません。
hooks uninstall claudeを実行すると、Collieによって追加されたエントリのみが削除されます。変更されるのはグローバルのClaude設定であり、プロジェクトレベルのファイルではありません。これはLinux専用です。生存確認で/procを検査するため、Collieは他のOSではビーコンを書き込みません。
起動するとClaudeは直ちに可視化されます。フックがSessionStartでトリガーされるため、入力を待機している開いたペインはシェルではなくアイドル状態のエージェントとして表示されます。
プロセスの終了と同時に可視性も失われます。Collieはチェックごとに送信元PIDを検証するため、エージェントが終了すると、ペインが不明な状態のまま残ることなく、直ちに標準のシェルとして報告されます。
Collieはこの処理においてビーコンファイルを削除しません。ファイルはディスク上に残り、collie doctorはbeaconsの下でそれを期限切れとして報告し、次回のフック実行時に上書きされます。
これにより、ダッシュボードでペインをbashではなくエージェント名でラベル付けできます。「要対応」によるブロック状態でのペインソートが可能になり、アラートに必要な状態が提供されます。ペインの履歴も、ジャーナルが使用するセッションキーの取得をビーコンに依存します。
フックエッジ
同じフックは各イベントに対してフックエッジも書き込みます。フックエッジとは、1つのペインに関する短い通知です。例としては「プロンプトが入力された」「ターンが終了した」「パーミッションダイアログが表示された」などがあります。CollieはHerdrを含むすべてのマルチプレクサでフックエッジを使用します。Herdrは独自にエージェント名を特定するため、Herdr上でのフックはフックエッジのみを書き込み、ビーコンは書き込みません。
フックのエッジだけでペインが空いていると判断されることはありません。各エッジの発生後、Collieは約0.7秒後に画面を再読み込みします。入力ボックスが空であり、ダイアログが表示されていないことを確定できるのは画面のみです。エッジは、ターンが実行中であることやダイアログが表示されていることを通知できます。その場合、Collieは終了エッジが届くまでペインをビジー状態として保持します。また、10秒間に3回画面の空き状態が読み取れた場合も保持を終了します。サブエージェントからのツールエッジはペインに関するものではないため、Collieがペインから読み取る内容を変更することはありません。
スマートフォンからの送信は確認済みと表示される場合があります。これは、送信直後にプロンプトエッジが同一のテキストを運んできたときに発生します。判定期間は30秒、またはターン待ちのキューに入った送信では10分間です。エッジはプロンプトのソルト付きハッシュを運び、テキスト自体を運ぶことはありません。
Claude CodeとCodexは、ターン中にもメッセージやコマンドを受け付けます。Collieはそれを直ちに入力し、ハーネスがターンの終了後に実行します。ターン中に送信を受け付けられないハーネスでは、代わりに送信が保留されます。入力ボックスが空いていない場合(ポップアップの下にある、Collieの2回の読み取りの合間に画面が変わった、試行用の1文字の入力に失敗し Collieが再度クリーンに読み取ったボックスから1回のBackspaceで消去されたなど)に見つかったメッセージも同様です。そのようなメッセージは、10秒間で5回空きを確認できた後、またはCollieが検出したターンの終了後に送信されます。そこでのコマンドは依然として拒否され、「Type here」で確認した画面での送信も同様に拒否されます。プロファイルのないペインでの送信は保留されません。Collieはテキストを保持し、ターミナルビューの下部に浮かぶカードを表示します: 「Queued. Sends when the turn ends.」 Collieがバージョンを読み取れなかったエージェントでは、カードにその旨が表示され、collie doctor を示します: Collieはエージェントが報告したバージョンでのみ、実行中のターンへの入力を行います。カードにはテキストとCancelボタンが表示されます。Collieはターン終了後、ペインが2回連続で空きと判定された時点で、古いものから順に送信します。それ以降の保留された各送信は、その直前の送信が開始したターンを待ちます。ターンが検出されない場合は、10秒間で5回空きを確認できた後に送信されます。pi、OMP、Codexでの保留されたコマンドはEnterを送信し、そこではEnterがターンを操作します。そのようなコマンドはターンが終了するまで待機します。Collieがバージョンを読み取れなかったエージェントでの保留コマンドも同様に待機します: 2秒以上の間隔を置いた2回の空き確認、またはターンが全く検出されなかった場合は10秒間で5回の確認です。OMPはターン中に /goal を即座に実行するため、Collieは /goal、/goal pause、/goal resume をEnter付きで直ちに送信します。これらが保留されることはなく、他の保留送信の後ろで待機することもありません。そのペインでの後続メッセージは、保留されたものの後ろで待機します。保留テキストは30分間、保留コマンドは10分間保持されます。その後、行にはメッセージが送信されなかったことが示され、Resendが表示されます。walky talkyのメッセージも下書きの上で保留され、下書き内に入力されることはありません。その保留は60分間続きます(トランシーバー)。下書きがある状態での自身による送信は拒否され、AppendとReplaceが提示されます。Collieは下書きを拒否、追加、または消去する前に、ボックスがキー入力を受け付けるか確認するため、試行用の文字を1つ入力して削除します。画面上のボックスがキー入力を受け付けない場合、送信は拒否され、何も削除されません。デスクトップでそのペインにフォーカスするかサイズを変更して、エージェントに画面を再描画させてから、再度送信してください。一部のコマンドは待機せず、Collieはターン中にこれらを拒否します。Claude Codeでは、/clear、/exit、/quit、/logout、/resume、/branch、およびすべての ! 行です。Codexでは、/quit、/exit、/new、/resume、/logout、およびすべての ! 行です。Hermesでは、/exit、/quit、/clear、/new、/resume、およびすべての ! 行です。保留された送信はCollieの再起動後も残ります。Cancelは送信が開始されるまで機能し、このマシン自体のペインでのみ動作します。保留された送信が2つ以上ある場合、カードには件数と最初のテキストが表示され、Show allで各送信が個別のCancelとともに一覧表示されます。Collieは保留テキストをディスク上に平文で、自身のユーザーのみが読み取れるファイル(モード0600)として保持します。送信が完了したとき、および保留終了から最大1時間後にテキストを削除します。
Collieは各エッジを1つのペインに配置します。エッジにはエージェントのプロセスとそのペイン(HERDR_PANE_ID、TMUX_PANE、またはZELLIJ_PANE_ID)が記録されます。ペインが指定されていないエッジ、2つのペインが指定されているエッジ、または存在しないプロセスのエッジは破棄されます。その際、ブリッジのログにsurface.edge.droppedの行が出力されます。この行は、理由とプロセスごとに1分間に最大1行だけ記録されます。30秒以上経過したエッジや、エッジ以外のファイルはカウントされますが、ログには記録されません。
どのブリッジがエッジを受け取るか
フックエッジを受け取る各ブリッジは、起動時に自身を~/.local/state/collie/hook-targets/に登録します。XDG_STATE_HOMEが設定されている場合、フォルダは$XDG_STATE_HOME/collie/hook-targets/になります。ブリッジは正常に停止すると自身のファイルを削除します。実行中のブリッジは、ファイルが見当たらない場合、2秒以内に再作成します。フックは、プロセスが実行中である登録済みブリッジすべてに各エッジを書き込みます。存在しないブリッジのファイルは削除されます。ブリッジが登録されていない場合、フックはデフォルトの状態ディレクトリに書き込みます。エージェント自身の環境内のCOLLIE_STATE_DIRも、常にエッジを受け取ります。
ペイン情報
スマートフォン上のペイン情報には、そのペインがフックエッジを送信しているかが表示されます。
- フック: liveは、そのペインのエージェントがフックエッジを送信していることを意味します。
- フック: noneは、Collieがそのペインからフックエッジを受信していないことを意味します。フックがインストールされていないか、インストール後にエージェントがイベントを送信していません。Claude Code 2.1.301は、実行中に新しいフックを読み込みます。それより古いClaudeは再起動してください。
ブリッジは自身の再起動後もアクティブなペインの情報を保持します。ブリッジ再起動後も表示行は「live」のまま維持されます。
古いCollieによるインストール環境では、権限ダイアログのエッジが送信されません。collie hooks statusにはpartialと表示されます。collie hooks install claudeを再実行して、その場で更新してください。
スマートフォン向けに保留中の権限
$ collie hooks install claude --hold-permissionsこれにより、ClaudeのPermissionRequestにフックが1つ追加されます。Claudeが権限を要求すると、フックはリクエストを保留してタップを待ちます。スマートフォン上にはリクエストがカードとして表示されます。はいまたはいいえのタップは、フックを経由してClaudeに戻されます。この操作のためにCollieがペインにキーを送信することはありません。インストールには、このフックが導入された最初のバージョンであるClaude Code 2.0.45以降が必要です。それより古いバージョンは拒否されます。
- フックは、フックエッジと同様の方法で実行中の各ブリッジを検出します。
hook-targets/を読み取り、実行中のすべてのブリッジで保留します。最初に応答したものが優先されます。他のスマートフォンには「Another Collie answered」と表示されます。 - デスクトップ側での応答も引き続き可能です。 ターミナルでダイアログに応答すると、スマートフォンのカードには「The desk answered first」と表示されます。それ以降、Collieがタップの操作を使用することはありません。
- フックを経由できるのはYesとNoのみです。 「今後確認しない」などのオプションは、画面上でのみ回答できます。Collieは保留カードでのそうしたタップを拒否します。
- 保留されたリクエストには290秒の制限時間があります。 制限時間を過ぎると、ダイアログは画面上に残り、新しいIDを持つ通常のカードになります。過去のタップが後からキー入力に変わることはありません。
- ブリッジがない場合、保留は行われません。 リッスンしているブリッジがない場合や、エラーが発生した場合、フックは何も出力しません。その場合、Claudeは従来どおり自身のダイアログを表示します。フックが独自に応答することはありません。
- カードには表示された入力内容が示されます。 コマンド、ファイルパス、またはその他のキー入力を指します。危険なBashフラグや、ファイル書き込みによって書き込まれるテキスト全体が含まれます。Collieはテキストを非表示にしたり反転させたりする文字を除去します。表示される入力の上限は、書き込まれるテキストを含めて1000文字です。これより長いリクエストは保留されません。カードに全体を表示できないため、画面上のダイアログで応答します。入力行数が表示枠を超える場合、カードにその旨が示されます。
- 保留されたリクエストは、そのリクエスト自体を表示しているダイアログのみを所有します。 ダイアログのヘッダーには、リクエスト元のツール名が表示されている必要があります。サブエージェントからの要求である場合は正確に「from the ... agent」と記載され、同じ種類のサブエージェント名が指定されていなければなりません。入力のすべての行が、順序どおりにダイアログに表示されている必要があります。保留中の2つのリクエストが1つのダイアログに一致する場合、どちらにも割り当てられません。それ以外のダイアログは、スマートフォン上で専用のカードを維持します。リクエストは保留カード側で待機し、そのカードからのタップのみが応答として受け付けられます。新しいリクエストが表示されてから最初の400ミリ秒間は、カードはタップを受け付けません。その別のダイアログにキー入力で応答し、Claudeがフックを終了した場合、保留カードにはキー入力によって応答された旨が表示されます。
- サブエージェントのリクエストは、フックが保留している間はダイアログを表示しません。 これは Claude Code 2.1.301 に当てはまります。その場合、保留カードが確認する唯一の手段となるため、ツールと表示された入力内容がカードに表示されます。
- バックグラウンドのリクエストは、監視しているスマートフォンがない場合でも、保留制限時間まで待機します。 その後 Collie がフックを解放し、Claude が画面上にダイアログを表示します。Claude 2.1.301 はこれを拒否しません。
- 質問とプランは画面カードのまま残ります。
AskUserQuestionおよびExitPlanModeは決して保留されません。
ソケットは <stateDir>/hold/sock です。フォルダはモード 0700、ソケットはモード 0600 であるため、他のユーザーは接続できません。接続前に、フックはソケット、そのフォルダ、および状態ディレクトリがあなたのものであることを確認します。また、他の誰もこの2つのフォルダに書き込めないことも確認します。ブリッジは、自身がペインに配置したプロセスからのリクエストのみを受け付けます。その他のリクエストはすべて1行の surface.hold.dropped とともに破棄します。フックと設定にはトークンが含まれません。各カードにはツール、表示された入力、およびラベルのハッシュが含まれます。異なるハッシュでタップすると、フックは応答なしで解放されます。
Claude が読み込む設定がフックを保留している場合、ペイン情報には "holds permissions" と表示されます。Collie はユーザー設定、2つのプロジェクト設定ファイル、および管理対象設定を読み込みます。disableAllHooks を指定すると保留が無効になり、管理対象ファイル内の allowManagedHooksOnly でも同様に無効になります。
保留を再び解除するには、フラグなしで collie hooks install claude を実行します。collie doctor は、フックが権限を保留している設定ファイルの数を示します。
注。 ビーコンとフックエッジは制御チャネルを提供しません。これらは Collie が何を表示か、およびいつペインを読み取るかのみを変更します。テキストの送信、キーストロークの挿入、ペイン名の変更、セッションの終了、またはアクセス制御のバイパスは行えません。脅威モデルと省略されたフィールドは ADR 0024 に記載されています。権限の保留が唯一の制御チャネルです。スマートフォンでのタップが、1つの権限に対する Claude への応答になります。4つの要素がこれを保護します。ソケットはあなた専用であり(0700 フォルダ内のモード 0600)、フックは接続前にこれを確認します。ブリッジはペインに配置したプロセスにのみ応答します。タップには、ツール、表示された入力、およびカードに表示されたラベルのハッシュが含まれている必要があります。応答は常に人間のタップのみです。Collie が独自に許可または拒否することはありません。
Codex
Codex には外部フックが1つあり、それは notify コマンドです。Collie は Codex のターンが終了した際、これをフックエッジとして使用できます。
$ collie hooks install codex
$ collie hooks status
/home/you/.codex/config.toml: installedインストール処理により、$CODEX_HOME/config.toml(CODEX_HOME が未設定の場合は ~/.codex/config.toml)の先頭に1行書き込まれます。この行はファイル先頭のコメントの後に追加されます。
notify = ["/home/you/.local/bin/collie", "beacon", "emit", "codex"]Codex が実行する notify コマンドは1つのみです。設定にすでに記述がある場合、Collie はそれをそのまま残し、メッセージを表示してインストールを停止します。Collie がファイルを TOML として読み取れない場合、インストールは停止し、該当行を示します。Collie は最初の変更を行う前のファイルのコピーを保持します。collie hooks uninstall codex はインストール前の正確なバイト列を復元します。インストールによってファイルが作成された場合、アンインストールによって削除されます。すでに開いている Codex は、再起動するまで新しい行を認識しない場合があります。
Codex は各ターンの終了時に1つのイベント agent-turn-complete を送信します。Collie はこれを停止エッジとして記録し、その後の画面読み取りによってペインが空いているかどうかを判断します。制限事項は以下のとおりです。
- Codex は承認ダイアログや新しいプロンプトに対してイベントを送信しません。画面のみがダイアログを表示し、スマートフォンからの送信が Codex ペインで Confirmed と表示されることはありません。
- Codex 0.163.0 はバックグラウンドヘルパー(
codex app-server)から notify コマンドを実行します。Collie は、同じCODEX_HOMEとイベントのフォルダを持つ/proc内の Codex ウィンドウを特定します。これは Linux 専用です。 - 1つの
CODEX_HOME上の同一フォルダにある2つの Codex ウィンドウにはエッジが設定されません。Collie はこれらを区別できません。フックがない場合と同様に、それらのペインは引き続き画面から更新されます。 - Codex は、新しいタスクに名前を付けるために短い非表示のターンも実行します。そのターンはさらに1つの停止エッジを送信するため、ペインでは画面の読み取りがもう1回行われます。
Collie は Codex メッセージに対して Tab を押します。ターン中、Codex はそれをキューに入れます。Codex では、Tab はアイドル状態のボックスでメッセージを送信し、ターン中はキューに入れます。したがって、Tab はどちらの状態でも適切です。Enter は実行中のターンを誘導するため、Collie がメッセージに対して Enter を押すことはありません。/ または ! で始まるテキストはコマンドです。アイドル状態のボックスでは Tab が / コマンドを補完してしまうため、Enter を使用します。ターン中には Tab を使用し、Codex はそれをメッセージのようにキューに入れます。Codex は ! テキストをシェルコマンドとして実行します。レシートは、Codex がテキストを含むキュー行を表示した場合にのみ queued と示します。
Collie は Codex の承認に対して1つのキーで応答します。選択肢の数字、y、または Escape です。Codex 0.156 の信頼プロンプトのみカーソル移動を伴います。その場合、Collie は矢印キーを押し、ポインタを読み戻してから、Enter を押します。Codex の質問ダイアログも、選択肢の数字という1つのキーを受け付けます。Codex 0.163.0 では数字によって即座に応答します。最後の質問で、すべての回答を送信します。
ハーネスプロファイル
Collieはスマートフォンからメッセージを送信する前に、エージェントの入力欄を確認します。プロファイルファイルは、エージェントごとにその入力欄の定義を記述します。そこには入力欄の開始位置と終了位置、下書きの表示形式、送信キー、長文ペースト時にエージェントが描画するテキストが定義されます。通常のシェルやプロファイルのないエージェントも送信を受け付けます。Collieはそれらの入力欄を読み取れないため、確認を行わずにテキストを入力してEnterを1行ずつ押します。末尾の行にパスワードプロンプトがある場合のみ処理を中断します。その場合Collieは何も入力せず、スマートフォン側でTypeが選択可能になります。
| エージェント | ターン中の Enter | 送信キー | プローブ | 照合対象 |
|---|---|---|---|---|
| OpenCode | メッセージをキューに入れる | Enter | はい | 1.18.33 |
| pi | ターンの操作。Alt+Enterでキューに追加 | Alt+Enter(WindowsではCtrl+Q) | テキストを短縮してターンへ送信 | 1.1.0 |
| OMP | ターンの操作。Ctrl+Qでキューに追加 | Ctrl+Q | はい | 18.4.10 |
| Grok | 未計測 | Enter | はい | 1.0.41 |
Antigravity (agy) | 未計測 | Enter | はい | 1.1.17の画面 |
| Muse | 未計測 | Enter | はい | 1.4.7 |
| Hermes(クラシックCLI) | デフォルトでターンを中断。Hermes の /busy によりキュー投入またはターンの制御に変更可能 | Enter | はい | 0.22.2 |
Cursor CLI(cursor-agent) | メッセージをキューに入れる | Enter | はい | 2026.10.16 |
Kiro(kiro-cli) | ターンを制御。Collie はターン終了まで送信を保留 | Enter | 短いテキスト | 2.32.0 |
/modelなどのコマンドは常にEnterで実行されます。プローブ付きの送信では、まず文字が1つ余分に入力されます。Collieはその文字がボックスに入ったことを確認してから削除します。
- OpenCodeはボックスを
┃行のカラムとして描画し、╹▀▀▀の線で閉じます。Collieはこれらの行によってボックスを検出します。実行中のターンに送信されたメッセージは、トランスクリプト内でQUEUEDバッジが付いて待機します。改行はCtrl+Jとして入力されます。ボックスに表示しきれない長さのメッセージは、読み戻せないためCollieが拒否します。
- piはプロンプト記号なしで2本の実線の間にボックスを描画します。Collieはその2本の実線と、piがその下に描画するステータス行によって検出します。piのダイアログは同じ2本の実線の間に開きます。そのため、Collieは上の実線から下に向かってキーヒントとリストを読み取ります。piではEnterが実行中のターンを操作しますが、Alt+Enterは待機中のボックスで送信し、ターン中はキューに追加します。そのためCollieはAlt+Enterで送信し、WindowsではCtrl+Qで送信します。piはキューに入ったメッセージをボックスの上の
Follow-up:行として表示します。高さが30行を超えるボックスはボックスとして認識されません。画面は不明と判定され、送信にはタップが必要です。
- OMP はボックスの枠線スタイルを選択できるため、Collieはそのうち5つを認識します。1つは上部にステータス行があるオープンボックスです。他には罫線ペア、下部罫線なしの罫線、中央が空のペア、枠線なしボックスがあります。Collieは、OMPがプロンプト行の右端に描画するヒントをカットします。OMPでは、Enterは実行中のターンを操作しますが、Ctrl+Qはアイドル状態のボックスで送信し、ターン中はキューに入れます。そのため、CollieはCtrl+Qで送信します。OMPはキューに入れられたメッセージを、ボックスの上の
After yieldブロックに表示します。OMPはテキストの後に薄い補完を表示することがあります。これに遭遇した送信は送信キーの手前で停止し、テキストをボックス内に残します。オープンボックスでは、OMPは長いメッセージの最後の最大17行を表示します。Collieはその行を入力内容の末尾と照合し、レシートにその旨が示されます。その17行を埋め尽くす下書きに対しては、Collieが先頭を確認できないため、Replaceは拒否します。何も削除されません。
- Grokは角丸ボックスを描画し、その中に
❯プロンプト行と、その下にキーヒント行を表示します。縦に長い下書きでは、ボックスの右端にスクロールバーが表示されます。このような画面は読み取り不能と判定されるため、送信にはタップが必要です。ボックスの上にモデルリストが開き、ボックスの一部としてカウントされます。リストが開いている間、ペインが空として認識されることはありません。
- Antigravity (
agy) はボックスを実線、>行、実線として描画し、? for shortcutsフッターを付けます。ターン中はボックスの上に...、下にesc to cancelを含むスピナー行が表示されます。Herdrはこのエージェントにagyまたはantigravityと名付けます。Collieは両方をagyの下に分類します。
- Museはボックスを、ラベルが付く場合がある実線、
❯行、実線として描画します。空のボックスには灰色のヒントが表示され、Collieはそのヒントをテキストなしとして読み取ります。ボックスの下に開くコマンドパレットは下書きとして表示されます。ボックスの下にあるバックグラウンドタスクのリストは不明と判定され、送信にはタップが必要です。実行中のターンには、タイマーとesc to interruptを含む行が表示されます。
- Hermes(クラシックCLI。
hermes --tuiは読み取られません)は、枠線を罫線、❯行、罫線として描画します。64列未満ではボックスの下に罫線を描画しません。名前付きプロファイルの場合、❯の前にその名前が表示されます。改行は Alt+Enter で入力されます。display.cli_multiline_shortcutsがオフの場合、Ctrl+J でメッセージを送信します。ボックスには最大8行が表示されます。これより長いメッセージは読み戻せないため、Enter の前で送信が停止します。Submit で送信されますが、スマートフォン側では送信完了を確認できません。Hermes では入力したテキストの後に、以前のメッセージの残りが灰色で表示されることがあります。その場合も送信は Enter の前で停止し、Submit は入力した内容のみを送信します。モデルセレクターとコマンドパレットはトランスクリプトの上に開くため、これらが開いている間はペインが空と判定されることはありません
- ターン中の Hermes は行の先頭に
☤を表示し、Collie はそのマークからターンを認識します。その時点での Enter の動作は Hermes 側の設定によるため、Collie がターン中に Enter を押すことはありません。ターン中の送信は保留され、ターン終了時に送信されます。Collie の入力中にターンが開始された場合、送信は Enter の前で停止し、テキストはボックス内に残ります
- Hermes の質問: 質問に対する入力式の回答は
✎行を開き、スマートフォンからの送信がその回答になります。保留されたメッセージがこの行に入力されることはありません。質問が閉じるまで待機し、その後メッセージとして送信されます。保留されたメッセージの待機中に新しい送信を行うと保留キューに追加されるため、スマートフォンから回答する場合は保留中のメッセージをキャンセルしてください
- Cursor CLI(
cursor-agent)は、枠線を▄の罫線、→行、▀の罫線として描画します。空のボックスには「Plan, search, build anything」または「Add a follow-up」という灰色のヒントが表示され、Collie はこのヒントをテキストなしとして認識します。!はボックスを独自のヒントを持つシェルプロンプトに切り替えます。Collie はそのヒントをテキストとして認識するため、シェルモードでメッセージが送信されることはありません。実行中のターンでは、ボックスの上にRunningなどのスピナー行が表示され、→行の右端にctrl+c to stopが表示されます。Collie はそのヒントを除外します。ターン中の Enter は、入力ボックスの上のfollow-upsボックスにメッセージをキューイングします。ボックスには最大6行が表示され、それ以上長い下書きはスクロールされます。Collie はそれ以上高いメッセージを読み戻せないため、入力したテキストをボックスに残し、Enter を押しません。ダイアログ(コマンド承認、質問、フォルダー信頼プロンプト)はボックスを置き換えるため、画面は読み取り不能と判定されます。実機でのテスト送信は 2026.10.14 と 2026.10.16 に成功しています
- Kiroは一定の規則に従って枠を描画します。ステータスバー、フォルダ、空行、そして
›プロンプト行です。Collieはそのフレーム全体が画面にある場合にのみ入力します。改行はCtrl+Jとして送信されます。ターンの実行中、プロンプト行はKiro is workingと表示されます。Kiroでは、Enterを押すとテキストがそのターンへステアされます。Collieは実行中のターンにEnterを送信しません。Ctrl+SでKiroのステアとキューが切り替わるため、Collieはキュー用キーを定義しません。したがって、CollieはKiroがビジーの間は送信を保留し、入力枠が空き状態と認識されてから送信します。このプロファイルはHerdrでのみ動作確認されており、tmuxやzellijでは確認されていません。
Grok、Antigravity、Museはビルドホストにインストールされていません。これらのプロファイルは各エージェントの保存済み画面に基づいています。プロファイル経由で実メッセージが送られたことはないため、Collieはここでの送信ごとに事前プローブを実行します。ターン実行中にEnterがどう動作するかは計測されていません。そのため、画面にターン実行中と表示されている間、Collieは送信を拒否し、何も入力しません。ハーネスが実行中のサインを描画しない場合、Collieは判別できないため、Enterの挙動はエージェント任せになります。OpenCodeとOMPは、確認済みバージョンより新しい版で実送信に成功しました。確認済み範囲内の送信が成功するまで、Collieはこれらへの送信ごとにプローブします。Hermes(従来のCLI)は、動作範囲内の0.22.2かつHerdr上でのみ実送信に成功しました。Ink TUI(hermes --tui、またはそれを起動する設定)はまだ読み取れません。「ここに入力」をタップして送信してください。このプローブはHermesの全ダイアログで試行されたわけではないため、Collieはここでも送信ごとにプローブします。
確認済みバージョンより新しいバージョンでも引き続き動作し、レシートにはprovisionalと表示されます。
ステアかキューか
エージェントの動作中、スマートフォンからの送信は、ターンの終了を待つことも、そのターンへ割り込ませることもできます。「送信」を普通にタップすると、テキストはターン終了後のキューに入ります。これはすべてのエージェントで共通です。Collieが意図せずターンをステアすることはありません。
ステアは1回の送信ごとに選ぶ操作です。「送信」ボタンを長押ししてステアをタップしてください。エージェントは現在のツール呼び出しの直後、同じターン内でその行を読み込みます。この行はエージェントが動作中、かつプロファイルにステアキーが定義されているエージェント(現在のpi、Codex、OMPなど)でのみ表示されます。入力枠の下の短いヒントには、タップでキュー、長押しでステアと表示されます。Codexは直後にEnterが続くテキストを貼り付けと認識するため、Collieはテキスト入力後、ステアキーを押すまで1秒待機します。
結果レシートで処理内容を確認できます:
- ステア完了。 エージェントは実行中のターンに行を取り込みました。Collieはエージェントによる描画を確認しました。
- 代わりにキューへ追加。 ステアを要求しましたが、エージェントはターン終了後まで行を保持しました。データは失われていません。
- 入力済み、未送信。 テキストは枠内に残っており、ステアキーで送信されませんでした。「送信」をタップするか、枠内をクリアしてください。
- このペインでは利用できません。 エージェントのプロファイルにステアキーがないか、実行中のターンでそのバージョンが信頼できないか、テキストがコマンドです。何も送信されませんでした。ステアを使わずに送信してください。
- スマートフォンを操作している人のみがステアできます。 他のソースからのステアは拒否されます。
Collieの入力中にターンが終了した場合、その行は通常の送信として送られます。Collieはステアを保留しません。長いステアは明確なサインなしに終了することがあります。その場合、レシートには成否不明と表示され、テキストは再送信されません。
エージェントから別のエージェントへのメッセージ(トランシーバー)がステアされることはありません。常にターンの終了を待ちます。