#SSH
cmux ssh crée un espace de travail pour une machine distante. Les volets du navigateur transitent par le réseau distant, les fichiers glissent et déposent via scp, les agents de codage envoient des notifications à votre barre latérale locale et les sessions se reconnectent lors des dépôts.
#Utilisation
cmux ssh user@remote
cmux ssh user@remote --name "dev server"
cmux ssh user@remote -p 2222
cmux ssh user@remote -i ~/.ssh/id_ed25519cmux ssh lit votre ~/.ssh/config pour les alias d'hôte, les fichiers d'identité et les paramètres de proxy. Tous les drapeaux reflètent leurs équivalents ssh.
#Drapeaux
| Drapeau | Descriptif |
|---|---|
--name | Définir le titre de l'espace de travail |
-p, --port | Port SSH (22 par défaut) |
-i, --identity | Chemin d'accès au fichier d'identité |
-o, --ssh-option | Passez des options SSH arbitraires (par exemple -o StrictHostKeyChecking=no) |
--no-focus | Créez l'espace de travail sans y accéder |
#Liens profonds SSH
Utilisez les liens profonds cmux SSH lorsqu'un site Web ou un outil souhaite proposer un bouton Ouvrir dans cmux. Le lien ouvre cmux, affiche une invite de confirmation, puis exécute la commande cmux ssh équivalente après confirmation de l'utilisateur.
cmux://ssh?host=dev.example.com
cmux://ssh?host=dev.example.com&user=alice&port=2222&title=GPU%20box
cmux://ssh?host=workspace123.vm-ssh.freestyle.sh&user=workspace123%2Csession-token
cmux://ssh?host=dev.example.com&host-key-policy=accept-new&no-focus=trueUtilisez l'URL de secours cmux.com pour les boutons du site Web. Il ouvre le lien natif et affiche le téléchargement si cmux n'est pas installé.
https://cmux.com/deeplink/ssh?host=workspace123.vm-ssh.freestyle.sh&user=workspace123%2Csession-token&title=FreestyleLes boutons d’invite et de règles utilisent la même forme de secours. Les virgules, les deux-points et les signes plus littéraux sont conservés lorsqu'ils sont codés en URL :
https://cmux.com/deeplink/prompt?text=Review%20this%20branch
https://cmux.com/deeplink/rules?name=freestyle&text=Prefer%20commas,%20colons:%20and%20small%20PRsUtilisez l'icône SVG pour les boutons du tableau de bord ou le logo PNG lorsqu'une image raster est requise :
https://cmux.com/cmux-icon.svg
https://cmux.com/logo.pngCréez l'URL de secours avec URLSearchParams afin que les titres, les alias d'hôte et les noms d'utilisateur soient codés en toute sécurité :
const params = new URLSearchParams({
host: "workspace123.vm-ssh.freestyle.sh",
user: "workspace123,session-token",
title: "Freestyle",
});
const href = "https://cmux.com/deeplink/ssh?" + params.toString();| Paramètre | Signification |
|---|---|
host | Hôte SSH requis ou alias ~/.ssh/config. |
user | Utilisateur SSH facultatif. cmux le combine avec l'hôte en tant qu'utilisateur@hôte. |
port | Port SSH en option, 1 à 65535. |
title / name | Titre de l’espace de travail facultatif. Utilisez un seul titre ou nom. |
connect-timeout | Valeur ConnectTimeout facultative en secondes, 1 à 600. |
server-alive-interval | Valeur ServerAliveInterval facultative en secondes, de 1 à 3 600. |
server-alive-count-max | Valeur ServerAliveCountMax facultative, 1 à 100. |
host-key-policy | Politique StrictHostKeyChecking facultative : accept-new, request, strict ou yes. |
no-focus | Booléen facultatif. true crée l'espace de travail sans y accéder. |
Utilisez cmux:// pour l'application stable, cmux-nightly:// pour Nightly et cmux-dev:// pour le débogage ou les versions de développement balisées.
Les liens externes ne peuvent pas transmettre de fichiers d'identité, d'options SSH brutes, de commandes, de ProxyCommand ou de règles de transfert. Mettez plutôt les clés, ProxyJump, HostName et les options avancées dans ~/.ssh/config. cmux affiche l'aperçu de la commande et demande à l'utilisateur de faire confiance à la cible SSH avant de se connecter.
#Volets du navigateur
Les volets du navigateur dans un espace de travail distant acheminent tout le trafic HTTP et WebSocket via le réseau de la machine distante. Tapez localhost:3000 et vous regardez le serveur de développement exécuté sur la machine distante. Pas d'indicateurs -L, pas de redirection de port manuelle. Chaque espace de travail distant dispose d'un magasin de cookies isolé afin que les sessions soient définies par connexion.
#Glisser et déposer
Faites glisser une image ou un fichier dans un terminal distant et cmux le télécharge via scp via la connexion SSH existante. cmux détecte le processus SSH de premier plan par TTY et achemine le téléchargement via le multiplexage ControlMaster.
#Notifications
Les processus sur la machine distante peuvent exécuter des commandes cmux qui s'exécutent sur votre instance locale. Lorsqu'un agent de codage appelle cmux notify sur la boîte distante, la notification apparaît dans votre barre latérale locale. L'anneau bleu s'allume sur l'onglet de l'espace de travail. Cmd+Shift+U y accède. Le spam de notification provenant de connexions irrégulières est supprimé avec un temps de recharge par hôte.
#Agents de codage via SSH
cmux claude-teams et cmux omo fonctionnent tous deux dans les sessions SSH. Le démon de relais Go sur l'hôte distant gère la même traduction tmux-compat que la CLI Swift locale. Les agents Teammate apparaissent lorsque les cmux natifs se divisent sur votre machine locale pendant que le calcul s'exécute sur la machine distante.
# Inside an SSH session:
cmux claude-teams
cmux omo#Reconnecter
Lorsque la connexion est interrompue, cmux se reconnecte avec une interruption exponentielle (3 s, 6 s, 12 s, jusqu'à 60 s). La session à distance persiste et cmux se rattache à la reconnexion, redimensionnant avec la sémantique du plus petit écran gagnant. Les options keepalive par défaut (ServerAliveInterval=20, ServerAliveCountMax=2) sont injectées à moins que votre configuration ne les définisse déjà.
#Démon relais
Lors de la première connexion, cmux sonde l'hôte distant (uname -s, uname -m) et télécharge un binaire cmuxd-remote versionné. Le binaire parle JSON-RPC sur stdio et gère trois choses :
| Caractéristique | Comment |
|---|---|
| Proxy du trafic du navigateur | SOCKS5 et HTTP CONNECT sur le canal stdio du démon |
| Relais CLI | Tunnel TCP inversé avec authentification HMAC-SHA256 afin que les processus distants puissent appeler des commandes cmux localement |
| Gestion des séances | Maintient les sessions lors des reconnexions, coordonne le redimensionnement du PTY sur plusieurs pièces jointes |
Le binaire du démon est stocké dans ~/.cmux/bin/cmuxd-remote/<version>/<os>-<arch>/cmuxd-remote sur l'hôte distant et vérifié par rapport à un manifeste SHA-256 intégré dans l'application.