zshell

Sessioni remote condivise

Collegati allo stesso terminale tramite SSH o Tailscale e conserva i processi dopo la disconnessione.

zshell-server mantiene shell e processi su un host macOS o Linux. Entrambi i motori di terminale di Zshell possono collegarsi. Chiudere il client o perdere la rete non termina i processi. La riconnessione ripristina schermo, cronologia, cursore e modalità del terminale.

Installazione

In Host remoti…, scegli Installa / Aggiorna server via SSH. Un Mac con la stessa architettura usa l’eseguibile incluso. Per Linux, scegli il zshell-server compilato per piattaforma e architettura. Trasferimento e compatibilità sono verificati prima della sostituzione. Il daemon attivo mantiene la versione fino al riavvio, che termina i suoi lavori. Puoi anche compilare sull’host:

cargo build --locked --release --manifest-path remote/Cargo.toml
install -d "$HOME/.local/bin"
install -m 755 remote/target/release/zshell-server "$HOME/.local/bin/zshell-server"

Il client può operare sulla shell e sui file dell’account del server. Sono supportati macOS e Linux.

SSH

Verifica prima la chiave host e l’autenticazione con chiave o agent:

ssh devbox true

Apri gli host remoti dal menu di rete nella barra laterale. Inserisci nome, ssh://me@devbox:22 o alias SSH e ~/.local/bin/zshell-server. La connessione carica progetti e sessioni esistenti. Per creare una shell, indica una directory come ~/repo e apri il progetto remoto. Sono supportati percorsi con spazi; anche nuove schede e divisioni sono remote.

SSH avvia automaticamente il daemon e usa configurazione OpenSSH, chiavi, agent e chiavi host attendibili. Chiavi sconosciute ed errori di autenticazione vengono segnalati. File e Git usano SSH verso lo stesso host anche se il terminale usa Tailscale. I percorsi remoti non accedono ai file del Mac. ZSHELL_SSH_CONFIG_FILE può selezionare un altro file OpenSSH leggibile tramite percorso assoluto.

Tailscale

Accedi a Tailscale sui due dispositivi e avvia l’ascolto privato prima di creare sessioni:

zshell-server serve --listen tailscale://:7373

Aggiungi tailscale://devbox:7373. Sono supportati MagicDNS e indirizzi Tailscale IPv4/IPv6, mentre quelli pubblici sono rifiutati. Per impostazione predefinita sono ammessi solo dispositivi senza tag del proprietario dell’host. --allow-user autorizza un altro nome di accesso esatto; i client con tag restano esclusi. Sul server stesso usa SSH. Si applicano anche le ACL del tailnet. I client autorizzati possono operare con l’account Unix del servizio.

Per condividere questo Mac, accedi a Tailscale e scegli Condividi questo Mac in Host remoti…. Imposta porta e nomi di accesso esatti autorizzati. La condivisione parte su richiesta; Interrompi condivisione o uscire da Zshell termina le sessioni condivise.

Condivisione e chiusura

Tutti ricevono lo stesso output. Mettere a fuoco il terminale o assumerne il controllo concede input e dimensioni a quel client. Se si disconnette, subentra il client rimasto collegato da più tempo. Informazioni mostra stato, numero di client e controllo e consente di separare o riconnettere. Le interruzioni di rete vengono ritentate automaticamente; l’input offline viene scartato. Il layout salvato riconnette lo stesso UUID remoto.

Chiudere pannelli, progetti o finestre e usare una delle due opzioni di uscita separa soltanto il client. Terminare la sessione remota richiede conferma e arresta shell e processi per tutti. Sull’host: zshell-server terminate --project ~/repo --session UUID.

File e schermate

Copia file normali o una schermata e incolla nel pannello remoto. Zshell carica in una cartella privata dell’host e inserisce i percorsi citati per la shell. Massimo 32 file, 32 MiB ciascuno e 64 MiB totali; cartelle e link simbolici sono rifiutati. I caricamenti condivisi durano sette giorni. Anche i pannelli SSH Unix normali lo supportano.

Conversazioni Agent remote

Attività, avanzamento, richieste di approvazione e completamento dell’Agent remoto usano stati e notifiche esistenti. Cronologia conversazioni Agent include Claude Code, Codex, OpenCode e Pi dell’host. Riprendi riconnette una conversazione attiva o avvia la sessione esatta nell’host e directory originali. La cronologia sopravvive al riavvio del daemon; lavori e scorrimento del terminale no. Provider e configurazione o file di sessione originali devono essere disponibili.

Limiti

La persistenza dura finché il daemon è attivo, senza superare riavvii dell’host, arresti o riavvii del daemon. Le sessioni mancanti sono segnalate e mai sostituite automaticamente. Limiti: 128 sessioni, snapshot di 16 MiB e coda attiva di 1 MiB per client. I client lenti non bloccano gli altri; la cronologia resta nella memoria dell’host. Servizi e CLI sono descritti nel riferimento server.