Des agents sur un serveur,
et vous répondez depuis votre Mac.

Vos agents tournent sur un serveur ; vous, vous travaillez sur un Mac. Connectez le serveur une fois, et ses sessions ont leur ligne dans l’encoche, à côté de vos sessions locales, avec leurs requêtes, leur coût et un clic qui retrouve le bon onglet. Ce guide explique comment le configurer, ce que Gnista installe sur le serveur, et ce qui ne fonctionne pas.

7 jours d’essai gratuitSans compte ni carte · puis 19 € une fois

Mis à jour le

En deux mots

Dans Réglages ▸ À distance, cliquez sur Connecter et choisissez un hôte de votre config ssh. Gnista y copie son utilitaire, connecte chaque agent qu’il trouve, et garde une connexion ouverte via votre propre ssh. Leurs sessions s’affichent dans l’encoche avec le nom de la machine.

Avant de commencer

  • Gnista sur votre Mac, avec macOS 15 ou ultérieur.
  • Un serveur Linux, x86_64 ou arm64, ou un Mac avec la session à distance activée.
  • Vos agents installés sur la machine, pour l’utilisateur avec lequel vous vous connectez : Claude Code, Codex, Gemini CLI, OpenCode, Copilot CLI ou tout autre agent que Gnista connecte sur votre Mac.
  • La machine dans votre ~/.ssh/config. Le plus simple est une clé qui ne vous demande rien ; si la connexion demande un mot de passe, un code ou l’approbation d’une clé, Gnista vous le demande une fois, dans Terminal.

Votre config ssh

Une entrée comme celle-ci suffit. Gnista applique tout ce que dit votre config : ports, utilisateurs, clés, ProxyJump et les hôtes qu’y ajoutent Coder, Codespaces ou DevPod fonctionnent comme dans Terminal.

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

Vérifier la connexion

ssh devbox uname -sm

La commande doit afficher Linux x86_64, Linux aarch64 ou Darwin arm64. Si ssh vous demande de faire confiance à la clé de l’hôte, répondez-y là, une fois.

Connecter le serveur

  1. Ouvrez Réglages ▸ À distance. Cliquez sur Connecter et choisissez l’hôte, ici devbox. S’il n’est pas dans votre config : Autre hôte…, puis saisissez-le.
  2. Gnista identifie le système avec uname, copie dans ~/.gnista sur la machine son utilitaire pour ce système, et vérifie qu’il est arrivé intact. Il ajoute ensuite ses hooks à chaque agent qu’il trouve.
  3. La ligne de la machine indique combien d’agents il a connectés, par exemple « Connecté, 2 agents ». Survolez-la pour voir leurs noms.
  4. Si la ligne indique « Attend que vous vous connectiez. », cliquez sur Se connecter. Terminal s’ouvre, vous vous connectez une fois, et la connexion de Gnista passe par cette session.
  5. Lancez une session sur le serveur. Sa ligne apparaît dans l’encoche, avec le nom du serveur à côté du projet.

Ce que vous obtenez

  • Une ligne par session, avec le nom de la machine là où une ligne locale affiche son app. Survolez-la : « Sur devbox, via SSH ».
  • Ses requêtes dans l’encoche. Quand l’agent demande quelque chose, l’encoche s’ouvre avec la requête, comme pour une session locale. Avec Réglages ▸ Général ▸ Répondre aux invites dans Gnista activé, vous y répondez directement ; Gnista répercute ce réglage sur le serveur.
  • Les détails. Le titre, le dernier message, ainsi que les tokens et le coût, lus sur le serveur pour les agents qui les conservent.
  • Le bon onglet. Un clic fait apparaître l’onglet de terminal de votre Mac d’où part le ssh, le mosh ou l’Eternal Terminal de l’agent, et y affiche son volet tmux. Dans une fenêtre distante de VS Code, Cursor, Windsurf ou Zed, c’est cette fenêtre ; pour une session que Claude Desktop a lancée via SSH, sa conversation.
  • Une seule connexion. L’installation, la connexion et les clics partagent une seule connexion ssh : une notification Duo ou l’approbation d’une clé n’arrive qu’une fois, pas à chaque fois.
  • Une connexion qui revient. Après une coupure, une mise en veille ou un changement de réseau, Gnista se reconnecte de lui-même. En attendant, les lignes restent, et la machine indique « Injoignable pour le moment. »

Si vos outils de sécurité signalent les tunnels

Le menu ⋯ de chaque machine propose un réglage Connexion. Automatique convient à la plupart des serveurs. Sans redirection envoie les messages des hooks par une commande ssh ordinaire plutôt que par une redirection. Par mon propre ssh ne laisse à Gnista aucune connexion propre : Configurer installe l’utilitaire une fois et vous donne une ligne RemoteForward pour votre config ssh, afin que vos propres sessions ssh transportent les événements des agents. Pour votre service informatique : sécurité et confidentialité.

Plusieurs Mac

Connectez le même serveur depuis chacun de vos Mac. Chacun y a son propre socket, tous affichent ses sessions, et la première réponse à une requête l’emporte. Déconnecter sur un Mac laisse Gnista sur le serveur pour les autres.

Ce que Gnista installe sur le serveur

Sur le serveurCe que c’est
~/.gnista/bin/gnistaL’utilitaire de Gnista, que lancent les hooks. Un seul fichier, sans dépendances, avec ses fichiers d’agents et de modèles dans ~/.gnista/Resources.
~/.gnista/settings.jsonS’il faut attendre une réponse depuis l’encoche : le réglage Répondre aux invites dans Gnista de votre Mac.
~/.gnista/sockets/L’extrémité de la connexion sur le serveur, une par Mac, lisible par vous seul.
Each agent’s settingsSes hooks, comme sur votre Mac : ~/.claude/settings.json pour Claude Code, ~/.codex/hooks.json pour Codex, et ainsi de suite.

À chaque démarrage de la connexion, Gnista met tout cela à jour : un nouvel utilitaire après une mise à jour de Gnista, et des hooks pour un agent installé entre-temps. Les réglages de vos agents sont sauvegardés avant que Gnista n’y ajoute ses hooks, et vos propres hooks restent en place.

Comment ça marche

Pour chaque machine, Gnista ouvre un socket sur votre Mac et lance votre ssh avec une redirection inverse vers ce socket : les hooks de la machine parlent ainsi à Gnista, sur votre Mac, par cette connexion. En résumé :

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

Si le serveur ne redirige aucun socket, Gnista redirige à la place un port sur sa boucle locale, et chaque connexion doit commencer par un mot de passe que seul votre compte sur le serveur peut lire. S’il ne redirige rien du tout, l’utilitaire transporte les messages des hooks par une commande ssh ordinaire.

Le nom du serveur sur une ligne vient de la connexion par laquelle l’événement est arrivé, et non de ce que déclare le serveur : un serveur ne peut donc pas se faire passer pour un autre. Si la connexion est coupée, les hooks ne trouvent pas Gnista, rendent la main aussitôt, et l’agent pose sa question dans son terminal, comme d’habitude.

L’utilitaire pour Linux vient des téléchargements publics de Gnista sur GitHub, une fois par version de Gnista et par processeur, et Gnista ne s’en sert que s’il est signé avec la clé de Gnista pour cette version. Un Mac reçoit l’utilitaire de votre Gnista, signé et notarisé.

Dépannage

  • « ssh indique : … » Les derniers mots de ssh lui-même. Lancez la vérification ci-dessus avec le même hôte, puis cliquez de nouveau sur Connecter.
  • « Attend que vous vous connectiez. » Cliquez sur Se connecter et connectez-vous dans Terminal. Avec 1Password, sa demande attend peut-être derrière d’autres fenêtres ; survolez la ligne pour voir ce qu’a dit ssh.
  • « Injoignable pour le moment. » Survolez la ligne pour voir les mots de ssh. Gnista continue d’essayer, en attendant un peu plus à chaque fois.
  • « Gnista connecte les machines Linux et les Mac ; celle-ci est « … ». » L’hôte tourne sous un autre système, que Gnista ne sait pas connecter.
  • « Gnista n’a pas pu télécharger son assistant pour Linux. Vérifiez que le Mac est en ligne, puis réessayez. » Votre Mac doit pouvoir joindre github.com la première fois qu’un serveur a besoin de l’utilitaire pour cette version.
  • « L’utilitaire est arrivé modifié » Gnista ne s’en est pas servi. Cliquez de nouveau sur Connecter.
  • « Connecté, mais aucun de ses agents n’est un de ceux que Gnista connecte. » Installez un agent sur le serveur, pour le même utilisateur. Gnista le connecte au prochain démarrage de la connexion, ou tout de suite si vous cliquez sur Déconnecter puis sur Connecter.
  • « C’est le même compte que …, déjà connecté. » Deux noms de votre config ssh mènent au même compte. Gardez-en un.
  • Une session ne s’affiche pas. Vérifiez que la ligne de la machine indique Connecté, puis lancez une nouvelle session : une session déjà en cours n’a peut-être pas les hooks de Gnista.
  • « Désactivé par votre organisation. » Votre Mac est géré, et RemoteMachinesAllowed est désactivé. Adressez-vous à votre service informatique.

Sans Gnista

  • Les notifications du terminal : celles de Claude Code sont des séquences d’échappement dans le terminal, elles passent donc par ssh jusqu’à iTerm2 et aux autres terminaux qui savent les afficher. Elles vous disent qu’il s’est passé quelque chose, pas sur quel serveur ni dans quelle session, et vous répondez dans l’onglet.
  • La sonnerie de tmux, avec monitor-bell et un terminal qui transforme les sonneries en notifications. Gratuit, avec les mêmes limites.
  • Un hook qui envoie une notification sur votre téléphone via un service comme ntfy. Il vous trouve où que vous soyez, mais c’est à vous de l’écrire et de le maintenir, et pour répondre, il faut toujours retourner au terminal.

Limites

  • Toute personne ayant les droits root sur le serveur peut répondre à vos demandes d’autorisation, puisqu’elle peut atteindre le socket. Ne connectez que des serveurs de confiance.
  • Les relances depuis l’encoche et les limites du forfait concernent les sessions sur votre Mac ; les lignes d’un serveur ne les ont pas.
  • Déconnecter retire du serveur les hooks de Gnista et ~/.gnista, sauf si un autre Mac s’en sert encore. Si le serveur est injoignable à ce moment-là, les hooks restent ; sans Gnista, ils ne font rien.
  • Les agents dans des conteneurs ou des pods Kubernetes : les agents dans des conteneurs.
  • Les organisations peuvent désactiver les machines distantes sur leurs Mac : réglages gérés. Ce que Gnista envoie, et où : confidentialité.
  • Sept jours gratuits, puis 19 € une fois. Plus de détails sur Claude Code, Codex, Gemini CLI et OpenCode.

D’autres guides.