永続化とリモートアクセス
Nagi はペインをバックグラウンドサーバーで動かし続けます。ターミナルクライアントはデタッチして、あとで再接続できます。
ローカル、SSH、nagi --remote の各ワークフローについては Nagi での作業の進め方を参照してください。
デタッチと再アタッチ
Section titled “デタッチと再アタッチ”ctrl+b q でクライアントをデタッチします。ペインとエージェントは動き続けます。再度 nagi を実行すると再アタッチします。セッションとそのペインを停止するには nagi server stop を使います。
サーバーの完全停止後に Nagi が再起動すると、保存されたセッションの形を復元します。デタッチ、サーバー再起動、画面履歴リプレイ、エージェントネイティブのセッション復元、ライブハンドオフでそれぞれ何が生き残るかはセッション状態と復元を参照してください。
名前付きセッション
Section titled “名前付きセッション”独立した Nagi サーバーが欲しいときは名前付きセッションを使います。
nagi session listnagi session attach worknagi session attach side-projectnagi session stop worknagi session delete side-project名前付きセッションは独自のペイン、タブ、ワークスペース、ソケット、ランタイム状態を持ちます。グローバル設定ファイルは共有されます。
スクリプトでは --json を使ってください:
nagi session list --jsonnagi session stop work --jsonnagi session delete side-project --jsonSSH 越しのリモートアタッチ
Section titled “SSH 越しのリモートアタッチ”リモートモードは 2 つあり、Nagi での作業の進め方で比較しています。tmux スタイルの方法では、サーバーに SSH してそこで nagi を実行します。もうひとつは、ローカルマシンから SSH 越しにアタッチする方法です:
nagi --remote workboxnagi --remote ssh://you@server:2222このモードでは、ローカルの Nagi はシンクライアントです。SSH 越しに接続し、リモートの Nagi サーバーを起動またはアタッチして、UI をローカルターミナルにストリーミングします。クライアントがローカルで動くため、Nagi は画像クリップボードの貼り付けのようなローカルデスクトップ機能をリモートセッションにブリッジできます。画像をリモートの一時ファイルにコピーし、そのパスを貼り付けます。
デフォルトでは、nagi --remote はそのアタッチにローカルの Nagi キーバインドを使います。リモートサーバーの設定が異なっていても、ローカルの操作感覚を維持できます。ローカルキーバインドはアタッチ時のスナップショットなので、ローカルのキーバインドを編集したらデタッチして再アタッチしてください。リモートサーバーの設定を使いたい場合は --remote-keybindings server を使います。ローカルのカスタムコマンドキーバインドは送信されません。それらのコマンドはリモートホスト上で実行されてしまうからです。
繰り返し接続する相手は SSH config を使ってください:
Host workbox HostName server.example.com User you Port 2222その後はこれでアタッチできます:
nagi --remote workboxリモートアタッチは x86_64 と aarch64 の Linux および macOS ホストをサポートします。Nagi はリモートの PATH 上にある一致する nagi を優先します。公開バイナリチャネルは無効なので、接続前にレビュー済みの一致するビルドをリモートホストへ配置してください。非対話的な実行はホストを変更せずに失敗します。
ネイティブ Windows の nagi --remote は Windows ベータの範囲外です。Windows からはサーバーに SSH してそこで nagi を実行してください。
デフォルトでは、nagi --remote はあなたの SSH config を最初に include し、その後にフォールバックのキープアライブ設定を加えた一時的な SSH config を通してブリッジを実行します。既存のユーザーのキープアライブ設定が優先されます。Nagi が生成するブリッジ設定を使わず素の ssh を使うには [remote].manage_ssh_config = false を設定してください。
デフォルトでは、実行中のリモートサーバーの置き換えや再起動が必要な場合、リモートアタッチは通常の再起動/停止フローを使います。対応する実行中リモートサーバーで実験的なライブハンドオフにオプトインするには --handoff を渡します:
nagi --remote workbox --handoff先にサーバーへ SSH してそこで nagi を実行した場合、Nagi は完全にサーバー上で動きます。このモードは便利でシンプルですが、通常のターミナルテキスト貼り付けを超えてローカルデスクトップのクリップボードにはアクセスできません。
ローカルとリモートのプラットフォームが一致する場合、Nagi はソースからビルドした現在のローカルバイナリをコピーできます。Nagi 自身のパイプラインが署名済み成果物を公開するまで、異なるプラットフォーム向けの自動ダウンロードは無効です。
ローカルビルドやカスタムバイナリの場合は、リモートアタッチの前に NAGI_REMOTE_BINARY にローカルファイルパスを設定してください。
NAGI_REMOTE_BINARY=target/release/nagi nagi --remote workboxリモートの名前付きセッション
Section titled “リモートの名前付きセッション”リモートホスト上の名前付きセッションにアタッチするには、--remote と一緒に --session を使います:
nagi --remote workbox --session agentsダイレクトターミナルアタッチ
Section titled “ダイレクトターミナルアタッチ”完全な Nagi アタッチはワークスペース UI 全体を開きます。ダイレクトアタッチは、サーバーが所有するターミナルをひとつだけ、現在のターミナルに開きます。
ダイレクトターミナルアタッチは Windows ベータでは Unix 専用です。
エージェントターゲットでアタッチ:
nagi agent attach reviewerターミナル ID でアタッチ:
nagi terminal attach term_abc123ダイレクトアタッチは、現在レンダリングされているターミナル状態をストリーミングし、その後ライブの ANSI フレームを流します。入力はそのターミナルに直接送られます。
ctrl+b q でデタッチします。リテラルの ctrl+b は ctrl+b ctrl+b で送ります。
ひとつのターミナルの入力とリサイズを所有できる書き込み可能なダイレクトアタッチクライアントはひとつだけです。既存の所有者を置き換えるには --takeover を使います:
nagi terminal attach term_abc123 --takeoverシングルプロセスの逃げ道
Section titled “シングルプロセスの逃げ道”バックグラウンドのサーバー/クライアント分離なしで Nagi を実行するには --no-session を使います:
nagi --no-sessionこれは主にデバッグや互換性のための逃げ道です。デフォルトの永続セッションモードが通常の使い方です。