サーバのエージェントに、
Macから応答。

エージェントはサーバで動き、あなたはMacの前にいる。サーバを一度接続すれば、そのセッションにもローカルのものと並んでノッチに行ができます。リクエストもコストも表示され、クリックすれば目的のタブへ。このガイドでは、セットアップの方法、Gnistaがサーバに置くもの、できないことを説明します。

7日間無料で試すアカウント・カード不要 · その後€19の買い切り

更新:

手短に言うと

Gnistaの設定 ▸ リモートで「接続」をクリックし、ssh設定にあるホストを選びます。Gnistaはヘルパーをそこにコピーし、見つかったエージェントをすべて接続して、自分のsshで接続を1本開いたままにします。そのセッションは、マシン名つきでノッチに表示されます。

はじめる前に

  • Mac上のGnista(macOS 15以降)。
  • x86_64かarm64のLinuxサーバ、または「リモートログイン」をオンにしたMac。
  • ログインするユーザで、そこにインストールしたエージェント。Claude Code、Codex、Gemini CLI、OpenCode、Copilot CLIなど、GnistaがMac上で接続するものならどれでも。
  • ~/.ssh/configにそのマシンがあること。何も入力せずに使える鍵がいちばん簡単です。ログインにパスワードやコード、鍵の承認が必要なら、GnistaがTerminalで一度だけ求めます。

ssh設定

このようなエントリがあれば十分です。Gnistaはssh設定の内容をすべて使うので、ポート、ユーザ、鍵、ProxyJump、そしてCoder、Codespaces、DevPodが追加するホストも、Terminalと同じように動作します。

Host devbox
  HostName devbox.example.com
  User dev
  IdentityFile ~/.ssh/id_ed25519

接続を確認する

ssh devbox uname -sm

Linux x86_64、Linux aarch64、Darwin arm64のいずれかが表示されれば問題ありません。ホスト鍵を信頼するか聞かれたら、そこで一度答えてください。

サーバを接続する

  1. Gnistaの設定 ▸ リモートを開きます。「接続」をクリックし、ホスト(ここではdevbox)を選びます。ssh設定にないホストなら、「その他のホスト…」を選んで入力します。
  2. Gnistaはunameでシステムを確認し、そのシステム用のヘルパーをそこの~/.gnistaにコピーして、変更されずに届いたかを確認します。続いて、見つかったエージェントそれぞれに自分のフックを追加します。
  3. マシンの行に、接続した数が「接続済み、エージェント 2 個」のように表示されます。ポインタを合わせると、その名前がわかります。
  4. 行に「ログインが必要です。」と表示されたら、「ログイン」をクリックします。Terminalが開くので一度ログインすれば、Gnistaの接続はそのログインを通ります。
  5. サーバでセッションを始めます。ノッチに行が現れ、プロジェクトの横にサーバ名が表示されます。

できること

  • セッションごとに1行。ローカルの行ならアプリが表示される位置に、マシン名が表示されます。ポインタを合わせると「devbox上(SSH経由)」。
  • リクエストはノッチに。エージェントが確認を求めると、ローカルのセッションと同じく、ノッチがリクエストとともに開きます。設定 ▸ 一般で「Gnistaでリクエストに応答」をオンにしていれば、そこで応答できます。この設定は、Gnistaがサーバ側にも合わせます。
  • 詳細。タイトル、最新のメッセージ、そしてトークンとコスト。それを記録するエージェントについて、サーバ上で読み取ります。
  • 目的のタブへ。クリックすると、エージェントが通ってきたssh、mosh、Eternal Terminalを開いているMac上のターミナルのタブが前面に出て、そこのtmuxのペインも表示します。VS Code、Cursor、Windsurf、Zedのリモートウインドウならそのウインドウへ。Claude DesktopがSSH越しに始めたセッションなら、そのチャットへ。
  • ログインは一度だけ。セットアップも、接続も、クリックも、1本のssh接続を共有します。Duoのプッシュや鍵の承認は、毎回ではなく一度だけです。
  • 途切れても戻る接続。接続が切れても、スリープやネットワークの変更のあとでも、Gnistaは自動で再接続します。そのあいだ行は残り、マシンには「現在接続できません。」と表示されます。

セキュリティツールがトンネルを警告するなら

各マシンの⋯メニューに「接続」の設定があります。たいていのサーバには「自動」が合います。「転送なし」は、フックのメッセージをフォワードではなく通常のsshコマンドで送ります。「自分の ssh 経由」では、Gnistaは自分の接続を持ちません。「設定」でヘルパーを一度インストールし、ssh設定に加えるRemoteForwardの行を表示するので、自分のsshセッションがエージェントのイベントを運びます。IT部門の方へ:セキュリティとプライバシー。

複数のMacから

同じサーバを、それぞれのMacから接続します。そこにはMacごとに専用のソケットができ、どのMacにもそのセッションが表示されます。リクエストには、最初に届いた応答が採用されます。1台のMacで「接続解除」しても、ほかのMacのためにGnistaはサーバに残ります。

Gnistaがサーバに置くもの

サーバ上内容
~/.gnista/bin/gnistaフックが実行する、Gnistaのヘルパー。依存関係のない単一のファイルで、エージェントとモデルのファイルは~/.gnista/Resourcesにあります。
~/.gnista/settings.jsonノッチからの応答を待つかどうか。Macの「Gnistaでリクエストに応答」の設定です。
~/.gnista/sockets/サーバ側の接続の端。Macごとに1つで、アクセスできるのは自分のユーザだけです。
Each agent’s settingsMac上と同じく、そのフック。Claude Codeなら~/.claude/settings.json、Codexなら~/.codex/hooks.json、といった具合です。

接続が始まるたびに、Gnistaはこれらを最新にします。Gnistaのアップデート後は新しいヘルパーを、あとからインストールしたエージェントにはフックを。フックを追加する前にエージェントの設定をバックアップし、既存のフックはそのまま残します。

仕組み

Gnistaはマシンごとに、Mac上にソケットを開き、そこへのリバースフォワードをつけて自分のsshを実行します。そこのフックは、この接続を通してMac上のGnistaとやり取りします。要するに、次のとおりです。

ssh -N -o ControlMaster=yes -R /home/dev/.gnista/sockets/<this Mac>.sock:<a socket on your Mac> -- devbox

サーバがソケットをフォワードしない場合は、代わりにサーバのループバックのポートをフォワードします。その接続はどれも、そこであなたのアカウントだけが読めるパスワードで始める必要があります。何もフォワードしない場合は、ヘルパーがフックのメッセージを通常のsshコマンドで運びます。

行に表示されるサーバ名は、サーバの申告ではなく、イベントがどの接続を通って届いたかで決まります。そのため、あるサーバが別のサーバになりすますことはできません。接続が切れているときは、フックはGnistaを見つけられずにすぐ戻り、エージェントはいつもどおりターミナルで確認を求めます。

Linux用のヘルパーは、Gnistaのバージョンとプロセッサごとに一度、GitHub上のGnistaの公開ダウンロードから取得します。そのバージョン用にGnistaの鍵で署名されている場合だけ、Gnistaはそれを使います。Macには、署名と公証を済ませたヘルパーを手元のGnistaから送ります。

トラブルシューティング

  • 「sshのメッセージ:…」ssh自身が最後に出したメッセージです。同じホストで上の確認を実行してから、もう一度「接続」をクリックしてください。
  • 「ログインが必要です。」「ログイン」をクリックし、Terminalでログインしてください。1Passwordの場合、その確認がほかのウインドウの後ろで待っていることがあります。行にポインタを合わせると、sshのメッセージがわかります。
  • 「現在接続できません。」行にポインタを合わせると、sshのメッセージがわかります。Gnistaは間隔を少しずつ空けながら、試し続けます。
  • 「Gnista が接続できるのは Linux マシンと Mac です。このマシンは「…」です。」ホストがほかのシステムで動いていて、Gnistaは接続できません。
  • 「GnistaはLinux用のヘルパーをダウンロードできませんでした。Macがオンラインか確認して、もう一度お試しください。」このバージョン用のヘルパーをサーバが初めて必要とするとき、Macからgithub.comに接続できる必要があります。
  • 「ヘルパーが途中で変更されて届いたため、Gnistaは使用しませんでした。」もう一度「接続」をクリックしてください。
  • 「接続済みですが、Gnistaが接続するエージェントはありません。」同じユーザで、サーバにエージェントをインストールしてください。次に接続が始まったとき、または「接続解除」してから「接続」すればすぐに、Gnistaが接続します。
  • 「すでに接続している … と同じアカウントです。」ssh設定の2つの名前が、同じアカウントにつながっています。どちらか1つにしてください。
  • セッションが表示されない。マシンの行が「接続済み」になっているか確認し、新しいセッションを始めてください。すでに実行中だったセッションには、Gnistaのフックがないことがあります。
  • 「組織によってオフにされています。」Macが管理されていて、RemoteMachinesAllowedがオフになっています。IT部門に問い合わせてください。

Gnistaを使わない

  • ターミナルの通知:Claude Code自身の通知はターミナルのエスケープコードなので、ssh越しにiTerm2など、それを表示できるターミナルまで届きます。わかるのは何かが起きたことだけで、どのサーバのどのセッションかはわからず、応答はタブで行います。
  • tmuxのベル:monitor-bellと、ベルを通知に変えるターミナルを使います。無料で、制限は同じです。
  • ntfyなど、スマートフォン向けの通知サービスに送るフック。どこにいても届きますが、書くのも保守するのも自分で、応答するにはやはりターミナルに行く必要があります。

制限

  • サーバのroot権限を持つ人は誰でもソケットに届くので、あなたの承認に応答できます。信頼できるサーバだけを接続してください。
  • ノッチからの返信とプランの上限は、Mac上のセッションのためのものです。サーバの行にはありません。
  • 「接続解除」すると、ほかのMacがまだ使っていない限り、Gnistaのフックと~/.gnistaがサーバから削除されます。そのときサーバに接続できなければフックは残りますが、Gnistaがなければ何もしません。
  • コンテナやKubernetesのポッドの中のエージェント:コンテナのエージェント。
  • 組織は、管理するMacでリモートマシンをオフにできます:MDMでの設定。Gnistaが何をどこへ送るか:プライバシー。
  • 7日間無料、その後は€19の買い切り。詳しくはClaude Code、Codex、Gemini CLI、OpenCodeへ。

ほかのガイド。