コンテンツにスキップ
このページの翻訳は LLM によって生成されています。誤りに気づいた場合は GitHub で issue を開いてお知らせください。

永続化とリモートアクセス

Nagi はペインをバックグラウンドサーバーで動かし続けます。ターミナルクライアントはデタッチして、あとで再接続できます。

ローカル、SSH、nagi --remote の各ワークフローについては Nagi での作業の進め方を参照してください。

ctrl+b q でクライアントをデタッチします。ペインとエージェントは動き続けます。再度 nagi を実行すると再アタッチします。セッションとそのペインを停止するには nagi server stop を使います。

サーバーの完全停止後に Nagi が再起動すると、保存されたセッションの形を復元します。デタッチ、サーバー再起動、画面履歴リプレイ、エージェントネイティブのセッション復元、ライブハンドオフでそれぞれ何が生き残るかはセッション状態と復元を参照してください。

独立した Nagi サーバーが欲しいときは名前付きセッションを使います。

Terminal window
nagi session list
nagi session attach work
nagi session attach side-project
nagi session stop work
nagi session delete side-project

名前付きセッションは独自のペイン、タブ、ワークスペース、ソケット、ランタイム状態を持ちます。グローバル設定ファイルは共有されます。

スクリプトでは --json を使ってください:

Terminal window
nagi session list --json
nagi session stop work --json
nagi session delete side-project --json

リモートモードは 2 つあり、Nagi での作業の進め方で比較しています。tmux スタイルの方法では、サーバーに SSH してそこで nagi を実行します。もうひとつは、ローカルマシンから SSH 越しにアタッチする方法です:

Terminal window
nagi --remote workbox
nagi --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

その後はこれでアタッチできます:

Terminal window
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 を渡します:

Terminal window
nagi --remote workbox --handoff

先にサーバーへ SSH してそこで nagi を実行した場合、Nagi は完全にサーバー上で動きます。このモードは便利でシンプルですが、通常のターミナルテキスト貼り付けを超えてローカルデスクトップのクリップボードにはアクセスできません。

ローカルとリモートのプラットフォームが一致する場合、Nagi はソースからビルドした現在のローカルバイナリをコピーできます。Nagi 自身のパイプラインが署名済み成果物を公開するまで、異なるプラットフォーム向けの自動ダウンロードは無効です。

ローカルビルドやカスタムバイナリの場合は、リモートアタッチの前に NAGI_REMOTE_BINARY にローカルファイルパスを設定してください。

Terminal window
NAGI_REMOTE_BINARY=target/release/nagi nagi --remote workbox

リモートの名前付きセッション

Section titled “リモートの名前付きセッション”

リモートホスト上の名前付きセッションにアタッチするには、--remote と一緒に --session を使います:

Terminal window
nagi --remote workbox --session agents

ダイレクトターミナルアタッチ

Section titled “ダイレクトターミナルアタッチ”

完全な Nagi アタッチはワークスペース UI 全体を開きます。ダイレクトアタッチは、サーバーが所有するターミナルをひとつだけ、現在のターミナルに開きます。

ダイレクトターミナルアタッチは Windows ベータでは Unix 専用です。

エージェントターゲットでアタッチ:

Terminal window
nagi agent attach reviewer

ターミナル ID でアタッチ:

Terminal window
nagi terminal attach term_abc123

ダイレクトアタッチは、現在レンダリングされているターミナル状態をストリーミングし、その後ライブの ANSI フレームを流します。入力はそのターミナルに直接送られます。

ctrl+b q でデタッチします。リテラルの ctrl+bctrl+b ctrl+b で送ります。

ひとつのターミナルの入力とリサイズを所有できる書き込み可能なダイレクトアタッチクライアントはひとつだけです。既存の所有者を置き換えるには --takeover を使います:

Terminal window
nagi terminal attach term_abc123 --takeover

バックグラウンドのサーバー/クライアント分離なしで Nagi を実行するには --no-session を使います:

Terminal window
nagi --no-session

これは主にデバッグや互換性のための逃げ道です。デフォルトの永続セッションモードが通常の使い方です。