なぜデスクトップのコンパニオンアプリが必要なのか?
スマホは画面でありキーボードです。ターミナルは 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 上で開いたものもスマホから開いたものも、接続できます。
どちらの場合も、設定をオンにする前から開いていたターミナルは、そのまま残ります。