Vai al contenuto

Claude Code su GitHub nel cloud: sessione, pull request e teleport

Illustrazione 3D con sviluppatori e un computer connesso a una nuvola luminosa sulla parete.
Immagine generata con IA

Questa guida è per chi sviluppa su GitHub e vuole affidare un compito a Claude Code senza tenerlo aperto sul proprio computer. La sessione gira su una macchina virtuale nel cloud gestita da Anthropic. Va avanti anche a portatile chiuso e si può seguire dal browser o dal telefono. Si parte collegando l’account GitHub e avviando la prima sessione cloud da claude.ai/code o dal terminale. Poi si sceglie quanta autonomia lasciare a Claude, si rivede il diff e si apre la pull request. Alla fine si porta la stessa sessione nel terminale locale con --teleport, insieme al suo branch e a tutta la conversazione. I comandi sono quelli della documentazione ufficiale di Anthropic, elencata in fondo.

Coding on the go with Claude CodeIl video si carica da YouTube quando premi play

Cosa serve

I requisiti vengono dalle pagine Use Claude Code in the cloud e Advanced setup:

  • Un abbonamento Claude Pro, Max o Team, oppure un posto Enterprise di tipo premium o Chat + Claude Code. Il piano gratuito di claude.ai non include Claude Code. Le sessioni cloud consumano gli stessi limiti d’uso del resto di Claude e Claude Code, e la macchina virtuale non si paga a parte.
  • Un account GitHub e un repository che esiste già. Per un progetto nuovo bisogna prima creare su GitHub un repository vuoto. Le istanze self-hosted di GitHub Enterprise Server sono supportate solo sui piani Team ed Enterprise.
  • L’organizzazione non deve avere Zero Data Retention, configurazione HIPAA o chiavi di cifratura gestite dal cliente (CMEK): ciascuna esclude le sessioni cloud. Se è attivo anche IP allowlisting, ogni sessione ospitata da Anthropic fallisce con un errore di autenticazione, a meno di contattare l’assistenza Anthropic per esentare questi servizi dalla lista.
  • Per la parte da terminale (--cloud e --teleport) serve la CLI di Claude Code. Funziona su macOS 13.0 o successivo, su Windows 10 1809 o successivo (oppure Windows Server 2019 o successivo), su Ubuntu 20.04+, Debian 10+ e Alpine Linux 3.19+. Chiede almeno 4 GB di RAM, un processore x64 o ARM64, una connessione a internet e una shell tra Bash, Zsh, PowerShell e CMD. Su Windows nativo è consigliato Git for Windows, che con WSL invece non serve.

Nella configurazione ospitata da Anthropic, ogni sessione parte su una macchina virtuale nuova con Ubuntu 24.04 su x86_64. I limiti indicativi sono 4 vCPU, 16 GB di RAM e 30 GB di disco, come riporta la pagina Configure cloud environments.

1. Collegare l’account GitHub da claude.ai/code

Su Team ed Enterprise c’è un passaggio da fare prima. Un Owner dell’organizzazione Claude deve attivare il connettore GitHub in Organization settings > Connectors. Finché non lo fa, al posto del pulsante di accesso compare il messaggio «GitHub access is required for Claude Code cloud sessions». Una volta attivato il connettore, ricaricate claude.ai/code e ripartite dall’inizio.

Il collegamento si fa una volta sola. Aprite claude.ai/code e accedete con il vostro account claude.ai. La pagina vi chiede di collegare GitHub e vi manda alla pagina di autorizzazione di GitHub. Approvate la richiesta e verrete riportati su claude.ai/code. La procedura completa è nella guida rapida alle sessioni cloud. Chi usa già la CLI di GitHub può anche collegarsi dal terminale, come spiegato alla fine del passaggio 2, dopo aver installato Claude Code.

Con questa autorizzazione le sessioni possono clonare qualsiasi repository pubblico. Per lavorare su quelli privati bisogna installare la Claude GitHub App sull’account o sull’organizzazione a cui appartengono, dalla pagina della Claude GitHub App indicata nella documentazione. Su un’organizzazione GitHub può servire l’approvazione di un owner. Se la richiesta di installazione compare durante la configurazione iniziale e preferite rimandarla, premete «Skip».

Poi serve un ambiente cloud. Su Pro e Max viene creato in automatico e si chiama «Default». Su Team ed Enterprise compare invece il modulo «Create your first cloud environment»: lasciate il nome e l’accesso di rete proposti e premete «Create & finish». Se un Owner ha attivato Quick setup, l’ambiente viene creato senza passare dal modulo. «Default» usa l’accesso di rete «Trusted», che limita le connessioni attraverso la rete della sessione ai domini consentiti. Questa lista non filtra il traffico del proxy GitHub, dei connettori MCP abilitati, degli host ammessi dei network secrets e delle richieste di Claude Code all’API Anthropic. Non ha variabili né script di avvio, e per un primo progetto va bene così.

2. Installare la CLI di Claude Code e accedere

Per lavorare dal browser la CLI non serve. Serve invece per avviare sessioni dal terminale e per riprenderle in locale con --teleport. Il metodo consigliato è l’installer nativo, che poi si aggiorna da solo.

I tre comandi qui sotto scaricano uno script da claude.ai e lo eseguono subito con i permessi del vostro utente. Su Windows non servono i diritti di amministratore. Prima di premere Invio controllate che l’indirizzo sia esattamente claude.ai, perché un indirizzo sbagliato farebbe eseguire lo script di qualcun altro. Se preferite non eseguire uno script scaricato, usate Homebrew o WinGet, spiegati più sotto. Questo comando vale per macOS, Linux e WSL. Con WSL va lanciato nel terminale della distribuzione, non in PowerShell:

curl -fsSL https://claude.ai/install.sh | bash

Su Linux, dopo l’installazione e prima di avviare Claude Code, verificate la firma del manifest della versione installata e confrontate il checksum SHA256 del binario con quello nel manifest, seguendo la sezione «Verify the manifest signature» di Advanced setup.

Su Alpine Linux e sulle altre distribuzioni basate su musl, il comando fallisce finché non si installano bash e curl. Per funzionare, Claude Code ha bisogno anche di libgcc, libstdc++ e ripgrep, con l’impostazione USE_BUILTIN_RIPGREP=0. La sezione dedicata ad Alpine della pagina Advanced setup spiega come preparare il sistema.

Su Windows, in PowerShell (il prompt comincia con PS C:\):

irm https://claude.ai/install.ps1 | iex

Su Windows, nel Prompt dei comandi (CMD, con il prompt C:\ senza PS):

curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd

Se lanciate il comando per CMD dentro PowerShell, compare un errore secondo cui il token «&&» non è un separatore valido. Nel caso opposto CMD risponde che «irm» non è riconosciuto come comando.

Con Homebrew o WinGet

Con Homebrew, il cask claude-code segue il canale stable, che di solito è indietro di circa una settimana rispetto all’ultima versione:

brew install --cask claude-code

Su Windows con WinGet:

winget install Anthropic.ClaudeCode

Verificare l’installazione e accedere

Aprite una nuova finestra di terminale e controllate la versione:

claude --version

Se l’installazione è riuscita, compare un numero di versione seguito da «(Claude Code)». Se la shell dice che claude non esiste, la cartella di installazione non è ancora nel PATH: la sezione «Fix your PATH» della pagina Advanced setup spiega come risolvere. A questo punto accedete con l’account claude.ai. Per --cloud e --teleport una chiave API non basta, e non vanno bene nemmeno i provider esterni come Amazon Bedrock:

claude auth login

In alternativa: collegare GitHub dal terminale

Se usate già gh, la CLI di GitHub, potete collegare GitHub da qui al posto del passaggio 1. Servono la CLI di Claude Code installata e l’accesso con l’account claude.ai appena fatto. Su Team ed Enterprise questa strada funziona solo se un Owner ha attivato Quick setup.

/web-setup legge il token salvato da gh e, dopo la vostra conferma, lo invia ad Anthropic, che lo conserva cifrato insieme al vostro account claude.ai. Da quel momento le sessioni che avviate voi possono raggiungere ogni repository accessibile con quel token, anche senza la GitHub App. Se avevate già collegato GitHub dal browser, questa connessione prende il posto di quella. Se non l’avete ancora fatto, autenticate la CLI di GitHub nella shell:

gh auth login

Poi avviate Claude Code con il comando claude e digitate questo al suo prompt, non nella shell:

/web-setup

Confermate l’invio del token. Se va tutto bene, Claude Code mostra il nome utente GitHub collegato e apre claude.ai/code nel browser. Se non avevate ancora un ambiente, ne crea uno con accesso «Trusted» e senza script di avvio.

3. Tenere aggiornata la CLI

L’installazione nativa si aggiorna in background, e la nuova versione entra in funzione al riavvio successivo. Per aggiornare subito:

claude update

Homebrew e WinGet invece non si aggiornano da soli. Con Homebrew:

brew upgrade claude-code

Se avete installato il cask claude-code@latest, il comando di aggiornamento è brew upgrade claude-code@latest. Con WinGet:

winget upgrade Anthropic.ClaudeCode

Il comando seguente fa una diagnosi in sola lettura, senza aprire una sessione. Mostra lo stato dell’installazione, gli eventuali errori nei file di impostazioni e l’esito dell’ultimo aggiornamento:

claude doctor

4. Avviare la prima sessione cloud

Dal browser

Su claude.ai/code scegliete il repository con il selettore sotto la casella di testo (se ne possono aggiungere anche più di uno). Per partire da un branch diverso da quello predefinito usate il controllo subito dopo il selettore. Scegliete la modalità di permessi (passaggio 5), descrivete il compito e premete Invio.

Nel compito indicate il file o la funzione, incollate l’eventuale messaggio d’errore e descrivete il comportamento che vi aspettate, non solo il sintomo. Claude clona il repository nella macchina virtuale e si mette al lavoro. Quando arriva a un punto di arresto, fa push di un branch su GitHub. Ogni compito ha la sua sessione e il suo branch. Chiudere la scheda non ferma la sessione: Claude finisce il compito in corso e poi resta in attesa.

Dal terminale

Lanciate il comando dalla cartella del repository. La macchina virtuale non copia i file del vostro computer: clona dal remote GitHub il branch su cui vi trovate. Se avete commit locali, fate prima push. Si lavora su un repository alla volta. Il testo tra virgolette è la descrizione del compito, qui con l’esempio della documentazione:

claude --cloud "Fix the authentication bug in src/auth/login.ts"

Mentre il container si avvia, la CLI mostra l’elenco dei passaggi di preparazione e mette in coda i messaggi che scrivete nel frattempo. La sessione compare poi su claude.ai/code e nell’app Claude. Il vecchio nome --remote funziona ancora ma è deprecato, mentre --remote-control è un’altra funzione, che serve a controllare una sessione locale. Oltre all’accesso con claude.ai, --cloud richiede che nell’organizzazione sia attiva la policy allow_remote_sessions. Un Owner la attiva da claude.ai/admin-settings/claude-code.

C’è un caso a cui fare attenzione. Se il repository non ha un remote git, oppure è su github.com ma senza la Claude GitHub App, Claude Code non clona. Impacchetta invece il repository locale e lo carica nella sessione, anche se avete usato /web-setup. Il pacchetto contiene la cronologia e le modifiche non committate ai file tracciati. Su macOS, Linux e WSL restano fuori le modifiche non committate a file come .env, *.tfvars, id_rsa e *.pem. Su Windows nativo invece viene caricato tutto così com’è, quindi mettete da parte o annullate prima le modifiche che non volete mandare nel cloud. Per evitare il caricamento, fate push del branch e installate la GitHub App sul repository.

5. Scegliere la modalità di permessi

La modalità si sceglie dal menu a tendina accanto alla casella del prompt, sia quando si crea la sessione sia mentre è in corso. Le sessioni cloud non offrono le modalità Manual e Bypass permissions. Le modifiche ai file vengono sempre approvate in automatico, ed è per questo che la modalità di base si chiama Accept edits. I dettagli sono nella pagina Choose a permission mode.

ModalitàChe cosa fa ClaudeQuando è disponibile
Accept editsModifica i file e fa push di un branch senza chiedere approvazioneSempre
PlanLegge i file, esplora il codice anche lanciando comandi e propone un piano. Non tocca i file finché non lo approvateSempre
AutoUn secondo modello, il classificatore, valuta le azioni al posto vostroSolo se l’organizzazione la consente e il modello scelto la supporta

In modalità Auto il classificatore blocca per impostazione predefinita azioni come scaricare ed eseguire codice (curl | bash), il force push, l’invio di dati sensibili a indirizzi esterni e i deploy in produzione. Anthropic precisa che questa modalità riduce le richieste di conferma ma non garantisce la sicurezza.

Qualunque modalità scegliate, il codice gira in una macchina virtuale isolata gestita da Anthropic, oppure sull’infrastruttura della vostra organizzazione se questa usa un ambiente self-hosted. Negli ambienti ospitati da Anthropic, le credenziali GitHub della connessione restano fuori dalla macchina virtuale e vengono aggiunte dal proxy lato server. Negli ambienti self-hosted, gestione delle credenziali e uso del proxy dipendono dalla configurazione della propria infrastruttura. Il proxy rifiuta la cancellazione di branch e il push di tag, ma non limita i branch su cui si può fare push, per cui servono le regole di protezione dei branch di GitHub. Anche con l’accesso di rete disattivato, Claude Code continua a comunicare con l’API di Anthropic, e da lì i dati possono uscire dalla macchina virtuale.

6. Rivedere il diff e commentare le righe

Ogni sessione mostra quante righe sono state aggiunte e tolte, per esempio +42 -18. Selezionate quel contatore per aprire il diff, con l’elenco dei file a sinistra e le modifiche a destra. Il confronto è con il branch di partenza. Per confrontare con un altro branch usate «Compare against».

Per chiedere una correzione, selezionate una riga, scrivete il commento e premete Invio. I commenti restano in attesa e partono insieme al messaggio successivo, così Claude sa a quale riga vi riferite. Se mandate un messaggio mentre Claude sta lavorando, finisce in coda, e potete ritirarlo con la ✕ finché Claude non l’ha letto.

7. Aprire la pull request

Premete «Create PR» in cima al diff. Potete aprire una PR completa o una bozza, oppure passare alla pagina di GitHub con titolo e descrizione già scritti. La sessione resta attiva anche dopo: potete incollare in chat i test falliti della CI o i commenti dei revisori e chiedere a Claude di sistemarli.

Con la Claude GitHub App installata potete attivare «Auto-fix» dalla barra di stato della CI, nella sessione su claude.ai/code. Claude segue la PR e risponde ai controlli falliti e ai commenti di revisione. Quando la correzione è chiara fa push, quando la richiesta è ambigua vi chiede conferma. Le sue risposte compaiono con il vostro account GitHub, segnalate come scritte da Claude Code. Fate attenzione se il repository ha automazioni che partono dai commenti, come Atlantis, Terraform Cloud o le GitHub Actions su issue_comment, perché le risposte di Claude possono avviarle. Auto-fix non interviene sui conflitti di merge: in quel caso dovete chiedere voi a Claude di fare il rebase.

8. Riprendere la sessione nel terminale con –teleport

Il teleport porta nel terminale il branch e la conversazione di una sessione cloud. Prima di partire controlla quattro condizioni:

  • siete in una copia locale dello stesso repository, non di un fork;
  • non ci sono modifiche non committate (se ci sono, il teleport propone di metterle da parte con uno stash);
  • il branch della sessione è stato pubblicato sul remote;
  • avete fatto l’accesso con lo stesso account claude.ai della sessione.

Dalla cartella del repository lanciate questo comando, che apre l’elenco delle sessioni tra cui scegliere:

claude --teleport

Se Claude Code è già aperto, usate il comando interno qui sotto (oppure /tp). Apre lo stesso elenco senza riavviare:

/teleport

In alternativa, su claude.ai/code il menu della sessione ha la voce «Open in > Terminal», che copia il comando da incollare nel terminale. Claude controlla di essere nel repository giusto, scarica il branch, ci passa sopra e carica la conversazione. Da quel momento la copia locale è indipendente: il lavoro fatto nel terminale non torna nella sessione cloud. Dalla CLI non si può invece mandare nel cloud una sessione locale già avviata. Non confondete --teleport con --resume, che riapre solo le conversazioni salvate su quel computer.

9. Uscire, archiviare e scollegare

Per uscire da Claude Code nel terminale si usa questo comando, oppure si preme Ctrl+D due volte:

/exit

Le sessioni finite si archiviano dalla barra laterale di claude.ai/code: passate il mouse sulla sessione e premete l’icona di archivio. Le sessioni archiviate si ritrovano filtrando per archiviate. Per eliminarne una, aprite il menu accanto al titolo, scegliete «Delete» e confermate. L’eliminazione cancella la sessione e i suoi dati e non si può annullare.

Per scollegare GitHub andate su claude.ai/customize/connectors. Così si cancellano le credenziali usate dalle sessioni cloud, sia quelle del browser sia quelle di /web-setup, e le sessioni perdono l’accesso a GitHub finché non vi ricollegate. Il token di gh però resta valido su GitHub. Se avete fatto l’accesso a gh dal browser, il token si trova su GitHub in Settings > Applications > Authorized OAuth Apps, alla voce GitHub CLI. Revocarlo disconnette anche gh sui vostri computer. Dopo la revoca, per riavere l’accesso nelle sessioni cloud bisogna rifare gh auth login e /web-setup.

Disinstallare la CLI

Se avete usato l’installer nativo su macOS, Linux o WSL, la CLI si toglie con i due comandi qui sotto. Cancellano i file senza chiedere conferma, e il secondo elimina tutta la cartella con le versioni installate. Copiateli esattamente, compreso il percorso ~/.local: un errore di battitura in una cancellazione ricorsiva può far sparire altri dati. Le impostazioni in ~/.claude restano al loro posto. La pagina Advanced setup spiega come eliminarle, ma così si perdono anche la cronologia delle sessioni e le configurazioni. La stessa pagina riporta i comandi PowerShell equivalenti per l’installazione nativa su Windows.

rm -f ~/.local/bin/claude
rm -rf ~/.local/share/claude

Con Homebrew:

brew uninstall --cask claude-code

Con WinGet:

winget uninstall Anthropic.ClaudeCode

Se qualcosa va storto

  • «Session creation failed» o sessione bloccata in preparazione: non è stato possibile assegnare una macchina virtuale. Controllate su status.claude.com se ci sono problemi in corso, riprovate dopo un minuto e verificate che il collegamento a GitHub raggiunga il repository.
  • I repository privati non compaiono: la Claude GitHub App deve essere installata sull’account o sull’organizzazione proprietaria, e l’installazione deve includere quel repository. Se vi siete collegati con /web-setup, controllate che il vostro accesso a gh veda il repository. Se nel frattempo avete cambiato account gh, rilanciate /web-setup.
  • «Claude Code isn’t available on your account»: il vostro posto nell’organizzazione scelta non include Claude Code. Usate «Switch organization» oppure chiedete a un Owner di assegnarvi un posto adatto.
  • «Unable to get organization UUID» o «Error loading Claude Code sessions» con --cloud o --teleport: siete autenticati con una chiave API, oppure i dati dell’account salvati sono vecchi. Rilanciate claude auth login e riprovate.
  • /web-setup risponde «Unknown command» o «No commands match»: il comando va digitato dentro Claude Code, non nella shell. Se il problema resta, accedete con l’account claude.ai tramite /login. Su Team ed Enterprise il comando resta nascosto finché un Owner non attiva Quick setup.
  • Il teleport non riesce a scaricare il branch via SSH: il download non si ferma ad aspettare password, passphrase o la conferma di un host nuovo. Caricate la chiave in ssh-agent e fate una volta a mano un git fetch, così l’host viene registrato.
  • «Remote Control session expired» o «Access denied» durante il teleport: rinnovate l’accesso con /login e controllate di usare l’account a cui appartiene la sessione. Se compare «Remote Control may not be available for this organization», un Owner non ha attivato le sessioni cloud.
  • Sessione scaduta: dopo un periodo di inattività la macchina virtuale viene recuperata. Se riaprite la sessione da claude.ai/code ritrovate la conversazione, ma non il lavoro che stava girando in background.

Documentazione di riferimento

Pagine ufficiali di Claude Code, in inglese, consultate il 17 ottobre 2026. Le istruzioni per la CLI riguardano macOS, Windows e Linux (Ubuntu, Debian e Alpine), mentre la parte web è uguale su tutti i sistemi.

Leggi anche