#SSH
cmux ssh oppretter et arbeidsområde for en ekstern maskin. Nettleserruter ruter gjennom det eksterne nettverket, filer dra-og-slipp via scp, kodingsagenter sender varsler til din lokale sidefelt, og økter kobles til på nytt ved slipp.
#Bruk
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 leser ~/.ssh/config for vertsaliaser, identitetsfiler og proxy-innstillinger. Alle flagg gjenspeiler deres ssh-ekvivalenter.
#Flagg
| Flagg | Beskrivelse |
|---|---|
--name | Angi arbeidsområdetittelen |
-p, --port | SSH-port (standard 22) |
-i, --identity | Sti til identitetsfil |
-o, --ssh-option | Send vilkårlige SSH-alternativer (f.eks. -o StrictHostKeyChecking=no) |
--no-focus | Lag arbeidsområdet uten å bytte til det |
#SSH dyplenker
Bruk cmux SSH-dypkoblinger når et nettsted eller et verktøy ønsker å tilby en Åpne i cmux-knapp. Koblingen åpner cmux, viser en bekreftelsesmelding, og kjører deretter den tilsvarende cmux ssh-kommandoen etter at brukeren har bekreftet.
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=trueBruk cmux.com reserve-URL for nettsideknapper. Den åpner den opprinnelige koblingen og viser nedlastingen hvis cmux ikke er installert.
https://cmux.com/deeplink/ssh?host=workspace123.vm-ssh.freestyle.sh&user=workspace123%2Csession-token&title=FreestyleSpørre- og reglerknapper bruker samme reserveform. Kommaer, koloner og bokstavelige plusstegn bevares når de er URL-kodet:
https://cmux.com/deeplink/prompt?text=Review%20this%20branch
https://cmux.com/deeplink/rules?name=freestyle&text=Prefer%20commas,%20colons:%20and%20small%20PRsBruk SVG-ikonet for dashbordknapper, eller PNG-logoen når et rasterbilde kreves:
https://cmux.com/cmux-icon.svg
https://cmux.com/logo.pngBygg reservenettadressen med URLSearchParams slik at titler, vertsaliaser og brukernavn kodes trygt:
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();| Parameter | Mening |
|---|---|
host | Nødvendig SSH-vert eller ~/.ssh/config-alias. |
user | Valgfri SSH-bruker. cmux kombinerer det med vert som bruker@vert. |
port | Valgfri SSH-port, 1 til 65535. |
title / name | Valgfri arbeidsområdetittel. Bruk bare én av tittel eller navn. |
connect-timeout | Valgfri ConnectTimeout-verdi i sekunder, 1 til 600. |
server-alive-interval | Valgfri ServerAliveInterval-verdi i sekunder, 1 til 3600. |
server-alive-count-max | Valgfri ServerAliveCountMax-verdi, 1 til 100. |
host-key-policy | Valgfri StrictHostKeyChecking-policy: godta-ny, spør, streng eller ja. |
no-focus | Valgfri boolsk. true skaper arbeidsområdet uten å bytte til det. |
Bruk cmux:// for den stabile appen, cmux-nightly:// for Nightly, og cmux-dev:// for feilsøking eller merkede dev-bygg.
Eksterne lenker kan ikke sende identitetsfiler, rå ssh-alternativer, kommandoer, ProxyCommand eller videresendingsregler. Sett nøkler, ProxyJump, HostName og avanserte alternativer i ~/.ssh/config i stedet. cmux viser kommandoforhåndsvisningen og krever at brukeren stoler på SSH-målet før tilkobling.
#Nettleserruter
Nettleserruter i et eksternt arbeidsområde ruter all HTTP- og WebSocket-trafikk gjennom den eksterne maskinens nettverk. Skriv localhost:3000 og du ser på utviklerserveren som kjører på den eksterne boksen. Ingen -L-flagg, ingen manuell portvideresending. Hvert eksternt arbeidsområde får en isolert lagring av informasjonskapsler, slik at øktene er begrenset per tilkobling.
#Dra og slipp
Dra et bilde eller en fil til en ekstern terminal og cmux laster det opp via scp gjennom den eksisterende SSH-tilkoblingen. cmux oppdager SSH-prosessen i forgrunnen av TTY og ruter opplastingen gjennom ControlMaster-multipleksing.
#Varsler
Prosesser på den eksterne maskinen kan kjøre cmux-kommandoer som kjøres på din lokale forekomst. Når en kodeagent ringer cmux-varsling på den eksterne boksen, vises varselet i din lokale sidefelt. Den blå ringen lyser på arbeidsområdefanen. Cmd+Shift+U hopper til den. Varslingsspam fra ustabile tilkoblinger undertrykkes med en nedkjøling per vert.
#Kodemidler over SSH
cmux claude-teams og cmux omo jobber begge i SSH-økter. Go relay daemon på den eksterne verten håndterer den samme tmux-kompat-oversettelsen som den lokale Swift CLI gjør. Lagkamerater gyter når native cmux splitter på din lokale maskin mens beregningen kjører på den eksterne boksen.
# Inside an SSH session:
cmux claude-teams
cmux omo#Koble til på nytt
Når tilkoblingen faller, kobles cmux til igjen med eksponentiell backoff (3s, 6s, 12s, opptil 60s). Den eksterne økten vedvarer og cmux kobles til på nytt ved tilkobling, endre størrelse med semantikk for minste skjermvinner. Standard keepalive-alternativer (ServerAliveInterval=20, ServerAliveCountMax=2) injiseres med mindre konfigurasjonen din allerede angir dem.
#Stafettdemon
Ved første tilkobling sonderer cmux den eksterne verten (uname -s, uname -m) og laster opp en versjonert cmuxd-remote binær. Binæren snakker JSON-RPC over stdio og håndterer tre ting:
| Funksjon | Hvordan |
|---|---|
| Nettlesertrafikk proxying | SOCKS5 og HTTP CONNECT over daemonens stdio-kanal |
| CLI-relé | Omvendt TCP-tunnel med HMAC-SHA256-autentisering slik at eksterne prosesser kan kalle cmux-kommandoer lokalt |
| Sesjonsledelse | Vedvarer økter på tvers av gjentilkoblinger, koordinerer PTY-endring på tvers av flere vedlegg |
Daemon-binæren er lagret på ~/.cmux/bin/cmuxd-remote/<version>/<os>-<arch>/cmuxd-remote på den eksterne verten og verifisert mot et SHA-256-manifest innebygd i appen.