Agent Terminal
← ブログ

なぜデスクトップのコンパニオンアプリが必要なのか?

スマホは画面でありキーボードです。ターミナルは PC 上で動き、デスクトップアプリがそれを動かし続けて、スマホからの接続を受け付けます。

要点

  • Mac の場合:デスクトップアプリをインストールして、スマホとペアリングします。必要なのはそれだけです。
  • Windows の場合:同じ手順に加えて、設定が1つあります。Windows では、すでに動いているターミナルを別のアプリに移すことはできません。そこで Set as default terminal app(既定のターミナル アプリに設定)をオンにすると、新しく開いたターミナルは Agent Terminal で開き、スマホからそこに接続できるようになります。

デスクトップアプリの役割

スマホの Agent Terminal は、コマンドを実行しません。すべてのシェルは Windows PC か Mac 上で動き、デスクトップアプリは次の役割を担います。

  • ターミナルを動かし続けます。ホストプロセスの中で動くので、アプリを閉じても、スマホの接続が切れても、ターミナルは終了しません。
  • スマホとペアリングします。QR コードを使います。
  • スマホからの接続を受け付けます。すべての接続は、デスクトップアプリ内の単一の SSH ゲートウェイを必ず経由し、そこで守られます。このゲートウェイは公開鍵だけを受け付けます。
  • 外出先からもスマホとつながります。プライベートネットワーク上でも同様です。

macOS の場合

デスクトップアプリをインストールして、スマホとペアリングすれば、スマホからでも Mac からでもターミナルを開けます。 設定で Start the host when you log in(ログイン時にホストを起動)をオンにすると、アプリを開いていなくても、スマホからターミナルに接続でき、ホストが予期せず止まっても復帰します。

Mac では、すでに開いているシェルを移すこともできます。Move shells from your terminal app to Agent Terminal(ターミナル アプリからシェルを Agent Terminal に移す)をオンにし、その後に開いた Terminal、iTerm2、Ghostty のウィンドウで Ctrl+\ を押してから s を押すと、そのシェルは Agent Terminal に移り、スマホから接続できるようになります。

Windows の場合

Windows では、あるアプリが動いているターミナルを別のアプリに引き渡すことはできません。コンソールは、起動したウィンドウに終了するまで留まります。Windows がコンソールをターミナル アプリに渡すのは、起動するときだけです。

そこで、設定を1つおすすめします。デスクトップアプリで Settings → General(設定 → 一般)を開き、Set as default terminal app の横にある Apply(適用)を押してください。それ以降は、スタート メニュー、ショートカット、「ファイル名を指定して実行」から開いたコマンド プロンプトと PowerShell のウィンドウが、代わりに Agent Terminal で開き、スマホからも接続できるようになります。元に戻すには、同じ行の Undo(取り消す)を押します。

オフのままにした場合:

  • Agent Terminal の外で開いたターミナルには、スマホから接続できません。
  • Agent Terminal で開いたターミナルは、PC 上で開いたものもスマホから開いたものも、接続できます。

どちらの場合も、設定をオンにする前から開いていたターミナルは、そのまま残ります。