Guida

Tenere viva una sessione di Claude Code con tmux

Un agente nel terminale vive dentro il terminale. Chiudi la finestra e perdi l’agente. Cade la connessione SSH e perdi l’agente. tmux mette l’agente in una sessione che il terminale si limita a guardare. La sessione continua a girare quando guardi altrove. Questo è il setup che usiamo su ogni Mac per agenti, con i comandi esatti.

Installa e avvia

brew install tmux
tmux new -s agent

Ora sei dentro una sessione chiamata agent. Avvia l’agente come qualsiasi altro comando.

claude

Per Codex, esegui il suo comando. Tutto quello che trovi in questa pagina funziona allo stesso modo con entrambi gli strumenti.

Staccati e torna

Premi Ctrl-b, rilascia, poi premi d. Il terminale torna alla shell e l’agente continua a lavorare in background. Per tornarci da qualsiasi terminale sulla macchina, riattaccati per nome.

tmux attach -t agent

Se dimentichi il nome, elenca le sessioni attive.

tmux ls

Riprendila dal telefono

Installa un client SSH sul telefono. Termius e Blink Shell sono i più diffusi. Collegati al Mac e riattaccati alla stessa sessione. Vedi esattamente cosa sta facendo l’agente e puoi scrivergli. Le tastiere del telefono sono scomode per i prompt lunghi. Quindi quasi tutti usano il telefono per controllare i progressi e rispondere a una domanda. Il lavoro vero lo fanno dal portatile.

Per Claude Code in particolare, Remote Control funziona meglio di SSH sul telefono. Collega l’app Claude alla sessione in corso, senza nessun terminale. La guida per far girare Claude Code 24/7 spiega come configurarlo. tmux resta importante sotto, perché Remote Control si collega a una sessione che deve già esistere.

Rendila comoda

Due impostazioni rendono tmux molto più comodo per il lavoro con gli agenti. Mettile in un file chiamato .tmux.conf nella tua cartella home.

set -g mouse on
set -g history-limit 50000

La prima ti fa scorrere con il trackpad o con il dito. La seconda conserva abbastanza output per leggere cosa ha fatto l’agente un’ora fa. Dopo aver salvato il file riavvia tmux, oppure ricaricalo da dentro una sessione.

tmux source-file ~/.tmux.conf

Sopravvivi a un riavvio

Le sessioni tmux vivono in memoria. Un riavvio le cancella. Su una macchina senza nessuno davanti, la sessione deve tornare da sola. Lo fa un LaunchAgent eseguito al login. Salva questo contenuto in un file chiamato dev.local.agent-session.plist, nella cartella LaunchAgents dentro la Library della tua home.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
  "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>Label</key><string>dev.local.agent-session</string>
  <key>ProgramArguments</key>
  <array>
    <string>/bin/sh</string>
    <string>-c</string>
    <string>/opt/homebrew/bin/tmux has-session -t agent 2>/dev/null || /opt/homebrew/bin/tmux new -d -s agent</string>
  </array>
  <key>RunAtLoad</key><true/>
  <key>StartInterval</key><integer>60</integer>
</dict>
</plist>

Caricalo una volta. Da quel momento parte a ogni login e poi controlla ogni minuto.

launchctl load ~/Library/LaunchAgents/dev.local.agent-session.plist

Crea una sessione vuota. Non riavvia l’agente al suo interno, ed è voluto. Un agente che si riavvia da solo dentro un task a metà, senza nessuno sveglio, è il modo per avere sorprese. Attiva il login automatico per l’utente, così il LaunchAgent ha una sessione in cui girare. Poi avvia tu il task la prossima volta che ti riattacchi.

Due sessioni, due agenti

Niente ti impedisce di eseguire Claude Code in una sessione e Codex in un’altra sulla stessa macchina. Funzionano anche due sessioni di Claude Code su due repository. Dai a ciascuna il nome del lavoro.

tmux new -s api-refactor
tmux new -s ios-tests

Tieni ogni agente nel suo checkout del repository, così non modificano gli stessi file. Con i git worktree costa poco.

Domande frequenti

tmux tiene attivo l’agente se il Mac va in stop?

+

No. tmux protegge dalla chiusura del terminale e dalla caduta della connessione. Lo stop congela tutta la macchina, tmux compreso. Risolvi lo stop a parte con le impostazioni di alimentazione, poi usa tmux sopra.

Che differenza c’è tra tmux e screen?

+

Risolvono lo stesso problema. tmux è mantenuto, è in Homebrew e ha le impostazioni di mouse e scrollback viste sopra. Usa quello che conosci. I comandi cambiano, ma l’idea è la stessa.

Posso vedere l’output dell’agente di prima che mi riattaccassi?

+

Sì. Scorri in alto dentro la sessione. L’impostazione history-limit decide quante righe vengono conservate. Con la modalità mouse attiva, scorri con il trackpad. Senza, premi Ctrl-b e poi il tasto della parentesi quadra aperta, scorri e premi q per uscire.

Funziona su un Mac in hosting?

+

Sì, ed è così che sono configurati i nostri Mac per agenti. Al login viene creata una sessione chiamata agent, con dentro l’agente scelto. Sul desktop che apri nel browser, una finestra di Terminale è collegata a quella sessione.

Guide correlate