Thanks to visit codestin.com
Credit goes to cmux.com

#SSH

cmux ssh crea uno spazio di lavoro per un computer remoto. I riquadri del browser vengono instradati attraverso la rete remota, i file vengono trascinati e rilasciati tramite scp, gli agenti di codifica inviano notifiche alla barra laterale locale e le sessioni si riconnettono in caso di rilascio.

#Utilizzo

cmux ssh user@remote
cmux ssh user@remote --name "dev server"
cmux ssh user@remote -p 2222
cmux ssh user@remote -i ~/.ssh/id_ed25519

cmux ssh legge il tuo ~/.ssh/config per alias host, file di identità e impostazioni proxy. Tutti i flag rispecchiano i loro equivalenti ssh.

#Bandiere

BandieraDescrizione
--nameImposta il titolo dell'area di lavoro
-p, --portPorta SSH (predefinita 22)
-i, --identityPercorso del file di identità
-o, --ssh-optionPassa opzioni SSH arbitrarie (ad esempio -o StrictHostKeyChecking=no)
--no-focusCrea l'area di lavoro senza passare ad essa

Utilizza i collegamenti diretti cmux SSH quando un sito Web o uno strumento desidera offrire un pulsante Apri in cmux. Il collegamento apre cmux, mostra una richiesta di conferma, quindi esegue il comando cmux ssh equivalente dopo la conferma dell'utente.

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=true

Utilizzare l'URL di fallback cmux.com per i pulsanti del sito Web. Apre il collegamento nativo e mostra il download se cmux non è installato.

https://cmux.com/deeplink/ssh?host=workspace123.vm-ssh.freestyle.sh&user=workspace123%2Csession-token&title=Freestyle

I pulsanti di richiesta e regole utilizzano la stessa forma di fallback. Le virgole, i due punti e i segni più letterali vengono conservati quando sono codificati nell'URL:

https://cmux.com/deeplink/prompt?text=Review%20this%20branch
https://cmux.com/deeplink/rules?name=freestyle&text=Prefer%20commas,%20colons:%20and%20small%20PRs

Utilizza l'icona SVG per i pulsanti del dashboard o il logo PNG quando è richiesta un'immagine raster:

https://cmux.com/cmux-icon.svg
https://cmux.com/logo.png

Crea l'URL di fallback con URLSearchParams in modo che titoli, alias host e nomi utente siano codificati in modo sicuro:

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();
ParametroSignificato
hostRichiesto host SSH o alias ~/.ssh/config.
userUtente SSH opzionale. cmux lo combina con host come utente@host.
portPorta SSH opzionale, da 1 a 65535.
title / nameTitolo dell'area di lavoro facoltativo. Utilizzare solo uno tra titolo o nome.
connect-timeoutValore ConnectTimeout facoltativo in secondi, da 1 a 600.
server-alive-intervalValore ServerAliveInterval facoltativo in secondi, da 1 a 3600.
server-alive-count-maxValore ServerAliveCountMax facoltativo, compreso tra 1 e 100.
host-key-policyPolitica StrictHostKeyChecking facoltativa: accetta-nuovo, chiedi, rigoroso o sì.
no-focusBooleano facoltativo. true crea l'area di lavoro senza passare ad essa.

Utilizza cmux:// per l'app stabile, cmux-nightly:// per Nightly e cmux-dev:// per Debug o build di sviluppo contrassegnate.

I collegamenti esterni non possono passare file di identità, opzioni ssh non elaborate, comandi, ProxyCommand o regole di inoltro. Metti invece le chiavi, ProxyJump, HostName e le opzioni avanzate in ~/.ssh/config. cmux visualizza l'anteprima del comando e richiede all'utente di fidarsi della destinazione SSH prima di connettersi.

#Riquadri del browser

I riquadri del browser in un'area di lavoro remota instradano tutto il traffico HTTP e WebSocket attraverso la rete del computer remoto. Digita localhost:3000 e stai guardando il server di sviluppo in esecuzione sulla scatola remota. Nessun flag -L, nessun port forwarding manuale. Ogni area di lavoro remota ottiene un archivio di cookie isolato, quindi le sessioni hanno un ambito per connessione.

#Trascina e rilascia

Trascina un'immagine o un file in un terminale remoto e cmux lo carica tramite scp tramite la connessione SSH esistente. cmux rileva il processo SSH in primo piano tramite TTY e instrada il caricamento tramite il multiplexing ControlMaster.

#Notifiche

I processi sul computer remoto possono eseguire comandi cmux eseguiti sull'istanza locale. Quando un agente di codifica chiama cmux notify sulla casella remota, la notifica viene visualizzata nella barra laterale locale. L'anello blu si illumina nella scheda dell'area di lavoro. Cmd+Shift+U salta ad esso. Lo spam di notifiche proveniente da connessioni instabili viene soppresso con un tempo di recupero per host.

#Agenti di codifica su SSH

cmux claude-teams e cmux omo funzionano entrambi all'interno delle sessioni SSH. Il demone di inoltro Go sull'host remoto gestisce la stessa traduzione tmux-compat eseguita dalla CLI Swift locale. Gli agenti dei compagni di squadra vengono generati come suddivisioni cmux native sul computer locale mentre il calcolo viene eseguito sul dispositivo remoto.

# Inside an SSH session:
cmux claude-teams
cmux omo

#Riconnettiti

Quando la connessione si interrompe, cmux si riconnette con backoff esponenziale (3s, 6s, 12s, fino a 60s). La sessione remota persiste e cmux si ricollega alla riconnessione, ridimensionandosi con la semantica dello schermo più piccolo. Le opzioni keepalive predefinite (ServerAliveInterval=20, ServerAliveCountMax=2) vengono inserite a meno che la configurazione non le abbia già impostate.

#Demone di inoltro

Alla prima connessione, cmux analizza l'host remoto (uname -s, uname -m) e carica un file binario cmuxd-remote con versione. Il binario parla JSON-RPC su stdio e gestisce tre cose:

CaratteristicaCome
Proxy del traffico del browserSOCKS5 e HTTP CONNECT sul canale stdio del demone
Relè CLITunnel TCP inverso con autenticazione HMAC-SHA256 in modo che i processi remoti possano chiamare i comandi cmux localmente
Gestione della sessioneMantiene le sessioni tra le riconnessioni, coordina il ridimensionamento PTY tra più allegati

Il binario del daemon è archiviato in ~/.cmux/bin/cmuxd-remote/<version>/<os>-<arch>/cmuxd-remote sull'host remoto e verificato rispetto a un manifest SHA-256 incorporato nell'app.