Applicazione desktop
Sfrutta al massimo Claude Code Desktop: sessioni parallele con isolamento Git, layout dei pannelli drag-and-drop, terminale integrato e editor di file, chat laterali, utilizzo del computer, Dispatch sessioni dal tuo telefono, revisione visiva dei diff, anteprime delle app, monitoraggio dei PR, connettori e configurazione aziendale.
Nell'app Claude Desktop, Claude Code è la scheda Code. L'app include anche la chat e Cowork, che gestisce Dispatch e il lavoro agentico più lungo. Questa pagina è il riferimento per la scheda Code.
[card] Scarica per macOS
Build universale per Intel e Apple Silicon
[card] Scarica per Windows
Per processori x64
[card] Ottieni Claude per Linux (beta)
apt o .deb per Ubuntu e Debian
Per Windows ARM64, scarica l'installer ARM64. Su Linux, installa con apt; vedi Claude Desktop su Linux.
Dopo l'installazione, avvia Claude, accedi e fai clic sulla scheda Code. Per una procedura dettagliata della tua prima sessione, consulta la guida introduttiva.
Nella scheda Code, ogni conversazione è una sessione: ha la sua propria cronologia chat e cartella di progetto, indipendente da qualsiasi altra sessione. La barra laterale elenca le tue sessioni e ti consente di eseguirne diverse in parallelo. All'interno di una sessione puoi:
- Rivedere e commentare i diff, quindi monitorare il PR risultante attraverso CI
- Visualizzare in anteprima la tua app in esecuzione nel riquadro Browser mentre Claude verifica le sue stesse modifiche, e aprire siti esterni accanto ad esso
- Guardare Claude eseguire e testare la tua app iOS nel riquadro iOS Simulator
- Organizzare i pannelli per la chat, diff, browser, terminale e editor di file uno accanto all'altro
- Porre una domanda laterale che utilizza il contesto della sessione senza deviare da essa
- Consentire a Claude di controllare, messaggiare o archiviare le tue altre sessioni
- Connettere strumenti esterni come GitHub, Slack e Linear
- Consentire a Claude di aprire app e controllare il tuo schermo
- Eseguire sulla tua macchina, nel cloud, o su SSH
Per lavoro ricorrente pianificato, scorciatoie da tastiera, o invio di attività dal tuo telefono, consulta le pagine e le sezioni collegate. Se utilizzi già il CLI basato su terminale, consulta il confronto CLI per vedere cosa si trasferisce.
Avviare una sessione
Prima di inviare il tuo primo messaggio, scegli l'ambiente, la cartella del progetto, la modalità di permesso e il modello nella riga sotto la casella del prompt:
- Ambiente: usa il selettore dell'ambiente, il primo controllo della riga, per scegliere dove viene eseguito Claude. Consulta la configurazione dell'ambiente.
- Se una nuova sessione non mostra alcun ambiente sotto la casella del prompt, segui i passaggi del layout precedente.
- Cartella del progetto: fai clic sul controllo della cartella del progetto, accanto al selettore dell'ambiente, per scegliere la cartella in cui lavora Claude.
- Sessione cloud: seleziona i repository invece di una cartella
- Ambiente locale o SSH salvato: l'ambiente contiene già le sue cartelle, quindi la riga non mostra alcun controllo della cartella del progetto. Per cambiare le cartelle, modifica l'ambiente.
- Modalità di permesso: usa il selettore della modalità per scegliere quanta autonomia ha Claude. Puoi cambiare la modalità di permesso durante la sessione.
- Modello: scegli un modello dal selettore del modello verso l'estremità destra della riga. Puoi cambiare il modello durante la sessione.
Scrivi il tuo compito e premi Enter per iniziare. Ogni sessione tiene traccia in modo indipendente del proprio contesto e delle proprie modifiche.
Lavorare con il codice
Fornisci a Claude il contesto giusto, controlla quanto fa in autonomia e rivedi ciò che ha modificato.
Usare la casella del prompt
Scrivi cosa vuoi che Claude faccia e premi Enter per inviare. Claude legge i file del tuo progetto, apporta modifiche ed esegue comandi in base alla tua modalità di permesso. Puoi reindirizzare Claude in qualsiasi momento: fai clic sul pulsante di stop per interromperlo immediatamente, oppure scrivi una correzione e premi Enter per inviarla senza fermare l'azione in corso. Claude legge la correzione non appena l'azione corrente termina e si adegua prima del passaggio successivo.
Fai clic sul pulsante + accanto alla casella del prompt per allegati, skill, connettori e plugin.
Accettare un prompt suggerito
Dopo la risposta di Claude, la scheda Code può mostrare un prompt successivo suggerito come testo grigio nella casella del prompt vuota. Claude Code genera ogni suggerimento dalla tua conversazione con una breve richiesta in background che viene conteggiata nei limiti di utilizzo del tuo piano o nei tuoi costi API.
- Usa il suggerimento: premi Tab o Freccia destra per inserirlo nella casella del prompt, modificalo se vuoi, quindi premi Enter per inviarlo. Premere Enter prima di accettare il suggerimento non lo invia.
- Scrivi il tuo prompt: inizia a digitare. Il suggerimento viene mostrato solo mentre la casella del prompt è vuota e non ha file allegati.
Disattiva Prompt suggestions in Settings > Code o Settings > Claude Code per interrompere i suggerimenti. Ogni sessione smette di mostrarli la volta successiva che viene avviata o ripresa.
Aggiungere file e contesto ai prompt
Per fornire un file a Claude, menzionalo con @ o allegalo nella casella del prompt:
- Menziona file con @: digita
@seguito da un nome file per aggiungere un file al contesto della conversazione.- In una sessione cloud:
@può elencare i file solo dopo che hai inviato il tuo primo messaggio. Se@non ne elenca nessuno, invia il primo messaggio senza il file, quindi menziona il file con @ nel messaggio successivo.
- In una sessione cloud:
- Allega file: allega immagini, PDF e altri file al tuo prompt dal pulsante + accanto alla casella del prompt, oppure trascina i file direttamente nel prompt. È utile per condividere screenshot di bug, mockup di design o documenti di riferimento.
- In una sessione WSL: se il menu + mostra Add image invece di Add files or photos, puoi allegare solo immagini. Per fornire a Claude qualsiasi altro file dalla cartella della sessione, menzionalo con @.
Scegliere una modalità di permesso
Le modalità di permesso controllano quanta autonomia ha Claude durante una sessione: se chiede prima di modificare file, eseguire comandi o entrambi. Puoi cambiare modalità di permesso in qualsiasi momento usando il selettore di modalità nella riga sotto la casella del prompt. Per approvare personalmente ogni modifica, passa a Manual.
Per impostare una modalità di permesso predefinita per le nuove sessioni locali, aggiungi permissions.defaultMode al tuo file di impostazioni. Una modalità scelta in una sessione locale viene ricordata per cartella e ha la precedenza su un defaultMode nelle impostazioni .claude/ del progetto. Una nuova sessione locale può comunque avviarsi in un defaultMode proveniente da ~/.claude/settings.json o dalle impostazioni gestite, quindi controlla il selettore prima del tuo primo messaggio. Se scegli Plan, si applica solo a questa sessione.
| Modalità | Chiave di impostazione | Comportamento |
|---|---|---|
| Manual | default |
Claude chiede prima di modificare file o eseguire comandi. Vedi un diff e puoi accettare o rifiutare ogni modifica. |
| Accept edits | acceptEdits |
Claude accetta automaticamente le modifiche ai file e i comandi comuni del filesystem come mkdir, touch e mv, ma chiede comunque prima di eseguire altri comandi del terminale. Usala quando ti fidi delle modifiche ai file e vuoi iterare più velocemente. |
| Plan | plan |
Claude legge i file ed esegue comandi per esplorare, quindi propone un piano senza modificare il tuo codice sorgente. Ideale per attività complesse in cui vuoi prima rivedere l'approccio. |
| Auto | auto |
Claude lavora senza richieste di permesso abituali; prima che vengano eseguite azioni come comandi shell e richieste di rete, un classificatore in background verifica che siano in linea con la tua richiesta. Compare quando la modalità auto è disponibile; non esiste un interruttore separato in Settings. |
| Bypass permissions | bypassPermissions |
Claude lavora senza richieste di permesso, tranne per le azioni che nessuna modalità approva automaticamente, i classificatori di sicurezza quando Claude agisce su siti esterni, o azioni del desktop come eliminare una sessione, ma non archiviarla. Equivale a --dangerously-skip-permissions nella CLI. Nei piani Pro, Max e Ultra, abilita "Allow bypass permissions mode" in Settings > Code o Settings > Claude Code. Nei piani Team ed Enterprise non esiste un interruttore in Settings e la controlla invece la policy dell'organizzazione. Usala solo in container o VM isolati. |
Le versioni precedenti della scheda Code chiamavano queste modalità Ask permissions, Auto accept edits e Plan mode.
La modalità di permesso dontAsk è disponibile solo nella CLI.
[!TIP]
Avvia le attività complesse in Plan così Claude definisce un approccio prima di apportare modifiche. Una volta approvato il piano, passa ad Accept edits o Manual per eseguirlo. Consulta plan mode per saperne di più su questo workflow.
Le sessioni cloud supportano Accept edits, Plan e Auto. Accept edits corrisponde alla modalità default: le sessioni cloud pre-approvano le modifiche ai file, quindi il selettore mostra Accept edits invece di Manual. Bypass permissions non è disponibile nelle sessioni cloud, incluse le sessioni in un ambiente self-hosted.
Gli amministratori Enterprise possono limitare le modalità di permesso disponibili. Consulta configurazione enterprise per i dettagli.
Disponibilità della modalità auto
La modalità auto è disponibile per tutti gli utenti sull'API Anthropic e richiede Claude Opus 4.6 o successivo, Sonnet 4.6 o successivo, Haiku 5.5 o un modello Fable. Gli amministratori dell'organizzazione possono disattivare la modalità auto con la chiave disableAutoMode nelle impostazioni gestite.
Nelle distribuzioni Enterprise che instradano Desktop verso Agent Platform di Google Cloud, la modalità auto è disponibile anche per impostazione predefinita; consulta Modalità auto su Bedrock, Agent Platform o Foundry per i modelli supportati.
Visualizzare l'anteprima della tua app
Claude può avviare un server di sviluppo e aprirlo nel riquadro Browser per verificare le sue modifiche. Funziona sia per le app web frontend sia per i server backend: Claude può testare endpoint API, visualizzare i log del server e iterare sui problemi che trova. Nella maggior parte dei casi, Claude avvia il server automaticamente dopo aver modificato i file del progetto. Puoi anche chiedere a Claude di mostrare l'anteprima in qualsiasi momento. Per impostazione predefinita, Claude verifica automaticamente le modifiche dopo ogni modifica.
In una sessione locale, fai clic su un percorso HTML, PDF o video nella chat per aprirlo nel riquadro Browser. In una sessione SSH o WSL, puoi visualizzare l'anteprima di un file HTML.
[!NOTE]
In una sessione SSH, Claude non dispone degli strumenti del riquadro Browser, quindi non può aprire la tua app nel riquadro né verificare automaticamente le sue modifiche. Non sono disponibili nemmeno il menu Dev servers del riquadro e i tuoi server di anteprima configurati. Per vedere tu stesso l'app, avvia il suo server sulla macchina remota, quindi inoltra la sua porta al tuo computer.
Se il riquadro Browser non è aperto dopo che Claude ha avviato un server in una sessione locale, fai clic su Open nella scheda del server nella chat.
Dal riquadro Browser puoi:
- Interagire con la tua app in esecuzione direttamente nel riquadro Browser
- Osservare Claude verificare automaticamente le proprie modifiche: acquisisce screenshot, ispeziona il DOM, fa clic sugli elementi, compila moduli e corregge i problemi che trova
- Avviare o arrestare i server, oppure arrestarli tutti insieme, dal menu Dev servers nell'intestazione del riquadro Browser
- Scegliere se il Browser conserva i cookie dopo la chiusura dell'app con Keep cookies nel menu ⋮ del riquadro Browser, così non devi accedere di nuovo durante lo sviluppo
In una sessione SSH, perdi i cookie del riquadro quando chiudi Desktop. Non puoi modificare questo comportamento con Keep cookies.
Claude crea la configurazione iniziale del server in base al tuo progetto. Se la tua app usa un comando di sviluppo personalizzato, modifica .claude/launch.json in base alla tua configurazione. Consulta Configurare i server di anteprima per il riferimento completo.
Per cancellare i dati salvati del Browser, seleziona Clear browsing data nel menu ⋮ del riquadro Browser. Per disattivare completamente il Browser, disattiva Browser tools in Settings > Code o Settings > Claude Code.
Visualizzare l'anteprima dei file HTML nelle sessioni SSH e WSL
In una sessione SSH o WSL, fai clic sul percorso di un file HTML nella chat per visualizzarne l'anteprima nel riquadro Browser. Se grafici o tabelle nell'anteprima restano vuoti, l'avviso sopra di essa ti spiega il motivo:
This preview doesn't load anything from the web: gli script scritti nel file vengono eseguiti, ma un grafico che carica la sua libreria dal web resta vuoto. Se l'avviso ha un pulsante Export, selezionalo e apri il file salvato nel tuo browser, dove i contenuti dal web vengono caricati.This preview doesn't run scripts or load anything from the web: prima di Claude Desktop v4.23118.0, queste anteprime non eseguivano script, quindi aggiorna Desktop e apri di nuovo il file. Se Desktop è aggiornato e l'avviso rimane, riavvia Desktop. Se rimane ancora, gli script potrebbero essere disattivati per la tua organizzazione, quindi chiedi al tuo amministratore.
Se hai chiuso l'avviso, apri di nuovo il file per farlo ricomparire.
Disattivare gli script nelle anteprime SSH e WSL per la tua organizzazione
Per impedire alle anteprime HTML nelle sessioni SSH e WSL di eseguire script, imposta l'impostazione gestita disableBrowserExternalNavigation su true. Con questa impostazione, gli utenti non possono nemmeno navigare su siti esterni nel riquadro Browser.
Impostala nelle tue impostazioni gestite dal server, oppure in una policy MDM o in un file di impostazioni gestite di Claude Code sul computer che esegue Desktop. Desktop non la legge dalla macchina remota né dalla distribuzione WSL. Con un provider di terze parti, usa la policy MDM o il file.
[!WARNING]
Se il computer che esegue Desktop non riceve ancora impostazioni gestite di Claude Code, imposta anche
parentSettingsBehaviorsu"merge"nelle impostazioni gestite che crei. Desktop passa la propria policy a Claude Code e, senza"merge", Claude Code ignora quella policy una volta che il computer ha impostazioni gestite. Su Windows, se crei un file di impostazioni gestite, gli utenti perdono anche le sessioni WSL finché non le consenti.Se il computer riceve già impostazioni gestite di Claude Code, aggiungi l'impostazione a quelle e lascia
parentSettingsBehaviorcosì com'è. Su un computer con più di una policy MDM o file di impostazioni gestite, usa quello con la priorità più alta.
Quindi chiedi agli utenti di riavviare Desktop per assicurarti che l'impostazione venga applicata, e spiega loro cosa aspettarsi:
- File che aprono: l'anteprima non esegue script, quindi i grafici e le tabelle disegnati dagli script restano vuoti
- Anteprime che stanno eseguendo script: se Desktop recepisce l'impostazione prima del riavvio, si chiudono. Gli utenti vedono
This preview closed because scripts are turned off for previews. Open the file again to view it without scripts. - File che esportano: se un utente esporta un file e lo apre in un browser, i suoi script vengono eseguiti lì, con o senza questa impostazione
Navigare su siti esterni
Il riquadro Browser è un browser a schede, quindi puoi aprire documentazione, issue tracker o qualsiasi altro sito accanto alla tua app in esecuzione. Per aprire il Browser, premi Cmd+Shift+B su macOS o Ctrl+Shift+B su Windows, oppure fai clic su Browser nella barra del titolo della sessione. Puoi accedere ai siti nel riquadro, inclusi i flussi di accesso in popup come Google OAuth.
La prima volta che fai clic su un link esterno nella chat, una finestra di dialogo chiede se i link devono aprirsi nel riquadro Browser o nel tuo browser predefinito. Per cambiare la scelta in seguito, usa Open links in built-in browser nel menu ⋮ del riquadro Browser. Cmd-clic su macOS o Ctrl-clic su Windows apre direttamente un link nel tuo browser predefinito.
Claude può leggere e interagire con le pagine esterne usando gli stessi strumenti che usa per verificare la tua app, con due controlli di sicurezza aggiuntivi:
- I classificatori di sicurezza esaminano le azioni di scrittura di Claude sulle pagine esterne, come fare clic e digitare, in ogni modalità di permesso. Sono gli stessi classificatori usati dalla modalità auto e, quando segnalano un'azione, ricevi una richiesta di permesso indipendentemente dalla modalità.
- Nelle modalità di permesso diverse da Auto e Bypass permissions, si applica anche un controllo dell'allowlist dei domini prima che Claude navighi verso un nuovo sito.
Approvare le azioni di Claude su un sito
La prima volta che Claude agisce su un sito esterno, compare una scheda di permesso e Claude attende la tua scelta: Allow once, Always allow o Deny. Allow once approva l'azione senza salvare nulla. Always allow salva l'approvazione per quel sito sul tuo dispositivo e puoi revocarla in Settings. Ogni sito richiede la propria approvazione, inclusi i sottodomini. I tuoi server di sviluppo locali e i file del progetto non richiedono approvazione, quindi la verifica automatica continua a funzionare senza richieste.
Anche su un sito approvato, Claude non acquista articoli, non crea account né aggira CAPTCHA senza il tuo intervento. La navigazione nel riquadro Browser usa lo stesso modello di sicurezza dell'estensione Claude in Chrome. Consulta Using Claude in Chrome safely per sapere come Claude gestisce i siti sensibili e le azioni rischiose.
Scegliere tra il Browser e l'estensione Chrome
Il riquadro Browser usa un profilo browser pulito, separato dal tuo browser personale, senza nessuno dei tuoi accessi salvati né della tua cronologia. Usalo per creare e testare la tua app e per i siti che non richiedono la tua identità. Quando vuoi che Claude agisca a tuo nome nelle sessioni in cui hai effettuato l'accesso, usa invece l'estensione Claude in Chrome, che condivide lo stato di accesso del tuo browser.
Limitare la navigazione esterna per la tua organizzazione
Il Browser segue gli stessi controlli di allowlist e blocklist dei siti dell'estensione Claude in Chrome. Se la tua organizzazione ha già configurato questi elenchi per l'estensione, il Browser li rispetta automaticamente. Gli amministratori possono anche disattivare gli strumenti di Claude sulle pagine esterne con l'impostazione gestita browserExternalPageTools. Con gli strumenti disattivati, gli utenti possono comunque visitare siti esterni; gli strumenti di Claude non possono leggerli né agire su di essi.
Per disattivare completamente la navigazione esterna, imposta l'impostazione gestita disableBrowserExternalNavigation su true. Questo blocca tutta la navigazione esterna nel Browser, inclusi i siti nell'allowlist della tua organizzazione. I server di sviluppo su localhost e le anteprime dei file continuano a funzionare, ma le anteprime HTML nelle sessioni SSH e WSL non eseguono script. Usa browserExternalPageTools per consentire agli utenti di continuare a navigare su siti esterni senza gli strumenti di Claude, e disableBrowserExternalNavigation per bloccare i siti esterni sia per gli utenti sia per Claude.
Rivedere le modifiche con la vista diff
Dopo che Claude ha apportato modifiche al tuo codice, la vista diff ti permette di rivedere le modifiche file per file prima di creare una pull request. Per aprire la vista diff, fai clic sui conteggi delle righe, come +12 -1, nella scheda Changes del pannello dei dettagli della sessione. Puoi anche fare clic su Changes nella barra del titolo della sessione. Il diff di una sessione cloud rispetto al branch di base può omettere le modifiche non ancora inviate.
Per commentare righe specifiche, passa il mouse su una riga e fai clic sul + che compare accanto al numero di riga per aprire una casella di commento. Scrivi il tuo feedback e premi Enter per aggiungere il commento. Dopo aver aggiunto commenti a più righe, invia tutti i commenti insieme:
- macOS: premi Cmd+Enter
- Windows: premi Ctrl+Enter
Claude legge i tuoi commenti e apporta le modifiche richieste, che compaiono come un nuovo diff che puoi rivedere.
Fare la revisione del tuo codice
Per far rivedere a Claude le tue modifiche prima di fare il commit, inserisci /code-review nella casella del prompt. I risultati arrivano nella conversazione al termine della revisione.
Nelle sessioni locali, SSH e WSL, i risultati compaiono come una scheda Code review, raggruppati per file. Usa la scheda per intervenire:
- Fai clic su Walk through in diff per aprire la vista diff e scorrere i risultati uno alla volta. Un risultato presente nel diff corrente compare alla sua riga, dove puoi fare clic su Fix this one o ignorarlo.
- Fai clic su Apply fixes per chiedere a Claude di correggere i risultati ancora aperti.
In qualsiasi sessione, puoi anche chiedere a Claude nella casella del prompt di correggere quanto trovato dalla revisione. Per sapere cosa cerca /code-review e quali argomenti accetta, consulta Revisione locale con /code-review.
Monitorare lo stato della pull request
Per far correggere a Claude i controlli non superati, o per far eseguire a GitHub il merge della pull request, attiva Auto-fix o Merge when ready. Dopo che apri una pull request, questa compare nella scheda Changes del pannello dei dettagli della sessione con lo stato dei suoi controlli CI. Apri il menu ⋮ accanto al suo titolo:
- Auto-fix: in una sessione locale, Claude gestisce anche i nuovi commenti di revisione lasciati da persone diverse da te. L'autore del commento deve essere il proprietario del repository, un membro dell'organizzazione, un collaboratore o una GitHub App.
- Merge when ready: attiva l'auto-merge di GitHub per la PR. In una sessione locale, Desktop richiede uno squash merge a meno che il branch di base non usi una merge queue.
- Nelle sessioni SSH e WSL: Merge when ready è disabilitato, quindi attiva l'auto-merge per la pull request su GitHub
- Se il repository non consente l'auto-merge: Merge when ready non si attiva, quindi abilita prima l'auto-merge nelle impostazioni del repository GitHub
- Layout precedente: una volta che la sessione ha una pull request, fai clic su CI nella sua barra di stato.
Per archiviare automaticamente la sessione quando la PR viene unita con merge o chiusa, attiva l'archiviazione automatica in Settings > Code o Settings > Claude Code.
[!NOTE]
Il monitoraggio delle PR richiede che la GitHub CLI (
gh) sia installata e autenticata sulla tua macchina. Seghnon è installata, Desktop ti chiede di installarla la prima volta che provi a creare una PR.In una sessione SSH, configura
giteghsulla macchina remota prima di fare clic su Create PR, perché è lì che Claude esegue il push del branch ed eseguegh pr create. Installa tu stessoghlì, perché Desktop non te lo chiede in una sessione SSH. Quindi verifica lì chegit pushfunzioni e chegh auth statussegnali che hai effettuato l'accesso.
Organizza il workspace
La scheda Code è costruita attorno a pannelli che puoi organizzare in qualsiasi layout: chat, diff, browser, terminale, file, plan, tasks e subagent, insieme al Simulatore iOS su macOS. Trascina un pannello dal suo header per riposizionarlo, o trascina un bordo del pannello per ridimensionarlo. Premi Cmd+\ su macOS o Ctrl+\ su Windows per chiudere il pannello focalizzato.
Per aprire un altro pannello, fai clic sul relativo pulsante a icona nella barra del titolo della sessione. Passa il mouse sopra ciascun pulsante per vederne il nome, come Terminal, Changes per la vista diff, Browser e Files. Se il pannello che vuoi non ha un pulsante nella barra del titolo, selezionalo dal menu ⋮ accanto ai pulsanti:
- Quando la finestra è stretta: i pulsanti che non entrano si spostano nel menu
- Per i pannelli senza pulsante: pannelli come Background tasks e Plan vengono elencati non appena la sessione ha qualcosa da mostrare in quei pannelli
Per lavorare su più schermi, estrai un pannello come il diff o il terminale in una finestra propria e riancoralo quando hai finito. Claude continua a lavorare nella finestra principale.
[!NOTE]
Il layout del pannello, il terminale, l'editor di file e le modalità di visualizzazione in questa sezione richiedono Claude Desktop v1.2581.0 o successivo. Apri Claude > Check for Updates… su macOS o Help > Check for Updates… su Windows per aggiornare.
Visualizza i dettagli della sessione
Il pannello dei dettagli della sessione è un insieme di schede accanto alla chat che mostrano dove viene eseguita la sessione, cosa ha modificato, cosa sta eseguendo e il suo utilizzo del contesto. Il pannello appare dopo che avvii una sessione, purché la chat sia abbastanza larga da contenerlo.
Nascondi o mostra il pannello dei dettagli della sessione
Per nascondere o mostrare il pannello, fai clic su Hide session rail o Show session rail nella barra del titolo della sessione, oppure nel menu ⋮ della barra. Se ancora non vedi il pannello, verifica quale layout della scheda Code hai.
Riduci a icona un pannello
Per mantenere visibile il pannello Terminal, Browser, Simulatore iOS o una chat laterale in dimensioni ridotte, fai clic su Minimize nell'header del pannello. Il pulsante richiede Claude Desktop v4.0.0 o successivo e un account Claude anziché un provider di terze parti. Il pannello Browser lo ha solo nelle sessioni locali.
Il pannello ridotto a icona si trova nel pannello dei dettagli della sessione quando quel pannello è visibile sullo schermo, altrimenti fluttua in un angolo della chat:
- Nel pannello dei dettagli: il pannello ridotto a icona si trova sotto le schede del pannello, dove non puoi spostarlo né ridimensionarlo. Per farlo fluttuare sopra la chat, nascondi il pannello dei dettagli.
- In un angolo della chat: passa il mouse sopra il pannello ridotto a icona per mostrarne l'header. Trascina l'header per spostarlo in un altro angolo. Per ridimensionarlo, trascina l'angolo del pannello ridotto a icona più vicino al centro della chat.
Per ripristinare il pannello completo, fai clic su Expand nell'header del pannello ridotto a icona. Per chiudere invece il pannello ridotto a icona, fai clic sul pulsante di chiusura accanto a Expand.
Esegui comandi nel terminale
Il terminale integrato ti consente di eseguire comandi insieme alla tua sessione senza passare a un'altra app. Fai clic su Terminal nella barra del titolo della sessione o premi Ctrl+` su macOS o Windows. Il terminale si apre nella directory di lavoro della tua sessione e condivide lo stesso ambiente di Claude, quindi comandi come npm test o git status vedono gli stessi file che Claude sta modificando. Per aprire una seconda scheda del terminale, fai clic su + nell'header del pannello del terminale o fai clic con il pulsante destro su una cartella nella chat per scegliere Open in terminal.
Se una sessione WSL non ha un terminale, consulta Se il terminale o i connettori non sono disponibili. Il terminale è disponibile nelle sessioni locali e SSH, con una limitazione sulle macchine remote Windows.
Apri e modifica file
Per aprire un file menzionato da Claude, fai clic sul suo percorso nella chat.
Per modificare tu stesso un file, usa il pannello file:
- Sessioni locali: puoi modificare i file all'interno della directory di lavoro della sessione, tranne alcuni di sola visualizzazione come
.mcp.jsone.claude/settings.json. Per modificarne uno, aprilo in un'altra app. - Sessioni cloud, SSH e WSL: il pannello file è di sola visualizzazione, quindi chiedi a Claude di apportare le modifiche.
Salva le modifiche nel pannello file
Per impostazione predefinita, le modifiche nel pannello file vengono salvate automaticamente, quindi il pannello non mostra alcun pulsante Save. Per salvare tu stesso le modifiche, deseleziona Auto save nel menu ⋮ del pannello. Con Auto save disattivato, fai clic su Save dopo aver modificato un file per scrivere le modifiche, o su Cancel per annullarle.
Se il pannello avverte che il file è cambiato su disco, fai clic su Override per sovrascrivere la versione su disco con le tue modifiche, o su Discard per scartare le tue modifiche.
Apri file in altre app
Fai clic con il pulsante destro su qualsiasi percorso di file nella chat, nel visualizzatore diff o nel pannello file per aprire un menu di contesto:
- Attach as context: aggiungi il file al tuo prossimo prompt
- Open in: apri il file in un editor installato come VS Code, Cursor o Zed
- Show in Finder su macOS, Show in Explorer su Windows: apri la cartella contenente
- Copy: un sottomenu che copia il Absolute path, il Relative path o il Filename del file
Cambia modalità di visualizzazione
Le modalità di visualizzazione controllano quanti dettagli appaiono nella trascrizione della chat. Per cambiare modalità di visualizzazione, apri il menu della sessione dal cursore accanto al titolo della sessione e seleziona Transcript view, o premi Ctrl+O su macOS o Windows per scorrere tra loro. La modalità Thinking appare nel menu solo dopo che Claude ha prodotto ragionamento nella sessione che stai visualizzando.
| Modalità | Cosa mostra |
|---|---|
| Normal | Chiamate agli strumenti compresse in riepiloghi, con risposte di testo completo |
| Thinking | Chiamate agli strumenti compresse in riepiloghi, più il ragionamento di Claude |
| Verbose | Ogni chiamata a uno strumento, lettura di file e passaggio intermedio che Claude compie, più il ragionamento di Claude |
Usa Thinking per seguire il ragionamento di Claude con le chiamate agli strumenti ancora compresse. Usa Verbose quando esegui il debug del motivo per cui Claude ha intrapreso una particolare azione. Le versioni di Claude Desktop precedenti a 1.46388.1 elencano anche una modalità Summary, e una sessione ancora impostata su Summary si apre in Normal una volta aggiornato.
Scorciatoie da tastiera
Premi Cmd+/ su macOS o Ctrl+/ su Windows per vedere tutte le scorciatoie disponibili nella scheda Code. La tabella in questa sezione mostra i tasti di macOS. Su Windows e Linux, sostituisci questi tasti:
- Cmd+Option: premi Alt
- Cmd+Ctrl: premi Ctrl+Alt
- Cmd: premi Ctrl
Le scorciatoie che iniziano con Ctrl restano le stesse su ogni piattaforma.
| Scorciatoia | Azione |
|---|---|
Cmd / |
Mostra scorciatoie da tastiera |
Cmd N |
Nuova sessione |
Cmd Option 1–9 |
Nella schermata di nuova sessione del layout attuale, seleziona un ambiente |
Cmd Option 0 |
Nella schermata di nuova sessione del layout attuale, apri la finestra di dialogo New environment |
Cmd W |
Chiudi sessione |
Ctrl Tab / Ctrl Shift Tab |
Passa da una sessione all'altra |
Cmd Shift ] / Cmd Shift [ |
Sessione successiva o precedente |
Esc |
Arresta la risposta di Claude |
Tab / Right arrow |
Accetta il prompt suggerito in una casella del prompt vuota |
Cmd Shift D |
Attiva/disattiva pannello diff |
Cmd Shift B |
Attiva/disattiva pannello Browser |
Cmd Shift S |
Seleziona un elemento nel Browser |
Ctrl ` |
Attiva/disattiva pannello terminale |
Cmd \ |
Chiudi pannello focalizzato |
Cmd Ctrl W |
Rimuovi la sessione focalizzata dalla vista divisa |
Cmd ; |
Apri chat laterale |
Ctrl O |
Scorrere le modalità di visualizzazione |
Cmd Shift M |
Apri menu modalità di permesso |
Cmd Shift I |
Apri menu modello |
Cmd Shift E |
Apri menu sforzo |
1–9 |
Seleziona elemento in un menu aperto |
Queste scorciatoie si applicano alla scheda Code. In Desktop, Shift+Tab non scorre le modalità di permesso come avviene nella modalità interattiva del terminale.
Controlla l'utilizzo
Per vedere quanto è piena la finestra di contesto di questa sessione, individua il layout della tua scheda Code:
- Layout attuale: l'header della scheda Context nel pannello dei dettagli della sessione la mostra come percentuale. Apri la scheda per vedere cosa sta usando la finestra, per categoria.
- Layout precedente: fai clic sull'anello di utilizzo accanto al selettore di modello. Il suo popover mostra l'utilizzo della finestra di contesto.
In entrambi i layout, digita /context nella casella del prompt per stampare nella chat una suddivisione per categoria della finestra di contesto di questa sessione.
In entrambi i layout, l'anello di utilizzo si trova nella riga sotto la casella del prompt. Fai clic su di esso per vedere l'utilizzo del piano, che è condiviso su tutte le tue superfici Claude Code.
Lascia che Claude usi il tuo computer
L'utilizzo del computer consente a Claude di aprire le tue app, controllare lo schermo e lavorare direttamente sulla tua macchina come faresti tu. Chiedi a Claude di interagire con uno strumento desktop che non ha CLI, o automatizzare qualcosa che funziona solo tramite una GUI. Per eseguire e testare app iOS, Desktop apre il riquadro dedicato iOS Simulator invece di controllare lo schermo; il riquadro funziona senza abilitare l'utilizzo del computer.
[!NOTE]
L'utilizzo del computer è un'anteprima di ricerca su macOS e Windows che richiede un piano Pro, Max o Ultra. Non è disponibile su piani Team o Enterprise. L'app Claude Desktop deve essere in esecuzione. Su macOS, l'utilizzo del computer richiede macOS 14 o versioni successive.
L'utilizzo del computer è disabilitato per impostazione predefinita. Abilitalo in Impostazioni prima che Claude possa controllare lo schermo. Su macOS, devi anche concedere i permessi di Accessibilità e Registrazione dello schermo.
Su macOS, l'utilizzo del computer può anche essere eseguito in background: Claude lavora nelle app che hai approvato mentre continui a lavorare.
[!WARNING]
A differenza dello strumento Bash sandbox, l'utilizzo del computer viene eseguito sul tuo desktop effettivo con accesso a tutto ciò che approvi. Claude controlla ogni azione e contrassegna potenziali iniezioni di prompt dal contenuto sullo schermo, ma il limite di fiducia è diverso. Vedi la guida alla sicurezza dell'utilizzo del computer per le best practice.
Quando si applica l'utilizzo del computer
Claude ha diversi modi per interagire con un'app o un servizio, e l'utilizzo del computer è il più ampio e lento. Prova prima lo strumento più preciso:
- Se hai un connettore per un servizio, Claude usa il connettore.
- Se l'attività è un comando shell, Claude usa Bash.
- Se l'attività è lavoro nel browser e hai Claude in Chrome configurato, Claude usa quello.
- Se l'attività è eseguire o testare un'app iOS, Claude usa il riquadro iOS Simulator, che non utilizza il controllo dello schermo.
- Se nessuno di questi si applica, Claude usa l'utilizzo del computer.
I livelli di accesso per app rafforzano questo: i browser sono limitati a sola visualizzazione, e i terminali e gli IDE a solo clic, indirizzando Claude verso lo strumento dedicato anche quando l'utilizzo del computer è attivo. Il controllo dello schermo è riservato a cose che nient'altro può raggiungere, come app native, pannelli di controllo hardware, o strumenti proprietari senza un'API.
Abilita l'utilizzo del computer
L'utilizzo del computer è disabilitato per impostazione predefinita. Se chiedi a Claude di fare qualcosa che ne ha bisogno mentre è disabilitato, Claude ti dice che potrebbe fare l'attività se abiliti l'utilizzo del computer in Impostazioni.
1. Aggiorna l'app desktop
Assicurati di avere l'ultima versione di Claude Desktop. Su macOS e Windows, scarica o aggiorna su claude.com/download; su Linux, aggiorna tramite il tuo gestore di pacchetti (istruzioni). Quindi riavvia l'app.
2. Attiva l'interruttore
Nell'app desktop, apri Impostazioni, quindi:
- Se il menu Impostazioni elenca Questo computer: vai a Questo computer > Sistema
- Altrimenti: vai a Funzionalità
In Utilizzo del computer, attiva Abilita l'utilizzo del computer:
- Windows: l'interruttore ha effetto immediatamente e la configurazione è completa
- macOS: continua al passaggio successivo
Se non vedi l'interruttore, conferma che sei su macOS o Windows con un piano Pro, Max o Ultra, quindi aggiorna e riavvia l'app.
3. Concedi i permessi macOS
Su macOS, concedi due permessi di sistema prima che l'interruttore abbia effetto:
- Accessibilità: consente a Claude di fare clic, digitare e scorrere
- Registrazione dello schermo: consente a Claude di vedere cosa c'è sullo schermo
La pagina Impostazioni mostra lo stato attuale di ogni permesso. Se uno è negato, fai clic sul badge per aprire il riquadro Impostazioni di sistema pertinente.
Permessi delle app
La prima volta che Claude ha bisogno di usare un'app, appare un prompt nella tua sessione. Fai clic su Allow for this session o Deny. Le approvazioni durano per la sessione corrente, o 30 minuti nelle sessioni generate da Dispatch.
Il prompt mostra anche quale livello di controllo Claude ottiene per quell'app. Questi livelli sono fissi per categoria di app e non possono essere modificati:
| Livello | Cosa può fare Claude | Si applica a |
|---|---|---|
| View only | Vedere l'app negli screenshot | Browser, piattaforme di trading |
| Click only | Fare clic e scorrere, ma non digitare o usare scorciatoie da tastiera | Terminali, IDE |
| Full control | Fare clic, digitare, trascinare e usare scorciatoie da tastiera | Tutto il resto |
Le app con ampia portata, come terminali, Finder o File Explorer, e Impostazioni di sistema o Impostazioni, mostrano un avviso aggiuntivo nel prompt in modo che tu sappia cosa approvare loro concede.
In Impostazioni, la sezione Utilizzo del computer in cui hai attivato l'utilizzo del computer include queste opzioni:
- Denied apps: aggiungi app qui per rifiutarle senza chiedere. Claude potrebbe comunque influenzare un'app negata indirettamente tramite azioni in un'app consentita, ma non può interagire direttamente con l'app negata.
- Unhide apps when Claude finishes: quando l'utilizzo del computer non è in esecuzione in background, Claude nasconde le tue altre finestre mentre lavora in modo che interagisca solo con l'app approvata. Quando Claude finisce, le finestre nascoste vengono ripristinate a meno che non disattivi questa impostazione.
Gestisci le sessioni
Ogni sessione è una conversazione indipendente con il suo proprio contesto e modifiche. Puoi eseguire più sessioni in parallelo, aprire chat laterali, lasciare che Claude controlli e messaggi le tue altre sessioni, inviare il lavoro al cloud, o lasciare che Dispatch avvii sessioni per te dal tuo telefono.
Lavora in parallelo con le sessioni
Fai clic su + New nella barra laterale, o premi Cmd+N su macOS o Ctrl+N su Windows, per lavorare su più compiti in parallelo. Premi Ctrl+Tab e Ctrl+Shift+Tab per passare da una sessione all'altra.
Puoi anche aprire una seconda sessione accanto alla sessione corrente o in una finestra separata:
- Affiancata: tieni premuto Option su macOS o Alt su Windows e fai clic su una sessione nella barra laterale, oppure fai clic con il pulsante destro sulla sessione e seleziona Open in, quindi Split view
- In una finestra separata: tieni premuto Cmd su macOS o Ctrl su Windows e fai clic su una sessione, oppure fai clic con il pulsante destro sulla sessione e seleziona Open in, quindi New window
Nella vista divisa, il riquadro che hai aperto o su cui hai fatto clic per ultimo ha il focus, e l'altro riquadro è attenuato. Per cambiare la sessione mostrata in un riquadro, fai clic in quel riquadro per dargli il focus, quindi fai clic su una sessione nella barra laterale. Per rimuovere dalla vista divisa la sessione con il focus, premi Cmd+Ctrl+W su macOS o Ctrl+Alt+W su Windows.
Esegui una sessione nel suo worktree
In un progetto che è un repository Git, attiva Worktree prima di avviare una sessione per eseguirla nel proprio worktree Git, una copia isolata del progetto. Per impostazione predefinita, Worktree è disattivato e Claude lavora direttamente nella cartella del progetto. Nel layout attuale, attiva Worktree nella riga sotto la casella del prompt.
- Con un provider di terze parti: se la riga sotto la casella del prompt mostra il controllo della cartella del progetto ma non Worktree, fai clic sul controllo della cartella del progetto e attiva Worktree
- Come impostazione predefinita per un ambiente locale o SSH salvato: imposta Worktree quando crei o modifichi l'ambiente
- Layout precedente: seleziona la casella di controllo worktree accanto al nome del branch, sopra la casella del prompt
I worktree sono archiviati in <project-root>/.claude/worktrees/ per impostazione predefinita. Per archiviarli invece in una directory personalizzata:
- Sessioni locali: imposta Worktree location in Settings > Code o Settings > Claude Code
- Sessioni SSH: imposta Worktree folder sulla connessione SSH
Puoi anche impostare un Branch prefix in Settings > Code o Settings > Claude Code. Desktop lo antepone a ogni nome di branch worktree, il che è utile per mantenere organizzati i branch creati da Claude.
Per includere file gitignored come .env nei nuovi worktree, crea un file .worktreeinclude nella radice del tuo progetto. Vedi Cosa condividono i worktree con il checkout principale per sapere da dove una sessione worktree legge le impostazioni di progetto, gli hook e le skill.
[!NOTE]
L'isolamento delle sessioni richiede Git. La maggior parte dei Mac include Git per impostazione predefinita. Esegui
git --versionnel Terminale per verificarlo; se viene visualizzato un numero di versione, Git è installato. Se riscontri errori di Git, chiedi a Claude in Cowork di aiutarti a risolvere i problemi della tua configurazione.
Aggiungi cartelle a una sessione
Aggiungi le cartelle prima che la sessione si avvii o mentre è in esecuzione:
- Prima che si avvii una sessione locale: aggiungi le cartelle in Folders quando crei un ambiente salvato o ne modifichi uno, quindi avvia la sessione da quell'ambiente salvato.
- Mentre è in esecuzione una sessione locale o SSH: fai clic su + accanto alla casella del prompt e seleziona Add folder. Claude lavora direttamente in quella cartella, senza alcun worktree.
Archivia una sessione
Prima di archiviare una sessione il cui worktree contiene modifiche senza commit, consulta Conserva le modifiche senza commit quando una sessione viene archiviata. Per archiviare una sessione, passa il mouse sopra di essa nella barra laterale, apri il suo menu e seleziona Archive. La sessione viene spostata nelle tue sessioni archiviate.
Per fare in modo che le sessioni si archivino da sole quando viene eseguito il merge della loro pull request o quando questa viene chiusa, attiva Auto-archive after PR merge or close in Settings > Code o Settings > Claude Code. Le sessioni cloud e le sessioni ancora in esecuzione non si archiviano da sole.
Conserva le modifiche senza commit quando una sessione viene archiviata
Puoi perdere le modifiche senza commit nel worktree di una sessione quando la sessione viene archiviata, quindi prima esegui il commit di ciò che vuoi conservare:
- Se Desktop ti chiede delle modifiche: seleziona Archive anyway per scartarle, oppure annulla ed esegui il loro commit
- Se le uniche modifiche sono file non tracciati: esegui il commit di quelli che vuoi conservare prima che venga eseguito il merge di una pull request aperta da Claude nella sessione, perché a quel punto Desktop può eliminarli senza chiedere
- In qualsiasi altro caso: il worktree resta su disco con le sue modifiche. Per una sessione locale, Desktop li rimuove entrambi circa 30 giorni dopo l'archiviazione della sessione o dopo l'ultima volta che la apri, a seconda di quale data sia successiva. Per conservare le modifiche, apri la sessione dalla scheda Archived e seleziona Unarchive
Organizza e trova le sessioni
Raggruppi, ordini e trovi le sessioni da un'icona nell'elenco delle sessioni della barra laterale:
- Layout attuale: passa il mouse su un'intestazione nell'elenco delle sessioni per mostrare l'icona Group and sort, quindi fai clic su di essa. Per trovare le sessioni archiviate, seleziona View all, l'ultima riga del menu, quindi apri la scheda Archived.
- Layout precedente: l'icona Filter è visibile senza passare il mouse. Fai clic su di essa per organizzare l'elenco con Group by o Sort by. Per mostrare le sessioni archiviate, seleziona Status, quindi Archived.
Per rinominare una sessione, aprila e fai clic sul titolo della sessione nella barra del titolo.
Controlla e libera il contesto
Per controllare l'utilizzo del contesto, vedi Controlla l'utilizzo. Quando il contesto si riempie, Claude riassume automaticamente la conversazione e continua a lavorare. Puoi anche digitare /compact per attivare la compattazione prima e liberare spazio di contesto. Vedi la finestra di contesto per i dettagli su come funziona la compattazione.
Ricevi una notifica quando una sessione termina
L'app desktop invia una notifica del sistema operativo quando una sessione Code termina un'attività e non stai visualizzando quella sessione. Per le sessioni che appartengono a un progetto, ricevi invece le notifiche del progetto.
Chiedi una domanda laterale senza deviare la sessione
Una chat laterale ti consente di chiedere a Claude una domanda che utilizza il contesto della tua sessione ma non aggiunge nulla di nuovo alla conversazione principale. Usala quando vuoi capire un pezzo di codice, verificare un'assunzione o esplorare un'idea senza sterzare la sessione fuori rotta.
Premi Cmd+; su macOS o Ctrl+; su Windows per aprire una chat laterale, o digita /btw nella casella del prompt. La chat laterale può leggere tutto nel thread principale fino a quel punto. Quando hai finito, chiudi la chat laterale e continua la sessione principale da dove l'hai lasciata.
Le chat laterali sono disponibili nelle sessioni locali, SSH e WSL. L'app desktop non salva le chat laterali su disco, quindi non puoi tornare a una dopo aver chiuso l'app.
Guarda le attività in background
Il pannello attività mostra il lavoro in background in esecuzione all'interno della sessione corrente: subagent, comandi shell in background e workflow dinamici. Quando la sessione ha del lavoro in background, apri il pannello con Background tasks nel menu ⋮ della barra del titolo.
Fai clic su qualsiasi voce per vedere il suo output nel pannello subagent o fermarlo. Per vedere cosa stanno facendo altre sessioni, usa la barra laterale, o chiedi a Claude di controllarle per te.
Lavora tra le sessioni
Claude può elencare le tue altre sessioni della scheda Code, leggere cosa ognuna ha fatto, e inviare messaggi tra di loro. Chiedi in linguaggio naturale: "quale sessione ha toccato il refactor dell'autenticazione?", "cosa ha concluso la sessione API?", o "dì alla sessione dei pagamenti che lo schema è cambiato".
Puoi anche chiedere a Claude di rinominare o archiviare una sessione. Ad esempio, chiedigli di archiviare le sessioni delle cui PR è stato eseguito il merge.
Attraverso questa superficie, Claude vede solo le sessioni che l'app desktop esegue da sola: locale, SSH, e sessioni WSL nella scheda Code. Claude non vede le sessioni cloud, o le sessioni che hai avviato dal CLI del terminale o dall'estensione VS Code, anche nei worktree dello stesso progetto, quindi con nove worktree del terminale aperti e due sessioni desktop, Claude che risponde in una di esse segnala l'altra sessione desktop. Claude non elenca mai la sessione da cui stai chiedendo. Per impostazione predefinita vede le 20 sessioni più recentemente attive e salta le sessioni archiviate a meno che non le chiedi. La messaggistica tra sessioni consente separatamente a Claude di inviare messaggi alle tue altre sessioni Claude Code, incluse le sessioni del terminale.
Quando Claude invia un messaggio a un'altra sessione attraverso questa superficie, Claude Code lo mostra lì come una scheda etichettata con il titolo della sessione di invio e un collegamento indietro, così puoi sempre dire da dove proviene un messaggio. Se la sessione ricevente è a metà di un'attività, Claude Code tiene il messaggio e Claude lo legge una volta che il lavoro corrente finisce. Claude che riceve può rispondere, e Claude Code consegna la risposta indietro attraverso questa superficie. Claude non può consegnare a una sessione archiviata, e ti dice quando un messaggio non passa.
Claude Code applica tre comportamenti di sicurezza tra le sessioni:
- Ricevi una scheda di approvazione prima che Claude archivi una sessione, tranne in modalità Auto e in modalità Bypass permissions, in cui Claude può archiviare una sessione senza di essa. Per ricevere la richiesta, passa a Manual.
- Claude Code controlla ogni messaggio da questa superficie rispetto ai controlli in entrata della sessione ricevente, anche quando la sessione ricevente non ha messaggistica tra sessioni stessa. Se imposti
crossSessionInboundsurefusenella sessione ricevente, Claude Code scarta i messaggi da questa superficie. Claude Code segnala il rifiuto all'app desktop Claude. Prima della v2.1.234, Claude Code scartava ogni messaggio da questa superficie a una sessione ricevente senza messaggistica tra sessioni. - Claude Code cita ogni messaggio in arrivo e lo attribuisce alla sessione che l'ha inviato, e Claude segue comunque le impostazioni di permesso proprie della sessione ricevente quando agisce su uno.
Avvia un'attività suggerita da Claude
Quando Claude nota qualcosa che vale la pena correggere al di fuori della tua attività corrente, suggerisce quel lavoro come attività. Nelle sessioni locali e SSH con il layout attuale, il suggerimento è una scheda nella chat, e i suoi pulsanti avviano l'attività oppure la mantengono in questa sessione:
- Start: avvia l'attività in un'altra sessione. Per impostazione predefinita l'attività viene eseguita nell'ambiente della sessione corrente. La scheda mostra quindi lo stato della sessione avviata, e la barra laterale elenca la sessione avviata sotto la sessione corrente.
- Do it here: invia l'attività alla sessione corrente come messaggio
- Options: rivedi o modifica impostazioni come l'ambiente, il modello, il worktree e i permessi prima di fare clic su Start
- Start all: quando la scheda elenca più attività, avvia ciascuna attività nella propria sessione senza attendere che un'attività termini prima di avviare la successiva
Nelle sessioni cloud, e nelle sessioni locali e SSH con il layout precedente, il suggerimento è una scheda Suggested task. Per avviare l'attività nel modo indicato dal pulsante principale della scheda, ad esempio Send to cloud o Start with worktree, fai clic su quel pulsante. Fai clic sulla freccia accanto al pulsante principale per altri modi di avviare l'attività, incluso Do it here.
Esegui attività a lunga esecuzione nel cloud
Per grandi refactor, suite di test, migrazioni o altre attività a lunga esecuzione, seleziona un ambiente in Cloud nel selettore dell'ambiente quando avvii una sessione. Le sessioni cloud vengono eseguite sull'infrastruttura gestita da Anthropic per impostazione predefinita e continuano anche se chiudi l'app o spegni il computer. Torna indietro in qualsiasi momento per vedere i progressi o indirizzare Claude in una direzione diversa. Puoi anche monitorare le sessioni cloud da claude.ai/code o dall'app mobile Claude.
Le sessioni cloud supportano anche più repository. Scegli i repository:
- Layout attuale: nella riga sotto la casella del prompt, una volta selezionato un ambiente cloud.
- Layout precedente: sopra la casella del prompt. Per aggiungere un altro repository, fai clic su + accanto a quello selezionato.
Vedi Usa Claude Code nel cloud per ulteriori informazioni su come funzionano le sessioni cloud. Quando un corpo di lavoro ha bisogno di molte sessioni cloud, usa un progetto: Claude avvia e traccia le sessioni per te da una sola conversazione. Crea un progetto descrive i passaggi.
[!NOTE]
Anche un'attività in una sessione SSH può continuare mentre Desktop è disconnesso, ma con un account Claude può interrompersi quando il suo accesso scade.
Continua su un'altra superficie
Per continuare una sessione altrove, apri il menu della sessione dalla freccia accanto al titolo della sessione o dalla riga della sessione nella barra laterale, quindi seleziona Open in:
- Seleziona Cloud per continuare la sessione come sessione cloud, con la tua conversazione trasferita sotto forma di riepilogo. Prima di confermare, la finestra di dialogo indica se vengono spostati anche i tuoi file e se questa sessione viene archiviata una volta che quella cloud è pronta. Non puoi spostare in questo modo una sessione eseguita tramite SSH o in WSL.
- Seleziona un editor installato o il tuo file manager per aprire lì la cartella della sessione su disco.
Controlla quali sessioni appaiono sugli altri tuoi dispositivi
Una sessione locale compare sugli altri tuoi dispositivi una volta che Remote Control la connette. Una sessione connessa appare nell'elenco delle sessioni su claude.ai/code e nelle app Claude sui dispositivi su cui hai effettuato l'accesso con il tuo account claude.ai.
Una sessione locale si connette quando attivi Remote Control per essa, oppure quando si connette automaticamente all'avvio:
- Lo attivi per quella sessione: con l'interruttore Remote Control della sessione, oppure digitando
/remote-controlnella sua casella del prompt. - Si connette all'avvio: le nuove sessioni si connettono automaticamente mentre Connect new sessions to Remote Control è attivo in Settings > Code o Settings > Claude Code, a meno che
remoteControlAtStartupnon siafalsenelle impostazioni gestite. Se non hai mai modificato Connect new sessions to Remote Control, Desktop usaremoteControlAtStartupdalle tue impostazioni utente o dalle impostazioni gestite. Se nessuna delle due lo imposta, Desktop usa il valore predefinito della tua organizzazione o, in mancanza di questo, il proprio.
Per vedere se una sessione è connessa, controlla l'interruttore Remote Control nella scheda Environment del suo pannello dei dettagli della sessione.
Tieni le sessioni lontane dagli altri tuoi dispositivi
Disattiva Remote Control per una sessione, per le sessioni su questo computer o per i computer che gestisci:
- Una sessione: disattiva il suo interruttore Remote Control. In una sessione che si è connessa all'avvio, digitando
/remote-controlRemote Control resta attivo e viene mostratoRemote Control is already on. This session connected automatically when it started.Fai clic su Turn off in quella riga per disconnetterla. - Nuove sessioni Desktop su questo computer: disattiva Connect new sessions to Remote Control in Settings > Code o Settings > Claude Code. Se risulta già disattivato, attivalo e poi disattivalo in modo che Desktop salvi la tua scelta. Una volta salvata, le nuove sessioni non si connettono automaticamente, anche quando
remoteControlAtStartupo un valore predefinito indica di farlo. - Qualsiasi sessione su questo computer, inclusa la CLI: imposta
disableRemoteControlsutruein~/.claude/settings.jsonper impedire alle sessioni di connettersi. Una sessione che era già connessa quando hai salvato il file resta connessa finché non disattivi Remote Control per essa. - Sessioni Desktop sui computer che gestisci: se imposti
remoteControlAtStartupsufalsenel criterio MDM o file di impostazioni gestite con la priorità più alta di un computer, le sessioni su quel computer non si connettono automaticamente, anche quando la chiave ètruenelle impostazioni gestite dal server. Non usare a questo scopo un valore di registroHKCUa livello utente. Gli utenti possono comunque attivare Remote Control per una sessione autonomamente; per impedirlo, usa la console di amministrazione. Richiede Claude Desktop v4.4212.0 o successiva.
Per nascondere una sessione che appare già sugli altri tuoi dispositivi, archiviala in Desktop. Desktop archivia anche la copia Remote Control della sessione, così esce dall'elenco predefinito delle sessioni su quei dispositivi. Per visualizzarla o eliminarla lì, vedi Archivia le sessioni.
Sessioni da Dispatch
Dispatch è una conversazione persistente con Claude che si trova in Cowork. Invii un'attività a Dispatch e lui decide come gestirla.
Un'attività può finire come una sessione Code in due modi: chiedi direttamente una, come "apri una sessione Claude Code e correggi il bug di accesso", o Dispatch decide che l'attività è lavoro di sviluppo e ne genera una automaticamente. Le attività che tipicamente vengono indirizzate a Code includono correzione di bug, aggiornamento delle dipendenze, esecuzione di test o apertura di pull request. La ricerca, la modifica di documenti e il lavoro con fogli di calcolo rimangono in Cowork.
Segui una sessione avviata da Dispatch
La sessione avviata da Dispatch appare nella barra laterale della scheda Code insieme alle tue altre sessioni. Con il raggruppamento e l'ordinamento predefiniti della barra laterale, cerca la sessione più recente nel gruppo della cartella in cui viene eseguita. Ricevi una notifica push sul tuo telefono quando finisce o ha bisogno della tua approvazione.
Se hai l'utilizzo del computer abilitato, le sessioni Code generate da Dispatch possono usarlo anche. Le approvazioni delle app in quelle sessioni scadono dopo 30 minuti e vengono richieste di nuovo, piuttosto che durare l'intera sessione come le sessioni Code regolari.
Configura Dispatch
- Piani: Dispatch richiede un piano Pro, Max o Ultra e non è disponibile sui piani Team o Enterprise
- Configurazione, accoppiamento e impostazioni di Dispatch: vedi l'articolo di aiuto di Dispatch
Dispatch è uno dei diversi modi per lavorare con Claude quando sei lontano dal tuo terminale. Per un confronto con le altre opzioni, vedi Piattaforme e integrazioni.
Estendi Claude Code
Connetti servizi esterni, aggiungi workflow riutilizzabili, personalizza il comportamento di Claude e configura server di anteprima. Per gestire connettori, skill e plugin in un unico posto, fai clic su Customize nella barra laterale. La scheda Cowork nell'app Desktop estrae le sue skill, i plugin e i connettori da questa configurazione Customize, che si sincronizza tramite il tuo account claude.ai, non dalla directory ~/.claude della CLI.
Claude Code carica anche gli skills e i plugin abilitati per il tuo account claude.ai nelle sessioni di terminale in cui accedi con lo stesso account. Vedi Skills synced from claude.ai e Plugins synced from claude.ai.
Connetti strumenti esterni
I connettori sono server MCP con un flusso di configurazione grafico.
Fai clic su + accanto alla casella del prompt, prima o durante la sessione, per aggiungere connettori in una sessione locale o SSH con un account Claude. Seleziona Add connectors per aprire la directory dei connettori. Se il menu mostra invece Connectors, selezionalo, poi seleziona Browse connectors.
[!NOTE]
Questi casi sono trattati in altre pagine:
- Connectors è disattivato in una sessione WSL: vedi Se il terminale o i connettori non sono disponibili
- Sessioni cloud: vedi Come i connettori raggiungono Claude Code
Una volta connesso, Claude può leggere il tuo calendario, inviare messaggi, creare problemi e interagire direttamente con i tuoi strumenti. Puoi chiedere a Claude quali connettori sono configurati nella tua sessione. Per gestire o disconnettere i connettori, fai clic su Customize nella barra laterale e apri Connectors.
Per le integrazioni non elencate in Connectors, aggiungi server MCP manualmente tramite file di impostazioni. Puoi anche creare connettori personalizzati.
Usa skills
Skills estendono quello che Claude può fare. Claude le carica automaticamente quando rilevante, o puoi invocarne una direttamente: digita / nella casella del prompt o fai clic sul pulsante + e seleziona Slash commands per sfogliare cosa è disponibile. Questo include comandi incorporati, le tue skill personalizzate, skill del progetto dal tuo codebase e skill da qualsiasi plugin installato. Selezionane uno e appare evidenziato nel campo di input. Digita il tuo compito dopo di esso e invia come al solito.
Puoi inviare un comando mentre Claude sta lavorando, come qualsiasi altro messaggio, e la sessione torna inattiva una volta che il turno finisce.
Le sessioni locali caricano le tue skill personali da ~/.claude/skills/. Una sessione SSH legge ~/.claude/skills/ dalla directory home dell'host remoto, non dalla tua macchina.
Le sessioni locali e cloud caricano anche gli skills abilitati per il tuo account claude.ai, tranne le sessioni locali quando la tua organizzazione imposta disableSideloadFlags. Le sessioni cloud li caricano invece di ~/.claude/skills/, come descrive Skills in Cowork and cloud sessions.
Installa plugin
Plugins sono pacchetti riutilizzabili che aggiungono skills, agent, hooks, MCP servers e configurazioni LSP a Claude Code. Puoi installare plugin dall'app desktop senza usare il terminale.
In una sessione locale o in una sessione SSH, fai clic su + accanto alla casella del prompt e seleziona Add plugins per aprire il browser dei plugin. Se il menu mostra invece Plugins, selezionalo, poi seleziona Browse plugins, oppure Manage plugins per abilitare, disabilitare o disinstallare plugin.
Puoi limitare i plugin al tuo account utente, a un progetto specifico o solo locali. Se la tua organizzazione gestisce i plugin centralmente, quei plugin sono disponibili nelle sessioni desktop nello stesso modo in cui lo sono nella CLI, tranne quelli che l'app desktop trattiene sotto disableSideloadFlags.
Il browser dei plugin non è disponibile nelle sessioni cloud e i plugin che installi dall'app desktop non sono disponibili per le sessioni cloud. Una sessione cloud inoltre non installa plugin che il file .claude/settings.json del repository dichiara, come spiega What carries over from your setup. I plugin non sono disponibili nelle sessioni WSL. Per il riferimento completo dei plugin inclusa la creazione dei tuoi plugin, vedi plugins.
Configura server di anteprima
Claude rileva automaticamente la tua configurazione del server di sviluppo e archivia la configurazione in .claude/launch.json alla radice della cartella che hai selezionato quando hai avviato la sessione. Preview utilizza questa cartella come directory di lavoro, quindi se hai selezionato una cartella padre, le sottocartelle con i loro stessi server di sviluppo non verranno rilevate automaticamente. Per lavorare con il server di una sottocartella, avvia una sessione in quella cartella direttamente o aggiungi una configurazione manualmente.
Per personalizzare come il tuo server si avvia, ad esempio per usare yarn dev invece di npm run dev o per cambiare la porta, modifica .claude/launch.json. Il file supporta JSON con commenti.
{
"version": "0.0.1",
"configurations": [
{
"name": "my-app",
"runtimeExecutable": "npm",
"runtimeArgs": ["run", "dev"],
"port": 3000
}
]
}
Puoi definire più configurazioni per eseguire server diversi dallo stesso progetto, come un frontend e un'API. Vedi gli esempi di seguito.
Auto-verify changes
Quando autoVerify è abilitato, Claude verifica automaticamente le modifiche al codice dopo aver modificato i file. Scatta screenshot, controlla gli errori e conferma che le modifiche funzionano prima di completare la sua risposta.
Auto-verify è abilitato per impostazione predefinita. Disabilitalo per progetto aggiungendo "autoVerify": false a .claude/launch.json, o disattiva Auto-verify changes nel menu ⋮ del pannello Browser.
{
"version": "0.0.1",
"autoVerify": false,
"configurations": [
{
"name": "my-app",
"runtimeExecutable": "npm",
"runtimeArgs": ["run", "dev"],
"port": 3000
}
]
}
Quando disabilitato, gli strumenti di anteprima sono ancora disponibili e puoi chiedere a Claude di verificare in qualsiasi momento. Auto-verify lo rende automatico dopo ogni modifica.
Configuration fields
Ogni voce nell'array configurations accetta i seguenti campi:
| Campo | Tipo | Descrizione |
|---|---|---|
name |
string | Un identificatore univoco per questo server |
runtimeExecutable |
string | Il comando da eseguire, come npm, yarn o node |
runtimeArgs |
string[] | Argomenti passati a runtimeExecutable, come ["run", "dev"] |
port |
number | La porta su cui il tuo server ascolta. Predefinito a 3000 |
cwd |
string | Directory di lavoro relativa alla radice del tuo progetto. Predefinito alla radice del progetto. Usa ${workspaceFolder} per fare riferimento alla radice del progetto esplicitamente |
env |
object | Variabili d'ambiente aggiuntive come coppie chiave-valore, come { "NODE_ENV": "development" }. Non mettere segreti qui poiché questo file viene eseguito il commit nel tuo repo. Per i segreti, vedi Imposta le variabili d'ambiente per i server di sviluppo. |
autoPort |
boolean | Come gestire i conflitti di porta. Vedi Conflitti di porta |
program |
string | Uno script da eseguire con node. Vedi quando usare program vs runtimeExecutable |
args |
string[] | Argomenti passati a program. Usato solo quando program è impostato |
url |
string | L'indirizzo che l'anteprima apre invece di http://localhost:<port>. Vedi apri l'anteprima a un URL specifico |
When to use program vs runtimeExecutable
Usa runtimeExecutable con runtimeArgs per avviare un server di sviluppo tramite un gestore di pacchetti. Ad esempio, "runtimeExecutable": "npm" con "runtimeArgs": ["run", "dev"] esegue npm run dev.
Usa program quando hai uno script autonomo che vuoi eseguire con node direttamente. Ad esempio, "program": "server.js" esegue node server.js. Passa flag aggiuntivi con args.
Open the preview at a specific URL
Per impostazione predefinita, l'anteprima apre http://localhost:<port>. Imposta url quando il tuo server ha bisogno di un indirizzo diverso. I casi comuni sono server che richiedono HTTPS locale, app che usano sottodomini *.localhost e app che ti accedono tramite un reindirizzamento.
{
"version": "0.0.1",
"configurations": [
{
"name": "my-app",
"runtimeExecutable": "npm",
"runtimeArgs": ["run", "dev"],
"port": 8443,
"url": "https://localhost:8443"
}
]
}
Gli indirizzi localhost si aprono direttamente, esattamente come l'indirizzo della porta predefinita. Questo include localhost, qualsiasi sottodominio *.localhost, 127.0.0.1 e ::1. Per motivi di sicurezza, un url localhost deve essere solo l'origine del tuo server, senza percorso o query. La sua porta deve corrispondere alla porta della voce. Per mostrare una pagina specifica, chiedi a Claude di navigarvi dopo che l'anteprima si apre. Un url localhost con un percorso, query o porta non corrispondente viene segnalato come un errore di configurazione che nomina l'url e mostra la correzione.
Per qualsiasi altro indirizzo, Desktop chiede il tuo permesso la prima volta che l'anteprima lo apre, come quando navighi a un nuovo sito nell'anteprima. Gli indirizzi esterni possono includere percorsi. Scegli Always allow per saltare il prompt per quel sito in futuro. Le politiche organizzative che limitano i siti esterni nell'anteprima si applicano ancora.
Per visualizzare in anteprima un server che già esegui tu stesso, imposta url senza un comando. Claude allega l'anteprima al tuo server in esecuzione invece di avviarne uno:
{
"version": "0.0.1",
"configurations": [
{
"name": "my-app",
"url": "https://app.localhost:3000"
}
]
}
L'url deve essere http o https e non deve contenere un nome utente o una password.
Port conflicts
Il campo autoPort controlla cosa succede quando la tua porta preferita è già in uso:
true: Claude trova e utilizza una porta libera automaticamente. Adatto per la maggior parte dei server di sviluppo.false: Claude fallisce con un errore. Usa questo quando il tuo server deve usare una porta specifica, come per i callback OAuth o gli allowlist CORS.- Non impostato (predefinito): il tuo server ottiene la successiva porta libera, come con
true, tranne nell'unico caso descritto di seguito. Prima di Claude Desktop v2.37337.0, Claude chiede invece se il server ha bisogno di quella porta esatta, quindi salva la tua risposta inlaunch.json.
Se la tua porta preferita è in uso e autoPort non è impostato, il tuo server rimane fermo quando si verificano tutte queste condizioni:
- Avvii il server tramite uno script
npm,yarn,pnpmobun. - La tua porta preferita è codificata in modo fisso in quello script, oppure Claude non può ispezionare lo script.
- Non passi la porta in
runtimeArgs.
In tal caso, libera la porta, rimuovi il valore codificato in modo fisso oppure modifica port in modo che corrisponda allo script. Impostare invece "autoPort": true funziona solo per uno script che legge PORT.
Fai in modo che il tuo server legga la sua porta dalla variabile d'ambiente PORT, che contiene la porta assegnata. Quando Claude sposta il tuo server su una porta diversa, riscrive anche un valore --port o -p in runtimeArgs in modo che corrisponda.
Examples
Queste configurazioni mostrano configurazioni comuni per diversi tipi di progetto:
[tab] Next.js
Questa configurazione esegue un'app Next.js usando Yarn sulla porta 3000:
{ "version": "0.0.1", "configurations": [ { "name": "web", "runtimeExecutable": "yarn", "runtimeArgs": ["dev"], "port": 3000 } ] }
[tab] Multiple servers
Per un monorepo con un frontend e un server API, definisci più configurazioni. Il frontend usa
autoPort: truein modo che scelga una porta libera se 3000 è occupata, mentre il server API richiede la porta 8080 esattamente:{ "version": "0.0.1", "configurations": [ { "name": "frontend", "runtimeExecutable": "npm", "runtimeArgs": ["run", "dev"], "cwd": "apps/web", "port": 3000, "autoPort": true }, { "name": "api", "runtimeExecutable": "npm", "runtimeArgs": ["run", "start"], "cwd": "server", "port": 8080, "env": { "NODE_ENV": "development" }, "autoPort": false } ] }
[tab] Node.js script
Per eseguire uno script Node.js direttamente invece di usare un comando del gestore di pacchetti, usa il campo
program:{ "version": "0.0.1", "configurations": [ { "name": "server", "program": "server.js", "args": ["--verbose"], "port": 4000 } ] }
Configurazione dell'ambiente
L'ambiente che scegli quando avvii una sessione determina dove Claude esegue le operazioni e come ti connetti:
- Local: viene eseguito sulla tua macchina con accesso diretto ai tuoi file
- Cloud: viene eseguito per impostazione predefinita su un'infrastruttura gestita da Anthropic. Le sessioni continuano anche se chiudi l'app.
- SSH: viene eseguito su una macchina remota a cui ti connetti tramite SSH, come i tuoi server, VM cloud o dev container. Un'attività in esecuzione può continuare mentre Desktop è disconnesso, ma con un account Claude può interrompersi quando il suo accesso scade.
- WSL (Windows): viene eseguito all'interno di una distribuzione WSL 2 sulla tua macchina, usando la sua toolchain Linux e i percorsi nativi
Creare un ambiente salvato
Un ambiente salvato è una voce nel selettore di ambiente che registra dove viene eseguito Claude, così puoi avviare lì le sessioni successive. Un ambiente locale o SSH contiene anche le cartelle in cui lavora Claude. Gli ambienti locali e SSH salvati fanno parte del layout attuale, quindi se non li vedi, verifica quale layout hai e come ottenere quello attuale.
1. Apri la finestra di dialogo New environment
Apri il selettore di ambiente sotto la casella del prompt e seleziona New environment in fondo al suo menu.
2. Scegli dove viene eseguito Claude
Seleziona la scheda Local, SSH o Cloud e compila il modulo in quella scheda. Nella scheda SSH, scegli una connessione e una cartella sulla macchina remota.
3. Salva l'ambiente
Seleziona Create environment, oppure Add environment nella scheda Cloud.
Ambienti che Desktop crea per te
Se il selettore di ambiente elenca ambienti locali o SSH che non hai creato tu, li ha creati Desktop per te. La prima volta che apri la scheda Code nel layout attuale, Desktop crea fino a otto ambienti. Gli ambienti derivano dalle cartelle locali e SSH che hai usato di più nell'ultimo mese. Puoi modificarli o eliminarli.
Usare, modificare o rimuovere un ambiente salvato
Trova la voce dell'ambiente nel selettore di ambiente:
- Avviare una sessione: seleziona la voce.
- Modificare o eliminare: passa il mouse sopra la voce e fai clic sull'icona a forma di ingranaggio. Per eliminare un ambiente locale o SSH, fai clic su Delete environment in Edit environment.
- Archiviare ambienti cloud: consulta Archiviare un ambiente.
Variabili d'ambiente nelle sessioni locali
Per impostare una variabile d'ambiente per una sessione locale, aggiungila a un ambiente locale salvato, poi avvia una nuova sessione da quell'ambiente.
Variabili come PATH e CLAUDE_CONFIG_DIR hanno istruzioni proprie:
| Variabile | Cosa fare invece |
|---|---|
PATH, le cartelle in cui il sistema cerca programmi come npm |
Consulta La sessione non trova gli strumenti installati. Su Windows, Desktop non legge i profili di PowerShell, quindi imposta PATH nelle variabili d'ambiente dell'utente o di sistema, poi chiudi e riapri Desktop. |
Una variabile per un server MCP da claude_desktop_config.json |
Chiudi Desktop, impostala nel blocco env di quel server, poi riapri Desktop |
CLAUDE_CONFIG_DIR o CLAUDE_CODE_TMPDIR |
Impostala in uno dei punti in cui imposteresti una variabile per i dev server, poi chiudi e riapri Desktop |
API_TIMEOUT_MS, ANTHROPIC_BASE_URL o un'altra variabile che Desktop imposta da sé |
Consulta Variabili d'ambiente che Desktop imposta da sé |
Su macOS o Linux, se una variabile che hai impostato con export manca o è errata in un comando eseguito da Claude, consulta Variabile esportata mancante o errata nei comandi eseguiti da Claude.
Impostare variabili d'ambiente per le sessioni locali
Aggiungi le variabili a un ambiente locale salvato e avvia le tue sessioni da lì. Desktop imposta da sé alcune variabili, come API_TIMEOUT_MS, e per quelle le tue sessioni ricevono il suo valore anziché il tuo.
[!NOTE]
Se una nuova sessione non mostra alcun ambiente sotto la casella del prompt, hai il layout precedente, che non ha ambienti locali salvati. Usa invece l'editor dell'ambiente locale.
1. Apri il modulo di un ambiente locale
- Per creare un ambiente locale salvato: seleziona New environment in fondo al menu del selettore di ambiente, poi la scheda Local
- Per modificarne uno che hai già: nel selettore di ambiente, passa il mouse sopra un ambiente salvato sotto Local e fai clic sull'icona a forma di ingranaggio per aprire Edit environment
2. Inserisci le variabili
Seleziona Environment variables, inserisci una coppia KEY=value per riga e seleziona Done.
3. Salva l'ambiente
Seleziona Create environment o Save.
Solo le sessioni che avvii da quell'ambiente ricevono le variabili.
Per impostare una variabile per ogni sessione locale, aggiungila alla chiave env nel tuo file ~/.claude/settings.json. Claude Code ignora il valore se quella variabile è già presente nell'ambiente con cui Desktop avvia la sessione. Consulta variabili d'ambiente per l'elenco completo delle variabili supportate.
Impostare variabili d'ambiente per i dev server
Per fornire un segreto a un dev server senza salvarlo con un commit in launch.json, impostalo in uno di questi punti, poi riavvia Desktop:
- macOS e Linux: esportalo nel profilo della tua shell
- Windows: aggiungilo alle variabili d'ambiente dell'utente o di sistema
- Qualsiasi piattaforma: salvalo nell'editor dell'ambiente locale, se puoi aprirlo
I dev server non ricevono le variabili che aggiungi a un ambiente salvato o a ~/.claude/settings.json.
Usare l'editor dell'ambiente locale
Per aprire l'editor dell'ambiente locale, fai clic sull'icona a forma di ingranaggio sulla voce del tuo computer, non su quella di un ambiente salvato:
- Selettore sotto la casella del prompt: passa il mouse sopra la voce del tuo computer, la prima sotto Local. Se compare un'icona a forma di ingranaggio, fai clic su di essa. In caso contrario, l'editor non è disponibile, quindi imposta la variabile per le sessioni locali o per i dev server in un altro modo.
- Selettore sopra la casella del prompt: passa il mouse sopra Local e fai clic sull'icona a forma di ingranaggio
Inserisci una coppia KEY=value per riga e seleziona Save changes. Le variabili che salvi qui vengono memorizzate in forma crittografata sulla tua macchina. Le sessioni locali le ricevono, tranne le variabili che Desktop imposta da sé, come API_TIMEOUT_MS. Riavvia Desktop per fornire le tue variabili ai dev server.
Variabile esportata mancante o errata nei comandi eseguiti da Claude
Se un comando eseguito da Claude su macOS o Linux non riceve una variabile che hai impostato con export in ~/.zshrc o ~/.bashrc, oppure riceve il valore sbagliato, prova queste soluzioni nell'ordine:
1. Avvia una nuova sessione
Chiedi a Claude di eseguire di nuovo il comando.
2. Chiudi e riapri Desktop
Poi avvia una nuova sessione.
3. Controlla le variabili salvate
Se un comando riceve il valore sbagliato, verifica se hai impostato la variabile anche in un ambiente salvato o nell'editor dell'ambiente locale. In tal caso, modifica lì il valore e avvia una nuova sessione.
4. Usa un ambiente salvato
Aggiungi la variabile a un ambiente locale salvato, poi avvia una nuova sessione da quell'ambiente. Per una variabile come PATH, CLAUDE_CONFIG_DIR o API_TIMEOUT_MS, segui invece le sue istruzioni specifiche.
Prima della v2.1.304, Claude Code non passa le variabili esportate ai comandi, quindi verifica quale versione esegue la sessione.
Variabili d'ambiente che Desktop imposta da sé
Se hai impostato API_TIMEOUT_MS o ANTHROPIC_BASE_URL e nelle tue sessioni locali non è cambiato nulla, è perché Desktop imposta da sé quelle variabili, tra le altre. Una sessione locale riceve il valore di Desktop sia che tu abbia impostato il tuo nel profilo della shell, nelle variabili utente o di sistema di Windows, nell'editor dell'ambiente locale o in un ambiente salvato. Spostare il tuo valore in un file di impostazioni non aiuta, perché Claude Code ignora quel valore in una sessione locale.
API_TIMEOUT_MS: una sessione locale riceve900000, ovvero 15 minuti. Per un timeout più lungo, installa la CLI di Claude Code e usala al posto di Desktop. Imposta la variabile nella tua shell ed eseguiclaudenel terminale.ANTHROPIC_BASE_URL: una sessione locale riceve l'host dell'API di Anthropic quando hai effettuato l'accesso con un account Claude. Per usare un gateway, configura invece la configurazione di inferenza di terze parti di Desktop.
Disattivare il ragionamento esteso
Il ragionamento esteso è attivo per impostazione predefinita, il che migliora le prestazioni nelle attività di ragionamento complesse ma usa token aggiuntivi. Per disattivarlo, imposta MAX_THINKING_TOKENS su 0 in un ambiente locale salvato o nell'editor dell'ambiente locale. Il ragionamento si disattiva quindi sull'API di Anthropic, tranne che su Opus 5.5, Sonnet 5.5, Haiku 5.5 e i modelli Fable, che usano sempre il ragionamento esteso.
Su Opus 5, seleziona anche un livello di effort high o inferiore prima di avviare la sessione. Nel layout attuale, apri il selettore del modello e seleziona un livello sotto Effort. Se hai avviato la sessione con un livello più alto, avviane una nuova con high o inferiore.
Budget di ragionamento fissi
Sui modelli con ragionamento adattivo, Claude Code ignora il numero stesso in un valore positivo di MAX_THINKING_TOKENS, perché è il ragionamento adattivo a controllare la profondità del ragionamento. Su Opus 4.6 e Sonnet 4.6, imposta CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING su 1 per usare un budget di ragionamento fisso; i modelli Fable, Sonnet 5 e successivi, Haiku 5.5 e Opus 4.7 e successivi usano sempre il ragionamento adattivo e non hanno una modalità a budget fisso.
Sessioni locali su dispositivi gestiti
Se la voce del tuo computer è disattivata nel selettore di ambiente, con il tooltip Disabled by your organization, l'amministratore ha disattivato le sessioni locali. Su Windows la voce WSL, la cui disponibilità sui dispositivi gestiti è regolata separatamente, è disattivata allo stesso modo.
Le nuove sessioni usano per impostazione predefinita la prima connessione SSH, se ne è configurata una. Se provi a continuare una sessione locale esistente, Desktop mostra un messaggio che indica che le sessioni locali non sono disponibili su questo dispositivo. Gli ambienti locali salvati mostrano questo errore quando ne selezioni uno: Couldn’t switch environments: the Local environment isn’t available anymore. Scegli invece un ambiente SSH o cloud, oppure contatta il tuo team IT.
Sessioni cloud
Le sessioni cloud continuano in background anche se chiudi l'app. L'utilizzo rientra nei limiti del tuo piano di abbonamento, senza costi di calcolo separati.
Per aggiungere, modificare o archiviare un ambiente cloud, apri il selettore di ambiente:
- Aggiungere un ambiente: seleziona New environment in fondo al menu del selettore, poi la scheda Cloud della finestra di dialogo New environment
- Modificare o archiviare uno dei tuoi ambienti: passa il mouse sopra di esso e fai clic sull'icona a forma di ingranaggio
Consulta Configurare gli ambienti cloud per i dettagli sulla configurazione dell'accesso di rete e delle variabili d'ambiente.
Sessioni SSH
Le sessioni SSH ti permettono di eseguire Claude Code su una macchina remota usando l'app desktop come interfaccia. È utile per lavorare con codebase che si trovano su VM cloud, dev container o server con hardware o dipendenze specifici.
[!NOTE]
Se usi Desktop con un provider di terze parti, le sessioni SSH richiedono una configurazione propria. Consulta SSH remote sessions in Claude Desktop on 3P.
Aggiungi una connessione SSH nella finestra di dialogo New environment, poi avvia una sessione su quella connessione. Se una nuova sessione non mostra alcun ambiente sotto la casella del prompt, hai il layout precedente. Consulta Verificare quale layout hai.
1. Apri la finestra di dialogo New environment
Prima di avviare una sessione, apri il selettore di ambiente sotto la casella del prompt e seleziona New environment in fondo al suo menu.
2. Aggiungi la connessione
Nella scheda SSH della finestra di dialogo New environment, apri l'elenco Host, seleziona Add SSH connection… e compila i dettagli della connessione:
- Name: un'etichetta descrittiva per questa connessione.
- SSH host:
user@hostnameo un host definito in~/.ssh/config. - SSH port: se lasciato vuoto usa per impostazione predefinita la porta 22, oppure la porta indicata nella tua configurazione SSH.
- SSH key (optional): percorso della tua chiave privata, ad esempio
~/.ssh/id_ed25519. Lascia vuoto per usare la tua configurazione SSH o l'agente SSH. - Worktree folder: una cartella sulla macchina remota, ad esempio
~/worktrees, in cui le nuove sessioni creano i loro worktree. Lascia vuoto per usare la cartella predefinita della macchina remota.
Poi seleziona Add SSH connection.
3. Avvia una sessione sulla connessione
Seleziona una cartella sulla macchina remota e fai clic su Create environment. Conservi la macchina e la cartella insieme come ambiente salvato per le sessioni successive. Desktop lo seleziona per la nuova sessione, quindi digita la tua attività e premi Enter.
La macchina remota può eseguire Linux, macOS o Windows. Desktop installa automaticamente Claude Code sulla macchina remota la prima volta che ti connetti. Una volta connesse, le sessioni SSH supportano modalità di permesso, connettori, plugin e server MCP.
Requisiti della macchina remota per le sessioni SSH
Una macchina remota Linux o macOS richiede un processore supportato, un server SSH con SFTP, una cartella di installazione non montata con noexec, una shell funzionante e l'accesso di rete. Verifica ogni requisito prima di connetterti, oppure quando una connessione non riesce dopo l'accesso:
- Sistema: un processore x86_64 o arm64. La macchina deve inoltre soddisfare i requisiti di sistema di Claude Code. Su Linux, Claude Code richiede glibc 2.17 o versioni successive, oppure musl. Per vedere quale ha la macchina, esegui lì
ldd --version. Su una distribuzione basata su musl come Alpine Linux, installa anche i pacchetti di cui Claude Code ha bisogno. - SFTP: il server SSH deve offrire il sottosistema SFTP, attivato da una riga
Subsystem sftpnel suosshd_config. Per verificarlo, connettiti allo stesso host e alla stessa porta consftpin un terminale sul tuo computer. Un server funzionante mostra il promptsftp>. MaxSessions 1sul server: per connetterti a un server il cuisshd_configimpostaMaxSessions 1, fai una di queste cose:- Il tuo computer esegue macOS o Linux: aggiorna a Claude Desktop v3.1623.0 o versioni successive
- Il tuo computer esegue Windows: assicurati che Desktop si connetta tramite il client OpenSSH, perché il client SSH integrato di Desktop non può connettersi a quel server
- Puoi modificare il server: aumenta
MaxSessions, ad esempio al valore predefinito di OpenSSH, 10
- Accessi con
MaxSessions 1: usa un accesso che funzioni senza prompt, come una chiave conservata dal tuo agente SSH. Desktop effettua l'accesso almeno due volte ogni volta che si connette o si riconnette. Prevedi almeno un accesso in più per ogni scheda del terminale e per ogni sessione di Desktop in cui esegui comandi che iniziano con!. Non ne prevedere nessuno per i comandi eseguiti da Claude. - Codici monouso con
MaxSessions 1: se ogni accesso ti chiede qualcosa, come nel caso dei codici monouso, i comandi!non riescono. Esegui invece quei comandi in una scheda del terminale, che mostra la richiesta nel proprio riquadro. - Cartella di installazione: Desktop installa un programma di supporto e Claude Code in
~/.claude/remote/nella tua directory home. Li esegue da lì, quindi quella cartella non può trovarsi su un file system montato connoexec. Prevedi circa 1 GB di spazio su disco nella directory home di ogni utente che si connette. Per sapere cosa contiene quella cartella, consulta File e processi sulla macchina remota. - Shell: la shell impostata per il tuo account sulla macchina remota deve eseguire i comandi inviati tramite SSH, come fanno Bash, Zsh e
sh - Rete: Claude Code viene eseguito sulla macchina remota ed effettua da lì le sue richieste di rete, quindi la macchina ha bisogno dell'accesso di rete richiesto da Claude Code. Se la macchina non può scaricare Claude Code, Desktop lo scarica sul tuo computer e lo carica. Le altre richieste di Claude Code partono comunque dalla macchina remota. Se una macchina remota Linux ha bisogno di un proxy o di un certificato CA, impostalo per le sessioni SSH.
Verificare la chiave host di una macchina remota
Una chiave host è la chiave che una macchina remota presenta per dimostrare quale macchina è, e un'impronta (fingerprint) è una forma breve di quella chiave. Quando consideri attendibile una chiave, il tuo computer la salva e si connette a qualunque cosa la presenti, senza chiedere di nuovo. Verifica una chiave prima di considerarla attendibile, perché qualcosa potrebbe intercettare la connessione.
Per prima cosa individua a quale macchina appartiene la chiave, in base a dove vedi l'impronta:
- Desktop chiede
Connect to <host> for the first time?, oppure hai selezionato Review new key: la macchina indicata da Desktop,<host> - Desktop chiede
Connect through <jump host> for the first time?: il jump host, ovvero la macchina attraverso cui passa la tua connessione, non la macchina che vuoi raggiungere sshchiede o avvisa in un terminale: la macchina indicata dal suo messaggio, che potrebbe non essere quella che hai digitato
Ottieni l'impronta della macchina direttamente dalla macchina stessa, non tramite la connessione che stai verificando:
- La macchina è gestita da qualcun altro: chiedi a quella persona l'impronta della chiave host
- La gestisci tu ed esegue Linux o macOS: esegui
ssh-keygen -lf /etc/ssh/ssh_host_<type>_key.pubsu di essa, dalla sua console o tramite una connessione che consideri già attendibile. Per<type>, usa il tipo di chiave che Desktop osshmostra accanto all'impronta, in minuscolo:ed25519perED25519ossh-ed25519.
Poi confronta l'impronta della macchina con quella che ti è stata mostrata:
- Corrispondono: considera attendibile la chiave. Seleziona Trust and connect o Trust new key in Desktop, oppure rispondi
yesnel terminale. - Sono diverse, oppure non puoi verificare: non connetterti. Seleziona Cancel in Desktop, oppure rispondi
nonel terminale. Se la macchina è gestita da qualcun altro, comunica a quella persona quale impronta ti è stata mostrata.
Se sei arrivato qui da un passaggio di risoluzione dei problemi, torna a quel passaggio dopo uno qualsiasi dei due risultati.
Impostare un proxy o un certificato CA per le sessioni SSH
Se una macchina remota Linux raggiunge Internet tramite un proxy o ha bisogno di un certificato CA, aggiungi le variabili per il proxy e la CA sotto env in ~/.claude/settings.json su quella macchina. Aggiungile anche se le esporti già in ~/.profile, ~/.bash_profile, ~/.zprofile o ~/.zshrc su quella macchina.
In una sessione SSH, Claude Code non riceve le variabili da quei file, anche quando claude in un terminale su quella macchina le riceve. La sessione può quindi bloccarsi, oppure mostrare The connection from … to the API failed, Authentication failed o Claude Code on … couldn’t verify the API connection’s certificate. Accedere di nuovo non aiuta.
1. Aggiungi le variabili
Per il file CA, usa NODE_EXTRA_CA_CERTS, perché Claude Code non considera attendibile una CA indicata da SSL_CERT_FILE in ~/.claude/settings.json. Questo esempio imposta un proxy e un file CA:
{
"env": {
"HTTPS_PROXY": "http://proxy.example.com:8080",
"NODE_EXTRA_CA_CERTS": "/etc/ssl/certs/example-ca.pem"
}
}
2. Invia di nuovo il messaggio
Invia di nuovo il messaggio, perché una variabile che aggiungi o modifichi in quel file ha effetto entro pochi secondi. Se non funziona ancora, avvia una nuova sessione.
Trovare una variabile per il proxy o la CA impostata altrove sulla macchina remota
Verifica se la macchina remota Linux imposta la variabile per il proxy o la CA altrove, perché le sessioni usano quel valore e ignorano quello di qualsiasi file di impostazioni:
1. Elenca le variabili impostate dalla macchina remota
In un terminale sul tuo computer, esegui ssh devbox env, con il tuo host.
2. Modifica la variabile dove è impostata
Se l'elenco contiene la variabile, modificala nel file che la imposta, ad esempio ~/.zshenv, /etc/environment o ~/.bashrc sulla macchina remota.
3. Fornisci il nuovo valore alle sessioni
Riavvia la macchina remota, oppure chiudi Desktop e termina i processi del programma di supporto, come nei primi due passaggi per rimuovere il programma di supporto. Fallo quando non ci sono attività in esecuzione, perché in entrambi i casi il lavoro di Claude viene interrotto.
Usare la tua configurazione SSH
Puoi usare la tua configurazione SSH su macOS, Linux e Windows quando Desktop si connette tramite il client OpenSSH sul tuo computer:
-
macOS e Linux: Desktop si connette eseguendo il client OpenSSH sul tuo computer, quindi usa il tuo
~/.ssh/config. La connessione tramite il client OpenSSH richiede Claude Desktop v1.37937.0 o versioni successive. -
Windows: quando Desktop si connette tramite il client OpenSSH, usa il tuo
%USERPROFILE%\.ssh\config. Se usi un account Claude anziché un provider di terze parti, la connessione tramite il client OpenSSH richiede tutti questi requisiti:- Claude Desktop v2.2553.0 o versioni successive. Per trovare la tua versione, consulta Verificare la versione.
- OpenSSH di Microsoft 9.4 o versioni successive
- Desktop installato con i pulsanti di download in cima a questa pagina, perché Desktop dal Microsoft Store non si connette tramite il client OpenSSH
Se non puoi soddisfare questi requisiti, oppure usi un provider di terze parti, consulta Connettersi su Windows senza il client OpenSSH.
Con il client OpenSSH, inserisci nel campo SSH host un nome Host dal tuo file di configurazione. Desktop usa quindi le impostazioni di quella voce Host, come HostName, User, IdentityFile, CertificateFile, ProxyJump e ProxyCommand.
Prima di aggiungere la connessione, verifica il client e la voce in un terminale sul tuo computer:
- Versione del client su macOS e Linux: esegui
ssh -V. Il client deve essere OpenSSH 7.6 o versioni successive. - Versione del client su Windows: Desktop prova per primo l'
sshpresente nel tuoPATH, quindi eseguissh -V. Il client supera la verifica se l'output mostraOpenSSH_for_Windows_e la versione 9.4 o successiva. Se non la supera, controlla le due cartelle che Desktop prova successivamente: esegui.\ssh.exe -VinC:\Windows\System32\OpenSSH, poi inC:\Program Files\OpenSSH. - Nessun client supera la verifica su Windows: aggiungi la funzionalità facoltativa OpenSSH Client in Windows e installa gli aggiornamenti di Windows in sospeso, oppure installa la build più recente di Microsoft. Poi chiudi e riapri Desktop. Per vedere se Desktop ha trovato un client OpenSSH utilizzabile, cerca in
ssh.logWindows OpenSSH client:seguito da una versione, oppureno usable Windows OpenSSH client. - Voce: su Windows, usa il client che ha superato la verifica della versione. Esegui
sshcon il nomeHost, ad esempiossh devbox. Se non funziona, correggi prima la voce.
Puoi lasciare vuoti i campi SSH port e SSH key (optional). Se ne compili uno, Desktop lo usa insieme alla voce:
- SSH port: un valore qui sovrascrive il
Portdella voce - SSH key (optional): con il client OpenSSH, Desktop offre il file di chiave che scegli in aggiunta all'
IdentityFiledella voce e alle chiavi nel tuo agente SSH. Su Windows, scegli una chiave in formato OpenSSH, perchésshnon legge un file.ppkdi PuTTY.
Connettersi su Windows senza il client OpenSSH
Su Windows, ti connetti tramite il client SSH integrato di Desktop se il tuo computer non soddisfa i requisiti per il client OpenSSH. Con un provider di terze parti, il client tramite cui ti connetti dipende anche dalla versione di Desktop e dalle impostazioni dell'amministratore. Consulta SSH remote sessions in Claude Desktop on 3P.
Con il client integrato, puoi comunque inserire nel campo SSH host un nome Host dalla tua configurazione SSH se il tuo PATH contiene un comando ssh, con questi limiti:
- Impostazioni dalla voce: Desktop prende
HostName,User,Port,IdentityFileeConnectTimeout. Prende ancheProxyCommandse una shellshsi trova nel tuoPATH. - SSH key (optional): lascia vuoto questo campo per mantenere l'
IdentityFiledella voce, perché un file di chiave che scegli qui sostituisce l'IdentityFile CertificateFileeProxyJump: Desktop ignoraCertificateFile, e la connessione non riesce se la voce impostaProxyJump. Per usare una di queste impostazioni, connettiti tramite il client OpenSSH.
Raggiungere una macchina dietro un jump host
Per raggiungere una macchina dietro un jump host, chiamato anche bastion, imposta ProxyJump o ProxyCommand nella voce. La voce seguente raggiunge devbox.internal.example.com tramite bastion.example.com:
Host devbox
HostName devbox.internal.example.com
User alice
ProxyJump bastion.example.com
Inserisci devbox nel campo SSH host.
Se l'amministratore limita gli host SSH, anche il jump host deve essere nell'elenco. Esegui ssh -G bastion.example.com in un terminale sul tuo computer e chiedi all'amministratore di consentire l'hostname che viene stampato.
Raggiungere un container su una macchina remota
Per eseguire una sessione all'interno di un container che non pubblica alcuna porta SSH, raggiungilo con un ProxyCommand, perché Desktop non esegue il RemoteCommand della voce a cui ti connetti. Se la tua voce usa RemoteCommand per entrare nel container, la sessione viene eseguita sulla macchina a cui la voce accede, non nel container.
1. Aggiungi la voce
Aggiungi la voce seguente alla fine del tuo ~/.ssh/config, oppure direttamente sopra la tua prima voce Host *, se ne hai una. Sostituisci il container Docker devbox, il suo utente dev e la macchina build.example.com con i tuoi. Il comando della voce avvia un server SSH all'interno del container per ogni connessione:
Host devbox-container
User dev
ProxyCommand ssh build.example.com docker exec -i devbox /usr/sbin/sshd -i
2. Prepara il container
- Installa il server OpenSSH, con una chiave host che rimanga la stessa quando ricompili l'immagine o ricrei il container
- Fornisci all'account indicato in
Userun modo per accedere, ad esempio un fileauthorized_keys - Verifica che il container soddisfi i requisiti della macchina remota
3. Controlla l'allowlist
Se l'amministratore limita gli host SSH, esegui ssh -G devbox-container in un terminale sul tuo computer. Chiedi all'amministratore di consentire in sshHostAllowlist l'hostname che viene stampato, qui devbox-container. Consentendo quel nome, l'amministratore consente qualunque cosa a cui si connette il ProxyCommand della tua voce.
4. Verifica la voce, poi connettiti
Esegui ssh devbox-container in un terminale sul tuo computer. Correggi ciò che segnala ed eseguilo di nuovo finché non apre una shell nel container senza chiederti nulla:
- Se
sshchiede una password, una passphrase o un codice: passa a un accesso che funzioni senza prompt, come una chiave conservata dal tuo agente SSH - Se
sshsegnalaCannot execute command-line and remote command.oBad packet length: rimuoviRemoteCommandeRequestTTYdalla tua voce perbuild.example.com. Dopodiché,ssh build.example.comin un terminale sul tuo computer apre una shell su quella macchina, non nel container. - Se
sshsegnalaConnection closed by UNKNOWN port 65535: eseguissh build.example.com docker exec devbox /usr/sbin/sshd -tnello stesso terminale.- Se stampa
Missing privilege separation directory: /run/sshd, crea quella cartella nel container. - Se stampa
no hostkeys availablee il container ha delle chiavi host, aggiungi-u rootdopoexecin questo comando e nella voce.
- Se stampa
Poi inserisci devbox-container nel campo SSH host.
Usare variabili della tua shell in un ProxyCommand
Su macOS e Linux, per usare una tua variabile d'ambiente in un comando ProxyCommand o Match exec, esportala in un file di avvio della shell, come ~/.zshrc. Poi chiudi e riapri Desktop. All'avvio, Desktop legge ciò che esporta la tua shell di login e mantiene quei valori finché non lo chiudi.
Questo richiede Claude Desktop v2.37337.0 o versioni successive e un comando env che accetti -0, cosa che puoi verificare eseguendo env -0 in un terminale sul tuo computer.
[!NOTE]
Se la tua shell imposta credenziali AWS temporanee, fornisci un profilo alla AWS CLI invece di esportare variabili
AWS_*.
Usare credenziali AWS in un ProxyCommand su macOS e Linux
Se imposti credenziali AWS temporanee in un file di avvio della shell, un ProxyCommand che esegue la AWS CLI può connettersi in un terminale e non riuscire in Desktop. Quando la tua shell esporta AWS_SESSION_TOKEN, AWS_SECURITY_TOKEN o AWS_CREDENTIAL_EXPIRATION, ssh e il tuo ProxyCommand in Desktop non ricevono le credenziali AWS della shell, AWS_REGION o AWS_PROFILE.
Se la AWS CLI non ha altre fonti per una regione o per le credenziali, non riesce con You must specify a region o Unable to locate credentials. Per connetterti da Desktop, fornisci alla AWS CLI un profilo che legga da ~/.aws/config:
1. Aggiungi un profilo con una regione e una fonte di credenziali
Questo esempio aggiunge un profilo chiamato corp che ottiene le credenziali da un programma di supporto:
[profile corp]
region = us-east-1
credential_process = /full/path/to/your-credential-helper
region: indica la regione AWS delle macchine a cui ti connetticredential_process: indica il percorso completo di un programma che stampa le credenziali nel formato JSON documentato da AWS. Scegli un programma che non richieda input da parte tua, perché la AWS CLI lo esegue a ogni connessione, incluse le riconnessioni mentre sei assente.- IAM Identity Center: aggiungi le impostazioni di IAM Identity Center del profilo al posto di
credential_process. Eseguiaws sso login --profile corpin un terminale prima di connetterti, e di nuovo quando quell'accesso scade.
2. Indica il profilo nel ProxyCommand
Questo esempio aggiunge --profile al comando documentato da AWS per Session Manager:
Host i-*
ProxyCommand sh -c "aws ssm start-session --profile corp --target %h --document-name AWS-StartSSHSession --parameters 'portNumber=%p'"
3. Connettiti di nuovo
Esegui ssh con l'host in un terminale per confermare che la voce si connette ancora lì, poi connettiti da Desktop.
Aumentare il timeout della connessione SSH
Se la sessione va in timeout mentre si connette tramite un jump host o un ProxyCommand, aumenta ConnectTimeout nella voce della macchina remota nel tuo ~/.ssh/config. Usa più di 90 secondi. Aggiungi il tempo durante il quale un jump host o un ProxyCommand ti attende, ad esempio a un prompt di accesso o per una notifica push sul telefono:
Host devbox
HostName devbox.internal.example.com
User alice
ProxyJump bastion.example.com
ConnectTimeout 120
ssh usa il primo valore che trova per un host, quindi mantieni la voce sopra qualsiasi voce Host * che imposti ConnectTimeout. Per confermare, esegui ssh -G devbox in un terminale sul tuo computer. Il suo output include connecttimeout 120. Dopo aver modificato il valore, chiudi e riapri Desktop.
Se la tua configurazione SSH non imposta alcun ConnectTimeout per l'host, Desktop concede a ssh 30 secondi per connettersi. Tramite un jump host o un ProxyCommand, quel tempo include il tempo necessario al percorso per connettersi.
ConnectTimeout |
Connessione | Tempo a tua disposizione |
|---|---|---|
| Non impostato | Avvii una sessione tramite un jump host o un ProxyCommand, con Claude Desktop v4.4212.0 o versioni successive su macOS o Linux |
30 secondi, poi un secondo tentativo con 90 secondi. Se Desktop ti ha mostrato un prompt durante il primo tentativo, non hai un secondo tentativo. Il tempo trascorso a un prompt di accesso che Desktop mostra per un host ProxyJump non viene conteggiato. Le altre attese lungo il percorso sì. |
| Non impostato | Desktop su Windows o una versione precedente, una macchina remota che imposta MaxSessions 1, o una riconnessione che Desktop avvia da sé |
30 secondi. Ogni attesa lungo il percorso viene conteggiata. |
| Impostato | Ogni connessione e riconnessione | Il valore che hai impostato. Ogni attesa lungo il percorso viene conteggiata. |
Se la macchina remota stessa attende un'approvazione sul tuo telefono, approva entro 45 secondi, qualunque sia il ConnectTimeout impostato. Non puoi aumentare questo limite, perché Desktop imposta da sé ServerAliveInterval e ServerAliveCountMax, e ssh chiude quindi un accesso in cui la macchina remota non invia nulla per così tanto tempo.
Correggere un blocco Match host che solo Desktop applica
Se Desktop usa un'impostazione che ssh devbox in un terminale non usa, cerca un blocco Match host sopra la riga HostName della voce. In un terminale, ssh legge un blocco posto lì prima della riga HostName, quindi confronta il blocco con devbox. Desktop passa a ssh il valore di HostName sulla riga di comando, quindi ssh confronta il blocco con quel valore.
Per verificarlo, esegui ssh -G in un terminale sul tuo computer con i valori HostName e User della voce sulla riga di comando, come fa Desktop:
ssh -G -o HostName=devbox.internal.example.com -l alice devbox
Confronta l'output con quello di ssh -G devbox. Se le impostazioni del blocco, come proxycommand, compaiono solo nel primo output, il blocco ha effetto solo in Desktop. Per fare in modo che anche Desktop lo ignori, aggiungi !originalhost devbox alla sua riga Match:
Match host *.internal.example.com !originalhost devbox
Per confermare, esegui di nuovo il primo comando. Le impostazioni del blocco non compaiono più nel suo output.
Impostazioni di inoltro che Desktop lascia disattivate
Sulla sua connessione alla macchina remota, Desktop lascia disattivati ForwardAgent, ForwardX11, LocalForward, RemoteForward, DynamicForward e Tunnel, anche dove la tua configurazione SSH li attiva. Nel terminale o in un comando !, aspettati che le tue impostazioni di inoltro si applichino solo a volte, perché Desktop può avviare lì un ssh separato che le segue.
- Per raggiungere una porta sulla macchina remota: inoltrala tu stesso
- Per usare le tue chiavi dalla macchina remota: configura una credenziale sulla macchina remota stessa, ad esempio per
git push
Per evitare che Desktop inoltri il tuo agente SSH o una porta, esegui ssh -G devbox in un terminale sul tuo computer. Poi eseguilo di nuovo come può eseguirlo Desktop, con i valori hostname e user che stampa, come in ssh -G -o HostName=devbox.internal.example.com -l alice devbox. Il secondo output può mostrare impostazioni di un blocco Match che il primo ignora.
Cerca in entrambi gli output una riga forwardagent con un valore diverso da no e righe che iniziano con localforward, remoteforward o dynamicforward. Se ne trovi una, rimuovi quell'impostazione dalla tua configurazione SSH. Fai lo stesso per un host che il tuo ProxyCommand raggiunge con ssh.
Raggiungere una porta sulla macchina remota
Per aprire un server in esecuzione sulla macchina remota, come un dev server sulla porta 3000, inoltra tu stesso la porta. In un terminale sul tuo computer, esegui ssh con -L e l'host a cui ti connetti, ad esempio devbox:
ssh -N -L 3000:localhost:3000 devbox
Se hai compilato SSH port o SSH key (optional) sulla connessione, aggiungi -p o -i con lo stesso valore. Lascia in esecuzione quel comando e apri http://localhost:3000 in un browser sul tuo computer per raggiungere la porta 3000 della macchina remota. Se ssh stampa open failed: administratively prohibited, chiedi all'amministratore della macchina di consentire l'inoltro TCP, controllato da AllowTcpForwarding nel sshd_config del server SSH.
Macchine remote Windows
Una macchina remota Windows richiede Claude Desktop v2.31226.0 o versioni successive.
Usa OpenSSH Server di Microsoft. La macchina può essere x64 o ARM64. La shell avviata dal server SSH può essere cmd.exe, Windows PowerShell 5.1 o Git Bash.
Le macchine remote Windows sono meno testate di quelle Linux. Prova il tuo lavoro su di esse prima di farvi affidamento.
Aspettati, tra gli altri, questi limiti su una macchina remota Windows:
- Terminale: il terminale non si apre in una sessione la cui cartella è un percorso Windows, come
C:/projects/app - Sandbox: Claude Code viene eseguito lì su Windows nativo, dove esegue i comandi senza sandbox. Consulta dove viene eseguita la sandbox.
- Plugin: Desktop non copia un plugin che contiene un nome di file o cartella che Windows non può memorizzare, come un nome con
:. La sessione elenca i plugin che Desktop ha escluso. - Server MCP: su alcune macchine remote Windows, le chiamate di Claude ai server MCP da
claude_desktop_config.jsonpassano attraverso Desktop, quindi Claude non può chiamare i loro strumenti mentre Desktop è disconnesso. Prima di Claude Desktop v2.37337.0, questo vale su ogni macchina remota Windows. - Worktree: i worktree vanno in
<project-root>/.claude/worktrees/. Se scegli un'altra cartella, Desktop la ignora. - Messaggi precedenti: se la shell del server SSH è
cmd.exeo Windows PowerShell, potresti dover connetterti prima di vedere i messaggi precedenti di una sessione - Fork: se la shell del server SSH è
cmd.exeo Windows PowerShell, puoi creare un fork di una sessione solo dal suo primo messaggio - Esecuzione durante la disconnessione: un'attività continua a essere eseguita mentre Desktop è disconnesso solo se il server SSH consente a un programma di sopravvivere alla connessione che lo ha avviato. Per scoprirlo, testa la macchina remota.
- Processi residui: al termine di una sessione, controlla sulla macchina se ci sono programmi avviati da Claude Code, perché possono continuare a essere eseguiti. Il programma di supporto in background installato da Desktop non si arresta da solo lì.
Mantenere un'attività in esecuzione mentre Desktop è disconnesso
Se il tuo computer va in sospensione, perdi la connessione di rete o chiudi Desktop, l'attività continua finché non termina, non ha bisogno di te o non raggiunge uno dei limiti. Chiudere il coperchio conta come sospensione. Un riavvio di Desktop o del computer, anche per un aggiornamento, conta come chiusura.
Claude Code viene eseguito come processo sulla macchina remota, sotto un programma di supporto in background che Desktop installa lì, quindi non ha bisogno della tua connessione SSH per continuare a funzionare. Il comportamento descritto in questa sezione richiede Claude Desktop v2.31226.0 o versioni successive.
[!WARNING]
Se accedi a Desktop con un account Claude, non fare affidamento sul fatto che un'attività venga eseguita durante la notte. Desktop rinnova l'accesso per l'attività solo mentre Desktop è in esecuzione, connesso e con l'accesso effettuato, quindi l'accesso dell'attività può scadere dopo la disconnessione, e l'attività allora si interrompe. Il tempo rimanente al momento della disconnessione varia e può essere di pochi minuti.
Il lavoro svolto fino a quel momento rimane sulla macchina remota e puoi continuare con un messaggio quando torni.
Se l'attività deve essere eseguita per tutta la notte:
- Mantieni il computer attivo e online, con il coperchio aperto e Desktop in esecuzione e con l'accesso effettuato
- Usa un accesso che funzioni senza prompt, come una chiave conservata dal tuo agente SSH, per la macchina remota e per ogni jump host lungo il percorso. Desktop può quindi riconnettersi da solo dopo un'interruzione.
Per un'attività che deve essere eseguita mentre il computer è in sospensione o spento, avvia invece una sessione cloud.
- Dopo una sospensione o una perdita di rete: recuperi l'attività in esecuzione se il processo è ancora in esecuzione e Desktop può accedere senza prompt. Se non può, invia un messaggio.
- Dopo una chiusura: l'attività continua a essere eseguita, ma la perdi quando la sessione si riapre, a meno che Desktop non possa ricollegarsi al suo processo. Verifica quando Desktop può ricollegarsi prima di chiudere. Se hai perso l'attività, invia un messaggio per continuare.
Quando torni e l'attività non è terminata, controlla se c'è la pagina di accesso di Desktop, un avviso che Desktop non riesce a riconnettersi, un errore di autenticazione o una richiesta in attesa:
- Pagina di accesso: effettua l'accesso. Se l'attività si è interrotta, invia un messaggio per continuare. Con un piano Enterprise, la tua organizzazione può disconnetterti dopo un numero prestabilito di giorni dall'accesso, indipendentemente da quanto sei attivo. Con un account Claude, Desktop non rinnova l'accesso dell'attività mentre sei disconnesso dall'account, quindi l'attività può interrompersi.
- Desktop non riesce a riconnettersi: la sessione indica il motivo, e può farlo anche una notifica. Desktop potrebbe aver bisogno che tu effettui l'accesso.
- Errore di autenticazione: il token di accesso o la credenziale potrebbe essere scaduto. Con un account Claude, invia un messaggio per continuare. Con un provider di terze parti, consulta SSH remote sessions in Claude Desktop on 3P.
- Richiesta in attesa: rispondi
- Nessuno di questi casi: invia un messaggio per continuare
Preparare un'attività lunga
- Aggiorna prima: aggiorna Desktop prima di avviare un'attività lunga. Su macOS e Windows, Desktop può riavviarsi da solo per installare un aggiornamento che ha scaricato. Quel riavvio attende mentre Claude lavora a un'attività SSH. Per impostazione predefinita, dopo che l'aggiornamento ha atteso 72 ore, il riavvio può avvenire durante l'attività se Desktop può ricollegarsi all'attività in seguito.
- Verifica prima di chiudere: non sempre recuperi l'attività in esecuzione dopo una chiusura o un riavvio, ad esempio dopo alcuni aggiornamenti di Desktop. Per i casi specifici, consulta Riaprire una sessione dopo aver chiuso Desktop.
- Su una versione precedente, lascia Desktop aperto: su Windows con Claude Desktop precedente alla v3.1623.0, non recuperi l'attività in esecuzione dopo che Desktop si chiude o si riavvia. Lo stesso vale con un provider di terze parti su macOS o Linux prima della v2.42304.0. In entrambi i casi, lascia Desktop aperto durante l'attività. Per trovare la tua versione, consulta Verificare la versione.
- Riduci le richieste: scegli una modalità di permesso, regole o hook che facciano attendere meno spesso l'attività
- Controlla il jump host: se il tuo jump host chiede un accesso, ad esempio una notifica push sul telefono, passa a un accesso che funzioni senza prompt. Altrimenti Desktop può inviare un'altra notifica push ogni volta che tenta di riconnettersi.
- Testa la macchina remota: avvia un'attività breve, chiudi Desktop mentre l'attività è ancora in esecuzione e riapri la sessione ben dopo il momento in cui l'attività dovrebbe essere terminata. Se l'attività non è terminata e la sessione non mostra alcun errore di autenticazione, controlla sulla macchina remota cosa può terminare un'attività.
- Tieni i comandi fuori dal terminale di Desktop: se la macchina remota disconnette i terminali inattivi, esegui i tuoi comandi da un accesso SSH esterno a Desktop
Limiti mentre Desktop è disconnesso
Un'attività che lasci in esecuzione può terminare quando il suo accesso scade, quando la macchina remota la termina, oppure quando il programma di supporto si arresta o viene sostituito:
- Token di accesso o credenziale: con un account Claude, l'attività si interrompe con un errore di autenticazione quando il token scade. Con un provider di terze parti, lo stesso vale per una credenziale che scade, come una ottenuta tramite single sign-on o un credential helper. Consulta SSH remote sessions in Claude Desktop on 3P. Con un account Claude, mantieni Desktop in esecuzione e connesso in modo che possa rinnovare l'accesso.
- La macchina remota: se la macchina remota si riavvia, o termina i tuoi processi quando la connessione SSH si chiude, l'attività in esecuzione termina. Nulla la riavvia mentre Desktop è disconnesso. Le macchine Linux in cui
KillUserProcessesdi systemd-logind èyese si applica al tuo utente terminano i tuoi processi in questo modo. Per mantenere un'attività in esecuzione lì, chiedi all'amministratore di escludere il tuo utente, ad esempio conKillExcludeUsers. - Terminali inattivi: alcune macchine remote Linux disconnettono un terminale in cui nessuno digita per un tempo stabilito (
StopIdleSessionSecdi systemd-logind). Con Desktop su macOS o Linux, il terminale di una sessione e i comandi!condividono per impostazione predefinita la connessione SSH di Desktop. Quella disconnessione termina quindi la connessione mentre Desktop è connesso, e l'attività in esecuzione può terminare con essa. Chiudere il riquadro del terminale non lo impedisce, quindi tieni i comandi fuori da quel terminale. - Aggiornamenti di Desktop: se un aggiornamento include un nuovo programma di supporto, Desktop sostituisce il programma di supporto sulla macchina remota a una connessione successiva, il che può terminare un'attività ancora in esecuzione
- Assenze prolungate: su una macchina remota Linux o macOS, se Desktop non si connette per 30 giorni, il programma di supporto si arresta e termina ogni processo di Claude Code eseguito sotto di esso. Connettiti prima di allora.
Le modifiche ai file e alcuni strumenti possono non riuscire mentre Desktop è disconnesso. Se l'attività ne ha bisogno, mantieni Desktop connesso:
- Worktree: in una sessione che usa un worktree, Desktop controlla ogni modifica ai file prima che Claude la esegua. Mentre Desktop è disconnesso, ogni modifica attende circa 30 secondi e poi non riesce. I comandi della shell vengono comunque eseguiti. Su una macchina remota Linux o macOS, le modifiche possono continuare a funzionare. Se non sei sicuro, avvia la sessione senza un worktree.
- Restrizioni sulle cartelle: se la tua organizzazione limita le cartelle che le sessioni possono usare, Desktop controlla ogni lettura, ricerca e modifica di file, con o senza worktree. Mentre Desktop è disconnesso, ciascuna attende fino a 10 minuti e poi non riesce.
- Connettori: i connettori e gli altri strumenti forniti da Desktop passano attraverso Desktop, quindi mentre è disconnesso ogni chiamata non riesce dopo circa 30 secondi
- Workflow: Desktop controlla ogni nuovo workflow prima che inizi, quindi mentre Desktop è disconnesso un nuovo workflow attende fino a 10 minuti e poi non riesce
- Server MCP: i server MCP che Claude Code avvia sulla macchina remota non passano attraverso Desktop, quindi Claude può comunque chiamare i loro strumenti. I server da
claude_desktop_config.jsonrientrano tra questi solo se Desktop non usa il suo client SSH integrato. Altrimenti, e su alcune macchine remote Windows, Claude non può chiamare i loro strumenti mentre Desktop è disconnesso.
[accordion] Quando le modifiche in un worktree continuano a funzionare
Su una macchina remota Linux o macOS, le modifiche all'interno del worktree possono continuare a funzionare mentre Desktop è disconnesso, perché il controllo su ogni modifica può essere eseguito senza Desktop. Prima di Claude Desktop v2.37337.0, questo funziona solo su una macchina remota Linux.
Le modifiche non riescono comunque in alcuni casi, tra cui questi:
- Client SSH integrato: Desktop lo usa, ad esempio in un'installazione dal Microsoft Store, o su un computer Windows senza OpenSSH di Microsoft 9.4 o versioni successive
- Posizione del repository: il repository è la tua directory home, una cartella al di sopra di essa, oppure
~/.claude- Percorsi macOS: su una macchina remota macOS, il repository si trova in
/Volumes, oppure il nome di una cartella nel percorso del repository o del worktree contiene un~o un carattere non ASCII- Restrizioni sulle cartelle: la tua organizzazione limita le cartelle che le sessioni possono usare
- Launcher aziendale: prima di Claude Desktop v2.37337.0, accedi con un account Claude e la tua organizzazione avvia Claude Code sulla macchina remota tramite un launcher aziendale
Una sessione senza worktree non ha questo controllo, a meno che la tua organizzazione non limiti le cartelle che le sessioni possono usare.
Gestire le richieste che arrivano mentre sei assente
Se Claude ha bisogno della tua approvazione o ti fa una domanda mentre Desktop è disconnesso, Claude attende sulla macchina remota. L'attesa non ha un limite di tempo proprio. Quando Desktop si ricollega al processo, ti mostra la richiesta. Se invece Desktop avvia un nuovo processo, perdi la richiesta.
Se una richiesta che ti attendeva non c'è più quando torni, una causa è che Desktop si è riavviato da solo, ad esempio per installare un aggiornamento. Conservi una richiesta durante un riavvio solo se Desktop può ricollegarsi al processo, quindi verifica quando Desktop può ricollegarsi prima di lasciare un'attività in esecuzione.
Se perdi una richiesta, invia un messaggio per continuare.
Per ridurre la frequenza con cui un'attività si ferma ad aspettarti, e per ricevere notizie mentre sei assente, configura uno qualsiasi di questi elementi prima di allontanarti:
- Modalità auto: scegli la modalità auto se è disponibile per te. Dopo blocchi ripetuti, ti viene chiesto di nuovo.
- Regole di autorizzazione: nel tuo file di impostazioni utente sulla macchina remota,
~/.claude/settings.json, aggiungi regole allow per i comandi di cui l'attività ha bisogno. Se la tua organizzazione accetta regole di permesso solo dalle impostazioni gestite, chiedi all'amministratore di aggiungerle alle impostazioni gestite che raggiungono la macchina remota. Per le regole allow nel.claude/settings.jsondi un progetto, consulta Regole allow del progetto e attendibilità del workspace. - Un hook che risponde: configura un hook
PermissionRequestin~/.claude/settings.jsonsulla macchina remota per consentire o negare le richieste al posto tuo - Un hook che ti avvisa: configura un hook
Notificationcon il matcherpermission_promptnello stesso file per inviarti un messaggio quando una richiesta è in attesa - Un hook che ti dice quando Claude ha finito: configura un hook
Stopnello stesso file per inviarti un messaggio quando Claude ha finito di rispondere. Non viene eseguito quando un errore dell'API termina il turno. Per quel caso, configura un hookStopFailure.
Se la tua organizzazione esegue solo hook gestiti, chiedi all'amministratore di aggiungere l'hook alle impostazioni gestite che raggiungono la macchina remota.
Claude Code non approva automaticamente alcune azioni in nessuna modalità di permesso, inclusa Bypass permissions. A seconda della modalità di permesso, Claude Code nega tale azione o te lo chiede, e l'attività attende quindi la tua risposta.
Riconnettersi dopo una sospensione o una perdita di rete
Se Desktop non si è riconnesso quando torni, invia un messaggio nella sessione. Desktop si riconnette da solo solo dove può accedere senza prompt, ad esempio con una chiave conservata dal tuo agente SSH.
- Password memorizzata: anche una password che hai lasciato memorizzare a Desktop funziona senza prompt, ma per un'assenza prolungata preferisci una chiave conservata dal tuo agente SSH. Se gli accessi con quella password si interrompono o si bloccano, Desktop può smettere di riconnettersi e attenderti.
- Qualsiasi altro prompt: se la macchina remota chiede qualcos'altro, come un codice monouso, puoi ricevere una notifica sul tuo computer. Fai clic sulla notifica, o invia un messaggio nella sessione, e Desktop mostra il prompt.
[accordion] Se un jump host chiede un accesso, l'interruzione è lunga, un messaggio non viene inviato, manca l'output o il processo non c'è più
- Jump host, le notifiche push si interrompono mentre sei assente: può succedere con Desktop su macOS o Linux quando nessuno risponde alla richiesta di accesso di un jump host, ad esempio una notifica push sul telefono. Desktop smette quindi di riconnettersi mentre nessuno è al tuo computer. Quando sblocchi o usi il computer, puoi ricevere un'altra notifica push, perché Desktop può riprovare. Dopo tre tentativi senza risposta, attende finché non riprovi o invii un messaggio.
- Jump host, le notifiche push continuano ad arrivare: dove Desktop non può capire che nessuno risponde, come con Desktop su Windows, continua a tentare finché ha un processo a cui ricollegarsi, che quel processo sia ancora in esecuzione o meno. Puoi ricevere un'altra notifica push a ogni tentativo. Per interrompere i tentativi, chiudi Desktop, il che può farti perdere l'attività in esecuzione.
- Interruzione lunga: Desktop rallenta a circa un tentativo ogni cinque minuti. Per riconnetterti prima, riprova nella sessione o invia un messaggio. Desktop tenta di consegnare il messaggio una volta connesso.
- Messaggio non inviato: la riga
Your organization's settings haven't loaded, so your message to <host> wasn't sent. Retry to send it.sotto il tuo messaggio significa che Desktop si è riconnesso e ha trattenuto il messaggio, perché le impostazioni della tua organizzazione non erano ancora state caricate. Seleziona Retry per inviare subito il messaggio. Se non fai nulla, Desktop riprova una volta caricate le impostazioni.- Output mancante: mentre Desktop è disconnesso, il programma di supporto conserva l'output più recente di Claude Code di ogni sessione in un buffer da 16 MiB ed elimina l'output più vecchio. Dopo che Desktop si è riconnesso, la sessione può mostrare
Loading recent output from <host>…. Se Desktop non riesce a caricare tutto l'output, vedi la rigaSome output produced while you were disconnected may be missing here.La riga non significa che l'attività si sia interrotta.- Processo non più presente: il processo è terminato mentre Desktop era disconnesso, come quando la macchina remota si riavvia. Desktop può quindi avviarne uno nuovo dalla cronologia salvata della conversazione e dire a Claude di continuare l'attività. Se l'attività resta ferma, invia un messaggio. Con un provider di terze parti, aggiorna a Claude Desktop v2.42304.0 o versioni successive, perché le versioni precedenti non continuano mai l'attività da sole.
Riaprire una sessione dopo aver chiuso Desktop
Dopo che chiudi Desktop, l'attività continua a essere eseguita sulla macchina remota, ma si interrompe quando la sessione si riapre, a meno che Desktop non possa ricollegarsi al suo processo. Mentre Desktop è chiuso, l'attività viene eseguita finché non termina, non ha bisogno di te o non raggiunge uno dei limiti.
- Desktop su Windows, attività avviata in una versione precedente alla v3.1623.0: non recuperi l'attività, anche se nel frattempo Desktop è stato aggiornato. Avvia di nuovo Desktop solo quando prevedi che l'attività sia terminata, perché la sessione può aprirsi all'avvio di Desktop, e l'attività si interrompe quando la sessione si apre. Se non sai in quale versione hai avviato l'attività, attendi anche in questo caso finché non prevedi che sia terminata.
- Provider di terze parti su macOS o Linux, attività avviata in una versione precedente alla v2.42304.0: non recuperi l'attività. Avvia di nuovo Desktop solo quando prevedi che l'attività sia terminata.
- Qualsiasi altra attività: avvia Desktop e apri la sessione, e l'attività prosegue se Desktop si ricollega. Non sempre può ricollegarsi, ad esempio dopo alcuni aggiornamenti di Desktop, quindi aggiorna prima di un'attività lunga.
Quando l'attività si interrompe, la sessione può mostrare Restarting Claude Code on <host>… mentre Desktop avvia un nuovo processo. Perdi anche qualsiasi approvazione o domanda che ti attendeva. Se Claude non continua da solo, invia un messaggio, e Claude continua dalla cronologia salvata della conversazione.
Per i deploy di terze parti, consulta SSH remote sessions in Claude Desktop on 3P.
[!WARNING]
Mentre il processo di Claude Code di una conversazione è ancora in esecuzione, non eseguire
claude --resumeper quella conversazione sulla macchina remota. Claude Code non te lo impedisce, ed entrambi i processi scrivono quindi nella stessa conversazione. Se non sei sicuro, aggiungi--fork-session, che continua in una copia della conversazione, ma entrambi i processi lavorano comunque sugli stessi file.
Scegliere dove vanno i worktree delle sessioni SSH
A meno che la tua organizzazione non limiti le cartelle che le sessioni possono usare, le nuove sessioni SSH creano i loro worktree nella prima di queste posizioni che risulta impostata:
- Worktree folder sulla connessione SSH
worktree.locationin~/.claude/settings.jsonsulla macchina remota<project-root>/.claude/worktrees/, il valore predefinito
Ogni progetto ottiene una propria sottocartella nella cartella che imposti, quindi con ~/worktrees il percorso di un worktree è ~/worktrees/<project>-<id>/<worktree-name>. Se la cartella che imposti si trova all'interno del progetto, Desktop la ignora per quel progetto e usa quella predefinita. Su una macchina remota Windows, Desktop usa sempre quella predefinita.
Impostare la cartella dei worktree su una connessione esistente
Imposta Worktree folder nelle impostazioni di una connessione che hai aggiunto in precedenza o di una gestita dalla tua organizzazione. Il campo richiede Claude Desktop v1.44121.0 o successivo. Se la tua organizzazione limita le cartelle che le sessioni possono usare, Desktop nasconde il campo e mantiene i worktree all'interno del progetto.
1. Trova la connessione
Apri il selettore dell'ambiente e trova la connessione sotto SSH.
2. Apri le impostazioni della connessione
Passa il puntatore sulla connessione e fai clic sull'icona a forma di ingranaggio. Se la finestra di dialogo che si apre mostra Edit connection… accanto a Host, seleziona Edit connection….
3. Imposta la cartella
In Worktree folder, inserisci una cartella sulla macchina remota, come ~/worktrees, e seleziona Save changes.
File e processi sulla macchina remota
Desktop installa un programma di supporto e Claude Code in ~/.claude/remote/ nella directory home di ogni utente che si connette a una macchina remota Linux o macOS. Il programma di supporto non è in ascolto su alcuna porta di rete, ma Claude Code e i programmi che avvia, come i server MCP e i server di sviluppo, possono esserlo.
| Cartella | Contenuto |
|---|---|
~/.claude/remote/srv/ |
Il programma di supporto, in una cartella per versione |
~/.claude/remote/ccd-cli/ |
Claude Code, in un file per versione |
~/.claude/remote/run/ |
I file di runtime del programma di supporto, come il suo socket e il suo log, in una cartella per ogni computer che si connette |
~/.claude/remote/plugins/ |
I plugin che Desktop copia dal computer dell'utente |
~/.claude/uploads/ |
I file che l'utente allega ai messaggi, in una cartella per sessione |
Per elencare i processi di un utente, esegui pgrep -fl "$HOME/.claude/remote/" sulla macchina remota come quell'utente, oppure con la directory home dell'utente al posto di $HOME:
- Programma di supporto: uno o più processi
serverper ogni computer che si connette - Claude Code: i processi che il programma di supporto avvia per le sessioni dell'utente, ciascuno da un file con il nome della sua versione, come
2.1.295-…
Desktop raggiunge il programma di supporto attraverso la connessione SSH dell'utente, tramite il socket Unix rpc.sock nella cartella del programma di supporto in ~/.claude/remote/run/. A parte root, gli altri utenti della macchina non possono connettersi a quel socket, perché ha modalità 600 e la sua cartella ha modalità 700.
Per i casi in cui il programma di supporto si arresta da solo, consulta Limiti mentre Desktop è disconnesso.
Per rimuovere il programma di supporto e Claude Code per un utente:
1. Chiudi Desktop
Chiudi Desktop su ogni computer da cui l'utente si connette. Desktop installa di nuovo entrambi i programmi alla connessione successiva e può riconnettersi da solo.
2. Termina i processi
Dopo aver effettuato l'accesso come quell'utente sulla macchina remota, esegui kill con l'ID di ogni processo di Claude Code che pgrep elenca. Quando non compaiono più nell'elenco, esegui kill con l'ID di ogni processo server. Se termini prima un processo server, un comando che Claude Code sta eseguendo può continuare a essere eseguito.
Poi elenca i processi rimanenti dell'utente, ad esempio con ps -u "$(id -un)" -f, e termina quelli che riconosci come avviati da Claude Code. I programmi che ha lasciato in background possono continuare a essere eseguiti dopo che è terminato, senza comparire nell'elenco di pgrep.
3. Elimina la cartella
Elimina ~/.claude/remote/. Per rimuovere i file di Claude Code stesso in ~/.claude/ e ~/.claude.json, consulta Rimuovere i file di configurazione.
Terminare il processo di una sessione
Per terminare il processo di Claude Code di una sessione, archivia la sessione in Desktop mentre Desktop è connesso alla macchina remota. Il processo continua a essere eseguito dopo che la sua attività è completata e dopo che chiudi Desktop.
Prima di archiviare una sessione il cui worktree contiene modifiche non sottoposte a commit, consulta Mantenere le modifiche non sottoposte a commit quando una sessione viene archiviata.
Vedere con quale utente vengono eseguiti i processi
Il programma di supporto e Claude Code vengono eseguiti come l'utente con cui Desktop accede tramite SSH. Per installarli e avviarli non serve sudo. Per verificare l'utente, esegui ps -o user= -p sulla macchina remota con un ID di processo che pgrep elenca.
Anche i programmi che Claude Code avvia, come i comandi della shell e i server MCP, vengono avviati come quell'utente. Esamina i diritti di quell'utente sulla macchina remota, comprese le sue regole sudo, come faresti per una persona che esegue comandi lì.
Vedere chi si è connesso alla macchina remota
Per scoprire chi si è connesso a una macchina remota, leggi il log del server SSH su quella macchina, dove un accesso da Desktop appare come uno da un terminale. Con Desktop su macOS o Linux, aspettati una voce ogni volta che Desktop si connette, non una per ogni sessione.
Se il server imposta MaxSessions 1, aspettati almeno due voci ogni volta che Desktop si connette o si riconnette. Aspettati almeno una voce in più per ogni scheda del terminale e per ogni sessione di Desktop in cui esegui comandi che iniziano con !.
Non troverai le connessioni SSH di Desktop nelle metriche ed eventi di Claude Code. Per scoprire da questi su quale macchina remota è stata eseguita una sessione SSH, consulta Attribuire la telemetria alle sessioni SSH di Desktop. Per il registro delle connessioni tenuto da Desktop stesso, consulta Ottenere i log di Desktop per un problema SSH.
Connessioni che si chiudono prima dell'accesso
Se il log del server SSH mostra connessioni che si chiudono prima di qualsiasi accesso, possono essere test della porta SSH effettuati da Desktop. Desktop verifica se una macchina risponde, ad esempio dopo che una connessione a essa non è riuscita. Apre una connessione alla porta e la chiude subito, senza inviare nulla. Aspettati un test o diversi di seguito, ad esempio otto in circa due minuti.
Se nulla blocca o rifiuta gli indirizzi per connessioni di questo tipo, non devi fare nulla riguardo ai test di Desktop. Se un indirizzo da cui Desktop si connette viene rifiutato o bloccato, verifica se il server SSH stesso rifiuta l'indirizzo e se fail2ban conteggia i test di Desktop.
Riconoscere un test nel log del server SSH
Confronta le righe del tuo log con quelle che un server OpenSSH su Linux scrive per un test con il LogLevel predefinito, nella riga della tabella relativa alla versione del tuo server. Puoi vedere invece le righe dell'ultima colonna se il messaggio di benvenuto del server arriva prima che Desktop chiuda la connessione:
| Versione di OpenSSH | Righe per un test | Righe se il messaggio di benvenuto arriva prima |
|---|---|---|
| Da 6.6 a 7.9 | Una riga con Did not receive identification string from 203.0.113.7 |
La stessa riga |
| Da 8.0 a 8.2 | error: kex_exchange_identification: Connection closed by remote host |
error: kex_exchange_identification: read: Connection reset by peer |
| Da 8.3 a 9.4 | error: kex_exchange_identification: Connection closed by remote host, poi Connection closed by 203.0.113.7 port 51234 |
error: kex_exchange_identification: read: Connection reset by peer, poi Connection reset by 203.0.113.7 port 51234 |
| Da 9.5 a 10.2 | Connection closed by 203.0.113.7 port 51234 |
error: kex_exchange_identification: read: Connection reset by peer, poi Connection reset by 203.0.113.7 port 51234 |
| Da 10.3 a 10.5 | Connection closed by 203.0.113.7 port 51234 [preauth] |
error: kex_exchange_identification: read: Connection reset by peer [preauth], poi Connection reset by 203.0.113.7 port 51234 [preauth] |
Altri programmi che aprono la porta e la chiudono possono lasciare le stesse righe. Dove una riga contiene un indirizzo, verifica che sia uno da cui si connette un computer con Desktop.
Le righe delle versioni da 8.0 a 8.2 non contengono alcun indirizzo. Per ottenerne uno, imposta LogLevel VERBOSE in sshd_config ed esegui sshd -T | grep -i loglevel come root. Se stampa loglevel VERBOSE, ricarica il server SSH. Poi cerca una riga con Connection from 203.0.113.7 port 51234 prima della riga del test.
Verificare se il server SSH stesso rifiuta l'indirizzo
Se le connessioni vengono rifiutate da un indirizzo condiviso da molti computer con Desktop, cerca nel log del server SSH una riga che termina come questa:
drop connection #0 from [203.0.113.7]:51234 on [192.0.2.10]:22 penalty: connections without attempting authentication
Con il LogLevel predefinito, OpenSSH 9.8 e versioni successive possono scrivere una riga di questo tipo quando rifiutano un indirizzo per connessioni che si sono chiuse senza tentare l'accesso, come fanno i test di Desktop. Con le impostazioni predefinite, non vedi una riga di questo tipo dopo pochi test soltanto.
Per evitare il rifiuto, imposta PerSourcePenaltyExemptList in sshd_config sugli indirizzi da cui le persone si connettono, ad esempio PerSourcePenaltyExemptList 203.0.113.7. Il server quindi non applica nessuna delle sue penalità a quegli indirizzi, comprese quelle per gli accessi non riusciti. Per verificare il file, esegui sshd -T | grep -i persourcepenalt come root. Se stampa il tuo elenco, ricarica il server SSH.
Verificare se fail2ban conteggia i test di Desktop
Se fail2ban 0.10.5 o successivo ha bloccato un indirizzo da cui Desktop si connette, trova la modalità della tua jail in jail.conf, jail.local o in jail.d/:
- Una riga
filterche indica una modalità tra parentesi quadre, comefilter = sshd[mode=aggressive]: usa quella modalità. - Solo la riga
filterpredefinita, con[mode=%(mode)s]: usa la rigamode, oppurenormalse non c'è.
Se la modalità è normal, fail2ban non conteggia le righe dei test di Desktop, quindi cerca un'altra causa del blocco.
Per un'altra modalità, copia le righe dal tuo log in un file sulla macchina remota. Copia ogni riga per intero, dalla data fino alla fine, ed entrambe le righe quando un test ne lascia due. Esegui fail2ban-regex lì con il file e la modalità della tua jail, ad esempio aggressive:
fail2ban-regex -o ip lines.log "sshd[mode=aggressive]"
Per ogni errore che fail2ban conteggia, il comando stampa l'indirizzo su una riga a sé, come 203.0.113.7. In tal caso, evita un blocco. Se non stampa nulla, fail2ban non conteggia nessuna di quelle righe in quella modalità, quindi cerca un'altra causa del blocco.
Evitare un blocco da parte di fail2ban
Per impedire a fail2ban di bloccare un indirizzo a causa dei test di Desktop, modifica una delle due impostazioni della jail, ciascuna con un costo:
mode: impostala sunormalovunque la tua jail la imposti, in una rigamodeo tra le parentesi quadre di una riga comefilter = sshd[mode=aggressive]. Rinunci a ogni conteggio che fanno solo le altre modalità, ad esempio dei client che si connettono e se ne vanno senza tentare l'accesso.ignoreip: impostala sugli indirizzi da cui le persone si connettono, ad esempioignoreip = 203.0.113.7. fail2ban quindi non conteggia nulla da quegli indirizzi, compresi gli accessi non riusciti.
Usare i server MCP configurati sulla macchina remota
Per usare un server MCP da ~/.claude.json o dal .mcp.json di un progetto in una sessione SSH, configuralo in quei file sulla macchina remota. Claude Code avvia lì i loro server stdio, quindi installa sulla macchina remota i comandi che quei server eseguono. Per i server da claude_desktop_config.json, consulta Limiti mentre Desktop è disconnesso.
Aprire una sessione SSH da un link
Un link claude://code/new apre la pagina di nuova sessione di Desktop e può indicare una connessione SSH. Inserisci un link di questo tipo in un runbook, in una dashboard o in una pagina wiki per aprire Desktop configurato per la macchina e la cartella corrette. Per le piattaforme che rimuovono questi link, consulta Il link viene visualizzato come testo semplice invece di essere cliccabile.
I link SSH richiedono Claude Desktop v2.110.0 o successivo.
Il link seguente indica l'utente dev su build.example.com, la porta 2222 e la cartella /srv/payments, e compila un prompt:
claude://code/new?ssh_host=dev%40build.example.com&ssh_port=2222&ssh_folder=/srv/payments&q=Investigate%20the%20failed%20deploy
Un link SSH accetta questi parametri, e solo ssh_host è obbligatorio:
| Parametro | Valore |
|---|---|
ssh_host |
host o user@host, scritto come nel campo SSH host. Il valore non può iniziare con -, e la parte relativa all'host accetta solo lettere, cifre, ., _, : e - |
ssh_port |
Un numero di porta da 1 a 65535 |
ssh_folder |
Una cartella sulla macchina remota. Falla iniziare con / o ~/, oppure usa ~ |
q |
Testo con codifica URL per la casella del prompt |
Un alias da ~/.ssh/config funziona come ssh_host solo per le persone che hanno quella voce. Per far corrispondere una connessione che le persone hanno già, usa nel link lo stesso utente, host e porta di quella connessione.
Quando apri il link, Desktop ti chiede di confermare prima di selezionare la connessione:
- Una connessione che hai già: se host, utente e porta corrispondono a una delle tue connessioni, Desktop chiede se usarla e ti mostra il nome e l'host della connessione, e la cartella se il link ne indica una.
- Una nuova connessione: altrimenti Desktop apre la finestra di dialogo per aggiungere una connessione SSH. Quando aggiungi la connessione, Desktop chiede se connettersi prima di salvare qualsiasi cosa e ti mostra l'host dal link, e la porta e la cartella se il link le indica.
Finché non confermi, Desktop non salva l'host, la porta o la cartella dal link e non seleziona né apre una connessione con essi. Se una connessione SSH è già selezionata, la pagina di nuova sessione può comunque connettersi a essa da sola, come fa senza un link, anche quando il link indica lo stesso host. Un link non può contenere un file di chiave, una password o un comando.
Chiunque può scrivere un link, quindi controlla cosa ha compilato:
- Prima di confermare: controlla l'host e la cartella.
- Prima di inviare: controlla il prompt e l'ambiente selezionato.
Desktop compila il prompt quando il link si apre, al posto di qualsiasi testo che non hai inviato, e non lo invia mai al posto tuo. Tratta il prompt come testo semplice, quindi un / o un ! iniziale e una menzione di file con @ non funzionano come comando o menzione. Se annulli, il prompt rimane nella casella e l'ambiente che avevi selezionato non cambia.
Un link non aggira sshHostAllowlist. Desktop controlla l'allowlist quando si connette.
Se il link apre Desktop senza una finestra di dialogo sulla connessione, cerca una di queste cause:
- Non hai effettuato l'accesso: accedi, poi apri di nuovo il link.
- È aperta un'altra finestra di dialogo: chiudila, poi apri di nuovo il link.
- Il link non è valido: Desktop mostra un messaggio che indica cosa correggere e non compila il prompt.
- Desktop è precedente alla v2.110.0: le versioni precedenti ignorano i parametri SSH e aprono la pagina di nuova sessione con il solo prompt.
- Le sessioni SSH sono disattivate: se il tuo amministratore imposta l'allowlist su un array vuoto, Desktop rifiuta i link SSH.
Creare una connessione SSH da un comando
Se uno strumento da riga di comando crea le tue macchine remote su richiesta, aggiungi il suo comando a sshHostCommands in ~/.claude/settings.json. Il selettore dell'ambiente elenca quindi una voce con il nome della tua voce di configurazione, come Create Dev box. Quando la selezioni, Desktop esegue il comando sul tuo computer, salva l'host che il comando stampa come connessione SSH e si connette.
[!NOTE]
Le connessioni da un comando richiedono Claude Desktop v3.6556.0 o versioni successive su macOS o Linux, oppure v4.16336.0 o versioni successive su Windows, con l'accesso effettuato tramite un account Claude. Su Windows, Desktop deve anche connettersi tramite il client OpenSSH. Gli amministratori possono distribuire i comandi a un team.
Desktop esegue il comando solo quando crei la connessione o crei un'altra macchina, non ogni volta che ti connetti. Ogni voce è una connessione, che punta all'host che Desktop ha salvato per ultimo dal comando della voce.
[!WARNING]
Desktop non arresta né elimina le macchine. Ciascuna di queste continua a essere eseguita, e può continuare a costare denaro, finché non la elimini con il tuo strumento:
- Una macchina a cui puntava una voce prima che tu ne creassi un'altra
- Le macchine di una voce che hai rimosso dal file, o il cui
idhai modificato- Una macchina che il tuo comando ha creato senza che Desktop ne salvasse l'host, ad esempio in questi casi:
- Il comando non riesce o supera il tempo limite
- Desktop non può usare l'host stampato, un'altra connessione lo usa già, oppure la tua organizzazione non lo consente
- Mentre il comando è in esecuzione, lo annulli, rimuovi la sua voce, modifichi il suo
commandoid, oppure chiudi Desktop
L'esempio seguente aggiunge una connessione denominata Dev box. Se il file non esiste, crealo. Se contiene già delle impostazioni, aggiungi la chiave accanto a esse. Il comando acme-dev create rappresenta il tuo strumento e ~/project è la cartella che Desktop seleziona su ogni macchina creata dal tuo comando:
{
"sshHostCommands": [
{
"id": "devbox",
"name": "Dev box",
"command": "acme-dev create",
"startDirectory": "~/project"
}
]
}
Su Windows, un nome semplice come acme-dev non funziona, quindi fai iniziare il comando con il percorso completo del programma.
Ogni voce accetta questi campi, e id, name e command sono obbligatori:
| Campo | Valore |
|---|---|
id |
Fino a 64 lettere ASCII, cifre, ., _ e -, iniziando con una lettera o una cifra. Usa un id che nessun'altra voce in sshHostCommands o sshConfigs abbia. Desktop conserva l'host della connessione associato a esso, quindi se lo modifichi, la connessione ricomincia senza host, le sue macchine continuano a essere eseguite e Desktop può ancora connettersi a esse. |
name |
Il nome della connessione nel selettore dell'ambiente, fino a 200 caratteri su una riga |
command |
Un programma e i suoi argomenti, come descritto in Scrivere il comando |
sshIdentityFile |
Percorso della tua chiave privata, come ~/.ssh/id_ed25519. Omettilo per usare la tua configurazione SSH o il tuo agente SSH. |
startDirectory |
La cartella predefinita sulla macchina remota. Falla iniziare con / o ~/, oppure usa ~. |
Per modificare o rimuovere la connessione, modifica la sua voce nel file, perché la finestra di dialogo della connessione SSH dell'app non si apre per essa. Non è necessario riavviare Desktop dopo aver modificato il file. Se la voce non compare o non puoi selezionarla, consulta Se un comando manca o è grigio.
Scrivere il comando
Su Windows, inizia da Scrivere il comando su Windows, che indica quali di queste regole si applicano lì.
Su macOS e Linux, Desktop avvia il programma direttamente, senza shell e senza terminale:
- Programma: scrivi il suo nome, o il suo percorso completo a partire da
/. Desktop cerca un nome semplice nelPATHesportato dalla tua shell di login. I percorsi relativi come./acme-dev, i percorsi che iniziano con~e gli alias e le funzioni della shell non funzionano. - Spazi nel percorso: racchiudi il percorso completo del programma tra virgolette singole, ad esempio
'/Users/you/My Tools/make-devbox' create. Le virgolette, singole o doppie, richiedono Claude Desktop v4.16336.0 o versioni successive, e funzionano solo attorno al percorso del programma. - Argomenti: separa gli argomenti con spazi. Al di fuori delle virgolette, il comando può contenere solo spazi, lettere ASCII, cifre e i caratteri
+,-./:=@_~, e nessuna parola può iniziare con~. Un percorso tra virgolette può contenere anche alcuni altri caratteri, come(,)e&. - Script: se il comando richiede qualcos'altro, come argomenti tra virgolette, pipe, variabili o un URL con
?o&, inseriscilo in uno script. Rendi lo script eseguibile, fallo iniziare con una riga#!e impostacommandsul suo percorso completo, ad esempio/Users/you/bin/make-devbox. Su macOS, tieni lo script fuori dalle cartelle Documenti, Scrivania e Download, dove macOS può bloccarlo. - Input: il programma non riceve alcun input né alcun terminale, quindi non può chiederti nulla lì. Se il tuo strumento ti fa accedere tramite un browser o una richiesta, accedi prima da un terminale, e di nuovo ogni volta che quell'accesso scade.
- Ambiente: il programma viene eseguito nella tua directory home con le variabili che la tua shell di login esporta. Desktop le legge all'avvio, come fa per un
ProxyCommand, quindi chiudi e riapri Desktop dopo averle modificate. - Tempo limite: Desktop arresta un programma che è ancora in esecuzione dopo 10 minuti. Il messaggio di avanzamento di Desktop non mostra l'output del programma. Per arrestare il programma prima, seleziona Cancel accanto a quel messaggio.
Il programma deve terminare con codice 0 e stampare solo l'host sullo standard output, in una di due forme:
- Una riga:
hostouser@host, scritto come perssh_hostin un link SSH. Per indicare una porta, usa la forma JSON. - Un oggetto JSON:
sshHoste, facoltativamente, unsshPortnumerico e unastartDirectoryche sostituisce quella della voce, come{"sshHost": "dev@devbox-1234.example.com", "sshPort": 2222}
Per vedere l'output che Desktop legge, esegui il comando in un terminale senza input e con lo standard output in un file:
acme-dev create < /dev/null > host.txt
Il file deve contenere solo l'host. Quando esegui questo test, il tuo strumento crea anche una macchina, quindi eliminala in seguito con il tuo strumento.
Se il tuo strumento stampa altre righe prima dell'host, come messaggi di avanzamento, racchiudilo in uno script che stampa solo l'host. Lo script seguente stampa l'ultima riga dell'output del tuo strumento. Se il tuo strumento non riesce, lo script termina con lo stesso codice, in modo che Desktop segnali l'errore:
#!/bin/bash
out=$(mktemp) || exit
trap 'rm -f "$out"' EXIT
acme-dev create > "$out" || exit
tail -n 1 "$out"
Se il comando non riesce, View details nel messaggio di Desktop mostra l'ultima riga che il comando ha scritto sullo standard error, se presente.
Scrivere il comando su Windows
Su Windows, fai iniziare command con il percorso completo di un file .exe, .cmd o .bat, a partire dalla lettera dell'unità. Desktop non cerca un nome semplice nel tuo PATH, quindi una voce il cui command è acme-dev create è grigia.
La voce seguente in %USERPROFILE%\.claude\settings.json esegue C:\Program Files\Acme\acme-dev.exe con l'argomento create. In JSON, scrivi ogni barra rovesciata due volte, oppure scrivi / al suo posto. Le virgolette singole ci sono perché il percorso contiene uno spazio:
{
"sshHostCommands": [
{
"id": "devbox",
"name": "Dev box",
"command": "'C:\\Program Files\\Acme\\acme-dev.exe' create"
}
]
}
Segui le regole di Scrivere il comando su spazi nel percorso, input, limite di tempo e ciò che il programma stampa. Al posto delle sue altre regole, segui queste:
- Programma: non usare un percorso di rete come
\\server\share, una variabile come%USERPROFILE%o una lettera non ASCII. Con uno qualsiasi di questi elementi nel percorso, la voce è grigia. Se il nome della tua cartella utente contiene una lettera del genere, tieni il programma fuori da quella cartella. - Argomenti: segui la regola Argomenti di Scrivere il comando. Il comando può contenere anche
\, ma nessuna parola può terminare con esso. - Script: usa un file
.cmdo.bat, che Desktop esegue tramitecmd.exe. Anche tra virgolette, il percorso del file non può contenere&,^o;. In un file che scrivi tu, leggi gli argomenti con%*, perché da%1a%9dividono un argomento in corrispondenza di,e=. - Ambiente: il programma riceve le variabili d'ambiente dell'app Desktop, non quelle di un profilo della shell. Dopo aver modificato una variabile, chiudi e riapri Desktop.
- Test: per vedere l'output che Desktop legge, esegui il comando nel Prompt dei comandi. Racchiudi tra virgolette doppie un percorso che contiene uno spazio e usa
NULper nessun input, come in"C:\Program Files\Acme\acme-dev.exe" create < NUL > host.txt. Il file deve contenere solo l'host. Il test crea anche una macchina, quindi eliminala in seguito con il tuo strumento.
Racchiudere uno strumento Windows che stampa altre righe
Se il tuo strumento stampa altre righe prima dell'host, come messaggi di avanzamento, racchiudilo in un file batch che stampa solo l'host. Il file seguente stampa l'ultima riga dell'output del tuo strumento, e termina con il codice del tuo strumento se questo non riesce:
@echo off
setlocal
set "host="
set "out=%TEMP%\acme-dev-%RANDOM%.txt"
call "C:\Program Files\Acme\acme-dev.exe" create > "%out%"
set "code=%ERRORLEVEL%"
for /f "usebackq delims=" %%L in ("%out%") do set "host=%%L"
del "%out%"
if not "%code%"=="0" exit /b %code%
setlocal EnableDelayedExpansion
echo(!host!
Imposta command sul percorso completo del file, ad esempio C:\\tools\\make-devbox.cmd in JSON. Lascia le sue ultime due righe così come sono, perché stampano l'host senza eseguirlo come comando.
Connettersi a un nuovo host
Rispondi a due domande la prima volta che ti connetti a ogni nuovo host:
- Chiave host: con il controllo predefinito delle chiavi host di OpenSSH, verifica l'impronta digitale della chiave, poi scegli se connetterti. Per saltare la domanda, fai in modo che il tuo comando aggiunga la chiave a
~/.ssh/known_hosts, oppure a%USERPROFILE%\.ssh\known_hostssu Windows, prima di stampare l'host:- Usa una chiave che il tuo strumento ha appreso quando ha creato la macchina
- Per una porta diversa dalla 22, fai iniziare la riga con
[host]:port - Se il tuo strumento riutilizza i nomi host, rimuovi anche la riga della vecchia chiave
- Cartella: scegli se ritieni attendibile la cartella che apri lì
Mantieni attivo il controllo delle chiavi dell'host per questi host e mantieni un file known_hosts per essi. Se StrictHostKeyChecking è no o accept-new e anche UserKnownHostsFile è /dev/null o none, nulla registra la chiave. Quando poi il tuo strumento riutilizza un nome, puoi connetterti a una macchina diversa senza alcun avviso.
Un nome riutilizzato conta anche senza nessuno al computer, perché Desktop si connette a questi host da solo. Ad esempio, recapita un messaggio che hai inviato mentre l'host non era raggiungibile, non appena l'host risponde. Anche con il controllo delle chiavi dell'host attivo, il messaggio può raggiungere la nuova macchina associata al nome in questi casi, quindi smetti di usare una macchina prima che venga eliminata:
- Tu, il tuo comando o un altro programma avete aggiunto la nuova chiave a
known_hostso rimosso la riga della vecchia chiave, come fa il tuo comando se aggiunge chiavi dell'host - Le macchine del tuo strumento condividono una chiave dell'host
- Le macchine del tuo strumento condividono un'autorità di certificazione che
known_hostsconsidera attendibile - Tu o il tuo amministratore avete impostato
KnownHostsCommandoVerifyHostKeyDNS yes, quindi SSH accetta chiavi provenienti dall'esterno diknown_hosts
Creare un'altra macchina
Le tue sessioni sulle macchine precedenti continuano a funzionare dopo che selezioni Create another Dev box, e le nuove sessioni usano la nuova macchina. Seleziona la voce nel selettore dell'ambiente per creare una macchina nuova o per sostituirne una che non esiste più. Nella pagina di nuova sessione, anche il messaggio che indica che Desktop non riesce a raggiungere l'host la offre.
- Sessioni sulle macchine precedenti: continuale dalla barra laterale, perché il selettore elenca la macchina corrente di Dev box e non quelle precedenti. Desktop può connettersi alle loro macchine da solo, ad esempio all'avvio di Desktop, quindi smetti di usare una macchina quando hai finito con essa.
- Un host sostituito prima di Claude Desktop v4.4212.0: quelle versioni mostrano Replace Dev box's host e smettono di connettersi all'host sostituito. Per continuare una sessione su quell'host, apri la sessione, seleziona Add SSH connection e salva la connessione che Desktop compila. Aggiorna Desktop prima di sostituire un altro host.
- Nuove sessioni su due macchine: aggiungi una seconda voce a
sshHostCommands - Un nuovo host che non risponde ancora: lascia aperta la pagina di nuova sessione fino a 10 minuti mentre continua a tentare di connettersi. Se l'host ancora non risponde, seleziona Create another Dev box nel messaggio della pagina.
- Un'altra macchina poco dopo: dopo diverse esecuzioni del comando entro un'ora, conferma ogni ulteriore esecuzione nella finestra di dialogo che Desktop apre, che mostra il comando
Smettere di usare una macchina
Per impedire a Desktop di connettersi da solo a una macchina creata da un comando, archivia ogni sessione sulla macchina:
- Trova le sessioni della macchina nella barra laterale. Il pannello dei dettagli di una sessione mostra l'host su cui viene eseguita.
- Archivia ogni sessione e lasciala archiviata.
- Se non hai creato un'altra macchina dalla stessa voce
sshHostCommandsda quando hai creato questa, creane una oppure rimuovi anche la voce. Fino ad allora, la macchina è la connessione salvata della voce e Desktop può connettersi a essa quando apri la pagina di nuova sessione con quella connessione selezionata. - Elimina nell'app qualsiasi altra connessione SSH alla macchina, oppure rimuovi la sua voce
sshConfigs. - Chiudi e riapri Desktop, il che chiude la sua connessione alla macchina e pone fine ai suoi tentativi di raggiungerla.
- Elimina la macchina con il tuo strumento.
Rimuovere una voce
Dopo che rimuovi una voce dal file delle impostazioni o modifichi il suo id, le sessioni sulle sue macchine rimangono, quindi Desktop può ancora connettersi a quelle macchine. Può farlo senza nessuno al computer, ad esempio per ricollegarsi al processo in esecuzione di una sessione o per recapitare un messaggio in attesa di invio. Per impedirlo, archivia le sessioni, come descritto in Smettere di usare una macchina.
Se sei un amministratore e hai rimosso una voce gestita, rimangono anche le sessioni dei tuoi utenti, e ogni utente deve archiviare le proprie. Per bloccare tu stesso le macchine della voce, imposta un'sshHostAllowlist che corrisponda agli host di cui i tuoi utenti hanno ancora bisogno e non ai nomi host delle macchine. Puoi farlo solo dove un pattern distingue i due.
Distribuire i comandi al tuo team
Per fornire una connessione al tuo team, imposta sshHostCommands nel file delle impostazioni gestite di Claude Code o nella policy MDM su ogni computer, non nella policy di gestione dei dispositivi dell'app desktop stessa. Gli utenti vedono le tue voci accanto alle proprie, e l'app non offre alcun modo per modificare o rimuovere una voce, né la loro né la tua.
Il seguente file di impostazioni gestite fornisce agli utenti una connessione denominata Dev box e disattiva le loro voci, insieme agli hook di Claude Code dalle impostazioni utente, di progetto e locali:
{
"sshHostCommands": [
{
"id": "acme-devbox",
"name": "Dev box",
"command": "/usr/local/bin/acme-dev create"
}
],
"strictPluginOnlyCustomization": ["hooks"]
}
Prima di distribuire la chiave, definisci ciascuno di questi aspetti:
- Dove inserire la chiave: se la tua policy MDM per Claude Code imposta già una chiave di policy, inseriscila lì. Altrimenti, inseriscila nel file delle impostazioni gestite. Per impostazione predefinita, una policy di questo tipo ha la precedenza sul file, e Desktop ignora quindi le voci nel file. Impostala sul computer anche dove si applicano le impostazioni gestite dal server: Desktop ignora la chiave lì, e nelle impostazioni di progetto e locali.
- L'
id: se la vocesshHostCommandsdi un utente ha il tuoid, funziona solo la tua. Se qualsiasi altra connessione SSH lo ha, come una nellesshConfigsdi un utente, la tua voce è grigia. Scegli unidche difficilmente gli utenti sceglierebbero. - Il programma: indica il suo percorso completo, perché su macOS e Linux Desktop cerca un nome semplice nel
PATHdi ogni utente, e su Windows una voce con un nome semplice è grigia. Il programma viene eseguito come l'utente, con le variabili di quell'utente. - Ogni piattaforma: distribuisci una voce ai computer Windows e un'altra ai computer macOS e Linux. Una voce con un percorso Windows è grigia su macOS e Linux, e una con un percorso macOS o Linux è grigia su Windows.
- Le voci degli utenti: Desktop tratta la voce di un utente come un hook, perché entrambi eseguono un programma sul computer. Per consentire solo le tue voci, imposta
strictPluginOnlyCustomizationsu["hooks"], oppure aggiungi"hooks"al suo elenco. In questo modo blocchi anche gli hook di Claude Code dalle impostazioni utente, di progetto e locali, senza modo di mantenerli. Se invece imposti quella chiave oallowManagedHooksOnlysutrue, blocchi di più, come elenca la voce di ciascuna chiave. - Ogni voce: per disattivare anche le tue voci, imposta
disableAllHooksnelle impostazioni gestite. Se impostidisableDesktopLocalSessions, o un'sshHostAllowlistche non consente alcun host, il selettore non elenca alcuna voce Create o Create another. - Dove contano i blocchi: per queste voci, Desktop legge
allowManagedHooksOnly,strictPluginOnlyCustomizationedisableAllHooksdalle impostazioni gestite dal server e dal file o dalla policy del computer stesso, e applica il risultato più restrittivo. Ogni voce rimane grigia finché Desktop non ha verificato le impostazioni gestite dal server su claude.ai, anche se la tua organizzazione non ne ha. - Host consentiti: se imposti
sshHostAllowlist, assicurati che un pattern corrisponda a ogni nome host che il tuo strumento stampa, e omettiuser@dal pattern. Desktop controlla il nome stampato solo dopo che il comando è stato eseguito, quindi una macchina che l'elenco rifiuta esiste già, e l'utente deve eliminarla con il tuo strumento. A ogni connessione, deve corrispondere anche l'HostNamerisolto.
Dopo aver distribuito la chiave, riavvia Desktop su un computer di prova. Nel selettore dell'ambiente della scheda Code, guarda sotto SSH, oppure nella singola riga SSH. La tua voce compare come voce Create, oppure come voce grigia che mostra il motivo quando vi passi sopra il puntatore. Se manca, controlla dove hai inserito la chiave, poi i casi in Se un comando manca o è grigio.
Se un comando manca o è grigio
Il selettore dell'ambiente non elenca alcuna voce Create o Create another in questi casi:
- Il file:
~/.claude/settings.jsoncontiene JSON non valido o un valore che lo schema rifiuta, hai scritto male la chiave oppure l'hai inserita nelle impostazioni di un progetto. Correggi il file. - Account: usi un provider di terze parti invece di un account Claude. Aggiungi tu stesso ogni host come connessione SSH.
- Windows: Desktop è precedente alla v4.16336.0, oppure non si connette tramite il client OpenSSH. Aggiorna Desktop e soddisfa i requisiti per il client OpenSSH, poi chiudi e riapri Desktop.
- Le impostazioni della tua organizzazione: il tuo amministratore ha disattivato le sessioni locali o le sessioni SSH. Chiedigli se puoi usare i comandi.
- Nessun programma
ssh: Desktop non è riuscito ad avviare il client OpenSSH sul tuo computer. Installalo, oppure chiedi al tuo amministratore di consentirlo, poi riavvia Desktop.
Una voce che non puoi selezionare è grigia. Passaci sopra il puntatore per vedere il motivo:
- Un errore nella voce: correggi il campo o il comando indicato dal messaggio. Se l'
idè già in uso, assegnane un altro alla voce. Su Windows, il comando deve iniziare con il percorso completo del programma. - Un file delle impostazioni danneggiato: mentre il tuo file delle impostazioni è danneggiato, le voci del tuo amministratore possono essere grigie, con un messaggio che indica il file. Correggi il file.
- Un nuovo host: Create another è grigio per un minuto dopo che Desktop salva un host. Selezionalo dopo quel minuto. Prima di Claude Desktop v4.4212.0, Replace Dev box's host è grigio per 10 minuti.
- Gli hook sono disattivati o limitati: le tue voci funzionano solo dove i tuoi hook possono essere eseguiti. Rimuovi
disableAllHooksdalle tue impostazioni, oppure chiedi al tuo amministratore. - Le impostazioni sono ancora in caricamento: ogni voce è grigia finché Desktop non ha caricato le impostazioni gestite dal server della tua organizzazione, di solito pochi secondi dopo l'avvio. Se le voci rimangono grigie, controlla la tua connessione a claude.ai.
Preconfigurare le connessioni SSH per il tuo team
Gli amministratori possono distribuire connessioni SSH ai membri del team impostando sshConfigs nelle impostazioni gestite.
- Cosa vedono gli utenti: le connessioni definite in questo modo compaiono automaticamente nel selettore dell'ambiente di ogni utente.
- Cosa possono modificare gli utenti: gli utenti possono selezionare una connessione gestita e impostare la propria Worktree folder per essa. Non possono modificarne gli altri campi né eliminarla nell'app.
L'esempio seguente preconfigura una singola connessione:
{
"sshConfigs": [
{
"id": "shared-dev-vm",
"name": "Shared Dev VM",
"sshHost": "user@dev.example.com",
"sshPort": 22,
"sshIdentityFile": "~/.ssh/id_ed25519"
}
]
}
Ogni voce richiede id, name e sshHost. I campi sshPort e sshIdentityFile sono facoltativi. Gli utenti possono anche aggiungere sshConfigs al proprio ~/.claude/settings.json.
Se ometti user@ da sshHost, Desktop si connette come lo User che il ~/.ssh/config di ogni sviluppatore imposta per l'host, oppure altrimenti con il suo nome utente sul proprio computer.
Limitare gli host SSH a cui gli utenti possono connettersi
Gli amministratori possono limitare le sessioni SSH di Desktop a un insieme approvato di host impostando sshHostAllowlist nelle impostazioni gestite. Quando è impostata, gli utenti possono connettersi solo a host il cui nome host risolto corrisponde a uno dei pattern. Impostala su un array vuoto per disattivare le sessioni SSH. La voce di riferimento di sshHostAllowlist spiega come un array vuoto si combina con gli elenchi in altre origini gestite.
L'esempio seguente consente le connessioni a qualsiasi host in devboxes.example.com e a un singolo bastion host con nome:
{
"sshHostAllowlist": ["*.devboxes.example.com", "bastion.example.com"]
}
[!WARNING]
Se la tua organizzazione fornisce impostazioni gestite dal server, imposta
sshHostAllowlistlì. Per impostazione predefinita, Desktop legge la chiave solo dall'origine gestita con la priorità più alta che fornisce una chiave di policy. Se quell'origine lascia la chiave non impostata, Desktop ignora un elenco in una policy MDM o in un file di impostazioni gestite con priorità inferiore e tratta la chiave come non impostata. Desktop non mostra alcun avviso.Mantieni anche lo stesso elenco sulla macchina di ogni utente, nella policy MDM o nel file di impostazioni gestite con la priorità più alta presente lì. Desktop recupera le impostazioni gestite dal server all'avvio e non ne conserva una copia nella cache, quindi finché un recupero non riesce si applica l'elenco della macchina.
I pattern non fanno distinzione tra maiuscole e minuscole. * corrisponde a qualsiasi host e *.example.com corrisponde a example.com e a qualsiasi sottodominio. Qualsiasi altro valore è una corrispondenza esatta. Il controllo viene eseguito sul nome host dopo la risoluzione di ~/.ssh/config tramite ssh -G, quindi un alias Host è consentito purché il suo HostName risolto corrisponda. Anche i jump host di una sessione devono corrispondere.
sshHostAllowlist viene letta solo dalle impostazioni gestite; i valori nelle impostazioni utente o di progetto vengono ignorati. Solo l'app Claude Desktop rispetta questa impostazione; la CLI di Claude Code e le estensioni IDE non la leggono, e non limita i comandi ssh eseguiti tramite lo strumento Bash. Regola gli host a cui l'app Desktop si connette, non il traffico di rete in uscita, quindi abbinala ai controlli di rete o zero-trust della tua organizzazione se ti serve un confine rigido.
Consentire i jump host
Aggiungi a sshHostAllowlist ogni jump host che Desktop controlla, tramite il suo HostName risolto. Aggiungi i jump host prima che gli utenti aggiornino a Claude Desktop v3.1623.0 o successivo, altrimenti non potranno connettersi attraverso di essi.
[!WARNING]
L'elenco ha un solo tipo di voce, quindi gli utenti possono anche avviare una sessione su qualsiasi host che elenchi. Elenca solo i jump host su cui consentiresti anche agli utenti di eseguire sessioni.
Desktop controlla i jump host nel ProxyJump che il ~/.ssh/config dell'utente imposta per l'host della sessione, oppure in un ProxyCommand scritto come ssh -W %h:%p <host>. Se uno che controlla non è nell'elenco quando Desktop connette o riconnette una sessione, la connessione non riesce. Quando un utente avvia una sessione o invia un messaggio, i dettagli dell'errore indicano l'HostName di quel jump host, che è il nome da aggiungere:
SSH host "bastion.example.com" is not allowed by your organization's managed settings. It is a jump host on the way to "devbox".
Se il messaggio riporta managed settings on this computer, aggiungi il nome all'elenco sul computer dell'utente. Se manca più di un jump host, l'errore li indica uno alla volta. Per trovare tutti i nomi prima che gli utenti aggiornino, usa un terminale sul computer di un utente:
1. Trova il percorso
Esegui ssh -G con un host a cui gli utenti si connettono, come ssh -G devbox. Cerca una riga proxyjump, oppure una riga proxycommand scritta come ssh -W %h:%p <host>. Il comando conta comunque con uno qualsiasi tra -l, -p, -J, -q, -v, -N, -T, -x o -a, e anche gli host dopo -J sono jump host. Se una riga proxycommand esegue un programma diverso da ssh, non aggiungere nulla per essa.
2. Cerca ogni jump host
Esegui ssh -G con ogni jump host su quella riga, senza alcun :port, e annota l'hostname che stampa. Se l'output per il primo jump host su quella riga contiene una riga di uno dei due tipi, ripeti questo passaggio con essa. Ignora una riga di questo tipo nell'output di un jump host successivo.
3. Aggiungi i nomi
Aggiungi ogni nome host, o un carattere jolly che lo copra, a sshHostAllowlist in ogni origine gestita in cui imposti un elenco. Poi chiedi agli utenti di chiudere e riaprire Desktop, perché recupera le impostazioni gestite dal server all'avvio.
Disattivare le sessioni locali e distribuire le connessioni SSH
Per disattivare le sessioni locali e limitare le sessioni SSH agli host che scegli, distribuisci insieme disableDesktopLocalSessions, sshConfigs e sshHostAllowlist.
[!NOTE]
Questa configurazione è per gli utenti che accedono con un account Claude. Con un provider di terze parti, le sessioni SSH sono disattivate per impostazione predefinita e impostare
sshHostAllowlistpuò attivarle. Leggi SSH remote sessions in Claude Desktop on 3P prima di distribuire queste chiavi.
L'esempio seguente disattiva le sessioni locali, aggiunge una connessione e limita le sessioni SSH all'host di quella connessione:
{
"disableDesktopLocalSessions": true,
"sshConfigs": [
{
"id": "shared-dev-vm",
"name": "Shared Dev VM",
"sshHost": "dev.example.com"
}
],
"sshHostAllowlist": ["dev.example.com"]
}
Le chiavi si applicano all'app desktop. Lasciano invariati gli altri modi di eseguire Claude Code, come la CLI, Cowork e le sessioni cloud:
- La CLI: nessuna delle chiavi impedisce a uno sviluppatore di eseguire la CLI di Claude Code sul proprio computer
- Cowork: nessuna delle chiavi si applica alle sessioni di Cowork o alle attività pianificate di Cowork
- Sessioni cloud: nessuna delle chiavi cambia la disponibilità delle sessioni cloud. Per disattivarle, usa l'impostazione Cloud sessions in Controlli della console di amministrazione.
Quando adatti l'esempio, controlla i nomi host, la versione di Desktop e i permessi del file:
- Nomi host: assicurati che un pattern in
sshHostAllowlistcorrisponda al nome host di ogni vocesshConfigs, senzauser@, altrimenti gli sviluppatori non possono connettersi a essa. Aggiungi anche un pattern che corrisponda a ogni jump host che Desktop controlla lungo il percorso verso di essa. Per sapere come Desktop fa corrispondere un nome host, consulta Limitare gli host SSH a cui gli utenti possono connettersi. - Versione:
disableDesktopLocalSessionsrichiede Claude Desktop v1.37937.0 o successivo - Permessi del file: assicurati che l'account di ogni sviluppatore sul computer possa leggere il file delle impostazioni gestite. Desktop non applica le chiavi in un file che l'account non può leggere, e anche Claude Code si avvia senza di esse.
Inserisci le tre chiavi in un'unica origine gestita, quella con la priorità più alta che fornisci. Se fornisci impostazioni gestite dal server, mantieni anche una copia delle tre chiavi nella policy MDM o nel file di impostazioni gestite con la priorità più alta su ogni computer. Desktop recupera le impostazioni gestite dal server all'avvio, e la copia sul computer si applica finché un recupero non riesce.
Per confermare che le impostazioni vengano applicate, controlla il computer di uno sviluppatore:
1. Controlla il selettore dell'ambiente
Chiudi e riapri Desktop, poi apri il selettore dell'ambiente. Le impostazioni sono state applicate se mostra:
- La voce relativa a quel computer, in grigio
- Shared Dev VM sotto SSH. Se non è elencata lì, fai clic sulla singola riga SSH, oppure su More alla fine del gruppo.
Se la voce relativa al computer è ancora disponibile, verifica queste cause:
- Versione di Desktop: aggiorna Desktop se è precedente alla v1.37937.0.
- File delle impostazioni gestite: assicurati che il file sia JSON valido.
- Origine gestita: assicurati che il computer legga l'origine gestita che contiene le chiavi.
2. Aggiungi un host che non è nell'allowlist
Aggiungi una connessione SSH con un nome host che non è nell'allowlist, come other.example.com. Desktop salva la connessione ma si rifiuta di connettersi, e indica che le impostazioni della tua organizzazione non consentono la connessione.
Configurazione aziendale
Le organizzazioni su piani Team o Enterprise possono gestire il comportamento dell'app desktop tramite controlli della console di amministrazione, file di impostazioni gestiti e criteri di gestione dei dispositivi.
Controlli della console di amministrazione
Queste impostazioni sono configurate tramite la console delle impostazioni di amministrazione:
- Desktop: controlla se gli utenti della tua organizzazione possono accedere a Claude Code nell'app desktop
- Cloud sessions: abilita o disabilita le sessioni cloud per la tua organizzazione
- Remote Control: abilita o disabilita Remote Control per la tua organizzazione
Nelle organizzazioni Enterprise con HIPAA abilitato, l'interruttore Desktop è disattivato per impostazione predefinita e un Owner può attivarlo. L'applicazione della configurazione HIPAA lo disattiva, anche se era attivo, quindi un Owner deve riattivarlo in seguito. Anche Cloud sessions e Remote Control sono disattivati per impostazione predefinita, e un Owner non può attivarli una volta che all'organizzazione è stata applicata la configurazione HIPAA.
[!NOTE]
Il modulo OpenTelemetry per Cowork sotto Monitoring nelle impostazioni di Data and privacy della console di amministrazione si applica solo alle sessioni Cowork. In una sessione Cowork su questa macchina, l'app desktop passa quel collector a Claude Code come variabili d'ambiente
OTEL_*, quindi il modulo ha effetto anche se Claude Code in quella sessione non recupera mai le impostazioni della console di amministrazione.Per esportare la telemetria dalle sessioni della scheda Code, imposta
CLAUDE_CODE_ENABLE_TELEMETRYe le variabiliOTEL_*nel bloccoenvdelle tue impostazioni gestite di Claude Code, come mostrato in configurazione dell'amministratore per il monitoraggio. Le sessioni locali, cloud e SSH leggono ciascuna impostazioni gestite da fonti diverse. Per gli host che una sessione cloud può raggiungere, vedi accesso alla rete. Per ilservice.nameche le sessioni della scheda Code segnalano, vedi informazioni sul servizio.Per scoprire su quale macchina remota è stata eseguita una sessione SSH, vedi Attribuire la telemetria alle sessioni SSH di Desktop.
Impostazioni gestite
Le impostazioni gestite sovrascrivono le impostazioni del progetto e dell'utente e si applicano alle sessioni Claude Code in Desktop. Puoi impostare queste chiavi nel file impostazioni gestite della tua organizzazione o inviarle in remoto tramite la console di amministrazione, salvo diversa indicazione nella riga di una chiave.
| Chiave | Descrizione |
|---|---|
permissions.disableBypassPermissionsMode |
imposta su "disable" per impedire agli utenti di abilitare la modalità bypass permissions. |
disableAutoMode |
imposta su "disable" per rimuovere la modalità Auto dal selettore di modalità. Accettato anche sotto permissions. |
autoMode |
personalizza cosa il classificatore della modalità auto si fida e blocca in tutta la tua organizzazione. Vedi Configura la modalità auto. |
browserExternalPageTools |
imposta su "disabled" per impedire a Claude di utilizzare strumenti per leggere o agire su pagine esterne nel riquadro Browser. Gli utenti possono comunque navigare verso siti esterni da soli, e le anteprime del server di sviluppo locale non sono interessate. |
disableMobileSimulatorTools |
imposta su true per bloccare gli strumenti di Claude per il controllo e l'acquisizione dei dispositivi nel riquadro iOS Simulator. Il riquadro rimane utilizzabile per i tocchi dell'utente; solo l'accesso di Claude viene rimosso. Il valore deve essere il booleano JSON true; la stringa "true" viene ignorata. |
disableBrowserExternalNavigation |
imposta su true per disattivare completamente la navigazione esterna nel riquadro Browser. Né gli utenti né Claude possono navigare verso siti esterni, e le anteprime del server localhost dev non sono interessate. Le anteprime HTML nelle sessioni SSH e WSL non eseguono script. Il valore deve essere il booleano JSON true; la stringa "true" viene ignorata. |
sshConfigs |
pre-configura le connessioni SSH che appaiono nel selettore dell'ambiente. Gli utenti non possono eliminare le connessioni gestite né modificare nulla tranne la propria Worktree folder. |
sshHostCommands |
fornisci agli utenti connessioni SSH il cui host proviene da un comando, insieme alle loro. Desktop la legge dal file di impostazioni gestite o dal criterio MDM sul computer e la ignora nelle impostazioni gestite dal server. Richiede Claude Desktop v3.6556.0 o successivo su macOS o Linux, oppure v4.16336.0 o successivo su Windows, con accesso tramite un account Claude. Su Windows, Desktop deve anche connettersi tramite il client OpenSSH. |
sshHostAllowlist |
limita le sessioni SSH agli host il cui nome host risolto corrisponde a uno di questi modelli. Letto solo dalle impostazioni gestite. |
disableDesktopLocalSessions |
imposta su true per disattivare le sessioni Code che vengono eseguite sul dispositivo, lasciando disponibili le sessioni SSH verso altri host e le sessioni cloud. Il valore deve essere il booleano JSON true. Letto solo dalle impostazioni gestite. Richiede Claude Desktop v1.37937.0 o successivo. |
disableSshSavedPasswords |
imposta su true per impedire a Desktop di offrire di ricordare le password SSH e di usare o mostrare quelle salvate in precedenza. Attivarla non le elimina. Letto solo dalle impostazioni gestite. Richiede Claude Desktop v1.49585.0 o successivo. |
managedMcpServers |
invia le configurazioni del server MCP a tutti gli utenti. Disponibile solo nelle distribuzioni Desktop di terze parti (3P). In ogni voce, imposta un trasporto di "http", "sse" o "stdio", i dettagli della connessione e facoltativamente una mappa toolPolicy per limitare quali strumenti di quel server gli utenti possono invocare. Forniscilo tramite il file di impostazioni gestite, MDM o il blocco desktop di una politica gateway delle app Claude, poiché le distribuzioni di terze parti non ricevono le impostazioni della console di amministrazione. Per fornirlo tramite il gateway, hai bisogno di Claude Code v2.1.232 o successivo sul server gateway. Questa è la chiave dell'app desktop stessa; Claude Code legge un'impostazione gestita con lo stesso nome propria, con una forma di voce diversa. |
Se disattivi una funzionalità con browserExternalPageTools, disableMobileSimulatorTools o disableBrowserExternalNavigation nel criterio MDM o file di impostazioni gestite di rango più alto di un computer, la funzionalità resta disattivata su quel computer. Resta disattivata anche quando le tue impostazioni gestite dal server lasciano quella chiave non impostata o consentono la funzionalità. Non usare un valore di registro HKCU a livello utente per questo scopo. Per riattivare la funzionalità, rimuovi il valore ovunque lo abbia impostato. Richiede Claude Desktop v4.4212.0 o successivo.
Quali impostazioni gestite raggiungono una sessione Desktop dipende da dove quella sessione viene eseguita. Le restrizioni del modello come availableModels vengono applicate nelle sessioni Claude Code di Desktop nello stesso modo che nel CLI del terminale; vedi copertura della superficie.
- Sessioni locali su questa macchina: un file di impostazioni gestite distribuito su disco si applica. Le impostazioni gestite inviate in remoto tramite la console di amministrazione raggiungono anche queste sessioni sull'API di Anthropic quando la sessione si autentica con un accesso idoneo, seguendo la stessa precedenza delle impostazioni del CLI del terminale.
- Sessioni cloud: ricevono impostazioni gestite dal server; i file distribuiti su dispositivo non le raggiungono, perché vengono eseguite su VM gestite da Anthropic. Le sessioni instradate a un ambiente self-hosted leggono anche il file di impostazioni gestite nell'immagine del runner. Come Claude Code combina le fonti gestite dice quando quel file si applica.
- Sessioni SSH: la sessione legge il file di impostazioni gestite dall'host remoto. Desktop stesso legge
sshConfigs,sshHostAllowlist,disableSshSavedPasswordsedisableDesktopLocalSessionssulla macchina locale. Se fornisci più di una fonte gestita, le legge da una sola per impostazione predefinita. Se impostipermissions.disableBypassPermissionsModeodisableAutoModenelle impostazioni gestite in vigore sulla macchina locale, il selettore di modalità di una sessione SSH non offre quella modalità, qualunque cosa imposti l'host remoto. - Sessioni Cowork: in una sessione Cowork su questa macchina, Claude Code non recupera mai le impostazioni della console di amministrazione, anche quando l'utente accede con un account Team o Enterprise, e legge la politica distribuita sulla macchina a meno che la tua configurazione di Claude Desktop non imposti
requireCoworkFullVmSandbox. Le sessioni Cowork remote non ricevono nessuna delle due. Vedi dove e quando una politica si applica per sapere quali file di dispositivo raggiungono Cowork, e regole di permesso MCP per come le regoleBasheWebFetchsi applicano agli strumenti di Cowork.
Nelle sessioni locali e SSH, l'app desktop fornisce i connettori claude.ai connessi di ogni utente a Claude Code direttamente. Nessuna impostazione MCP o managed-mcp.json raggiunge quei connettori, indipendentemente dalla fonte di impostazioni o dalla posizione del file che usi. Per bloccare gli strumenti di un connettore in queste sessioni, usa i controlli degli strumenti del connettore della tua organizzazione. Come i connettori raggiungono Claude Code mostra quali impostazioni governano i connettori in ogni tipo di sessione.
permissions.disableBypassPermissionsMode e disableAutoMode funzionano anche nelle impostazioni dell'utente e del progetto, ma metterli nelle impostazioni gestite impedisce agli utenti di sovrascriverli.
Per le chiavi di permesso, plugin e consegna che solo una fonte gestita può impostare, vedi Chiavi che solo le impostazioni gestite possono impostare.
Impostazioni di Claude Code che si comportano diversamente nella scheda Code
In una sessione locale, queste chiavi, tra le altre, hanno un effetto diverso o nessun effetto visibile, perché la scheda Code sostituisce l'interfaccia del terminale. Continuano ad applicarsi nel terminale, quindi puoi lasciarle impostate.
| Chiave | In una sessione locale |
|---|---|
askUserQuestionTimeout |
il timeout non si applica, quindi una domanda di Claude resta aperta finché un utente non risponde |
awaySummaryEnabled |
la chiave non ha alcun effetto |
bashEditDiffEnabled |
la scheda Code non mostra l'elenco dei file modificati da un comando Bash |
companyAnnouncements |
la scheda Code non mostra gli annunci |
defaultShell |
i comandi che gli utenti digitano dopo ! vengono eseguiti in una shell scelta dall'app: la loro shell di login su macOS e Linux, PowerShell su Windows |
fileSuggestion |
il selettore di file @ crea il proprio elenco di file e non esegue il comando che imposti |
modelPicker |
il selettore di modelli elenca i modelli disponibili per l'account di ciascun utente. Per limitarli, imposta availableModels. |
pluginTrustMessage |
l'avviso che gli utenti vedono quando installano un plugin non include il messaggio che imposti |
prUrlTemplate |
i link delle pull request usano l'URL della pull request stessa, non il modello |
respectGitignore |
il selettore di file @ crea il proprio elenco di file e non legge questa chiave |
respondToBashCommands |
Claude risponde all'output dei comandi che gli utenti eseguono con !, qualunque sia il valore |
showClearContextOnPlanAccept |
gli utenti non hanno alcuna opzione per cancellare il contesto quando approvano un piano |
skipDangerousModePermissionPrompt |
la scheda Code ha una propria conferma per la modalità Bypass permissions, e questa chiave non la salta |
verbose, viewMode |
ogni utente sceglie la visualizzazione in Transcript view nel menu della sessione |
worktree.baseRef, worktree.sparsePaths, worktree.symlinkDirectories |
non vengono usate per il worktree che la scheda Code crea per una sessione |
Criteri di gestione dei dispositivi
I team IT possono gestire l'app desktop tramite MDM su macOS, criteri di gruppo su Windows o un file di criteri su Linux. I criteri disponibili includono l'abilitazione o la disabilitazione della funzione Claude Code, il controllo degli aggiornamenti automatici su macOS e Windows e l'impostazione di un URL di distribuzione personalizzato.
- macOS: configura tramite il dominio di preferenza
com.anthropic.claudefordesktopusando strumenti come Jamf o Kandji - Windows: configura tramite il registro in
SOFTWARE\Policies\Claude - Linux: configura tramite un file di proprietà di root in
/etc/claude-desktop/managed-settings.json, che contiene le chiavi dei criteri come oggetto JSON. Desktop rifiuta il file se chiunque diverso da root può scrivere su di esso o sulla sua cartella. È un file diverso dal file di impostazioni gestite di Claude Code.
Limita l'accesso alla tua organizzazione
Per limitare quali organizzazioni claude.ai possono accedere a Claude Desktop, imposta forceLoginOrgUUID nel criterio di Claude Desktop.
La chiave richiede Claude Desktop v1.2581.0 o successivo.
Su Linux, un file di criteri che imposta solo questa chiave è il seguente:
{
"forceLoginOrgUUID": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
Sostituisci il segnaposto con l'ID della tua organizzazione claude.ai, mostrato nelle impostazioni di amministrazione di claude.ai. È lo stesso ID accettato dall'impostazione forceLoginOrgUUID di Claude Code. Per esempi per macOS e Windows che impostano questa chiave, vedi Distribuisci il criterio di Claude Desktop nella guida di Cowork per le organizzazioni pronte per HIPAA.
[!WARNING]
Controlla il valore di
forceLoginOrgUUIDprima di distribuirlo. Se l'ID non è quello della tua organizzazione, le persone della tua organizzazione non possono usare Claude Desktop a meno che non appartengano anche a un'organizzazione con quell'ID. Per risolvere, distribuisci l'ID corretto e chiedi loro di riavviare Claude Desktop.
Se imposti forceLoginMethod e forceLoginOrgUUID nelle impostazioni gestite di Claude Code, non modifichi la schermata di accesso di Claude Desktop.
Requisiti di accesso alla rete
Desktop carica il suo codice applicativo e il contenuto dell'utente dagli host CDN di Anthropic.
anthropic.com
*.anthropic.com
claude.ai
*.claude.ai
claude.com
*.claude.com
claude.app
*.claude.app
*.claudeusercontent.com
*.claudemcpcontent.com
Il traffico è HTTPS sulla porta 443 a meno che non configuri una porta personalizzata per OTLP, un gateway LLM o un server MCP.
Per i server proxy, autorità di certificazione personalizzate, mTLS e i domini di cui ha bisogno il CLI standalone, vedi configurazione della rete.
Per ridurre il numero di wildcard del firewall, consenti invece questi host Anthropic. Alcuni sottodomini vengono generati dinamicamente e devono rimanere wildcard.
anthropic.com
api.anthropic.com
a-api.anthropic.com
a-cdn.anthropic.com
s-cdn.anthropic.com
assets-proxy.anthropic.com
claude.ai
a.claude.ai
assets.claude.ai
downloads.claude.ai
*.livepreview.claude.ai
claude.com
platform.claude.com
sso.claude.com
*.livepreview.claude.app
*.claudeusercontent.com
*.claudemcpcontent.com
Se la tua organizzazione ha IP allowlisting abilitato per Claude, instrada bridge.claudeusercontent.com attraverso lo stesso egresso proxy di claude.ai e api.anthropic.com. Se non puoi instradarlo in quel modo, aggiungi l'indirizzo di egresso che il tuo proxy utilizza per quell'host all'allowlist IP della tua organizzazione, ma solo quando quell'indirizzo è dedicato alla tua organizzazione: un intervallo di egresso proxy condiviso ammette anche gli altri clienti del fornitore proxy.
Anthropic controlla le connessioni a quell'host rispetto all'allowlist IP della tua organizzazione utilizzando l'indirizzo da cui arrivano. Se il tuo proxy invia il traffico per esso attraverso un indirizzo che non è in quell'allowlist, Claude in Chrome e altre funzionalità che si connettono attraverso il bridge smettono di funzionare mentre il resto dell'app continua a funzionare.
Un artefatto che carica un carattere da Google Fonts richiede anche fonts.googleapis.com e fonts.gstatic.com. Entrambi gli host sono facoltativi. Se li blocchi, gli artefatti vengono renderizzati in caratteri di fallback. Blocca con un rifiuto veloce piuttosto che un drop silenzioso in modo che la richiesta di carattere fallisca immediatamente invece di ritardare il primo rendering della pagina.
Gli artefatti possono anche caricare librerie JavaScript, come React o un pacchetto di grafici, da cdnjs.cloudflare.com, cdn.jsdelivr.net, cdn.tailwindcss.com, code.jquery.com e unpkg.com, e da nessun altro host esterno. Se blocchi quegli host, le parti di un artefatto che dipendono da una libreria non funzionano, e a differenza di un carattere bloccato, una libreria bloccata non ha fallback. Blocca con un rifiuto veloce anche qui, in modo che una richiesta di libreria bloccata fallisca subito piuttosto che rimanere in sospeso fino al timeout.
Autenticazione e SSO
Le organizzazioni Team e Enterprise possono richiedere SSO per tutti gli utenti. Vedi autenticazione per i dettagli a livello di piano e Configurazione di SSO per la configurazione SAML; la configurazione OIDC è coperta nella Guida dell'amministratore aziendale di Claude.
Gestione dei dati
Claude Code elabora il tuo codice localmente nelle sessioni locali, o nelle sessioni cloud sull'infrastruttura gestita da Anthropic, a meno che la tua organizzazione non le indirizzi a un ambiente self-hosted. Le sessioni cloud, incluse in un ambiente self-hosted, inviano conversazioni e contesto del codice all'API di Anthropic per l'elaborazione; le sessioni locali e SSH le inviano a qualunque fornitore di modello configura la tua distribuzione, l'API di Anthropic per impostazione predefinita. Vedi gestione dei dati per i dettagli sulla conservazione dei dati, la privacy e la conformità.
Distribuzione
Desktop può essere distribuito tramite strumenti di distribuzione aziendale:
- macOS: distribuisci tramite MDM come Jamf o Kandji usando il programma di installazione
.dmg - Windows: distribuisci tramite il pacchetto MSIX. Vedi Distribuisci Claude Desktop per Windows per le opzioni di distribuzione aziendale inclusa l'installazione silenziosa
Per i domini da inserire nell'allowlist del firewall, vedi requisiti di accesso alla rete sopra. Per le impostazioni proxy, le autorità di certificazione personalizzate e i gateway LLM, vedi configurazione della rete.
Per il riferimento completo della configurazione aziendale, vedi la guida alla configurazione aziendale.
Provieni dalla CLI?
Se usi già la CLI di Claude Code, Desktop esegue lo stesso motore sottostante con un'interfaccia grafica. Puoi eseguire entrambi contemporaneamente sulla stessa macchina, anche sullo stesso progetto. Ognuno mantiene il proprio elenco di sessioni, e puoi portare una sessione CLI in Desktop. Condividono configurazione e memoria del progetto tramite file CLAUDE.md.
Per spostare una sessione CLI in Desktop, esegui /desktop nel terminale. Claude salva la tua sessione e l'apre nell'app desktop, quindi esce dalla CLI. Questo comando è disponibile su macOS e Windows x64 quando sei connesso con un abbonamento Claude. Non è disponibile con autenticazione tramite chiave API o su Amazon Bedrock, Google Cloud's Agent Platform o Microsoft Foundry.
Dalla tua shell, claude --desktop apre Desktop direttamente senza avviare una sessione di terminale. Richiede Claude Code v2.1.285 o successivo e ha gli stessi requisiti di piattaforma e accesso di /desktop. Senza altri argomenti, apre Desktop nella directory corrente. Per aprire una sessione CLI esistente in Desktop, aggiungi --continue per la conversazione più recente in questa directory, o --resume con l'ID della sessione che /status mostra:
claude --desktop --resume <session-id>
Claude Code stampa Opening session <session-id> in Claude Desktop, la sessione si apre nell'app e il comando esce. Un nome di sessione non funziona al posto dell'ID. Claude Code non sposta una sessione che è aperta in un altro terminale o ancora in esecuzione in background. Se Claude Desktop non è installato, il comando stampa un link di download ed esce.
Puoi anche riprendere una sessione CLI da Desktop con /resume. Il comando è disponibile nelle sessioni locali, non in SSH, WSL o sessioni cloud.
Per continuare una sessione di terminale in Desktop:
- Chiudi la sessione nel terminale.
- Nella casella del prompt di Desktop, digita
/resume. Desktop elenca le sessioni che hai avviato dalla CLI su questo computer. Cerca per titolo, cartella o branch, e visualizza in anteprima dove ognuna si è fermata. - Seleziona la sessione. Continua nell'app con la sua conversazione completa e il contesto.
Desktop continua la stessa sessione piuttosto che una copia, quindi claude --resume nel terminale la trova ancora dopo.
[!TIP]
Quando usare Desktop vs CLI: usa Desktop quando vuoi gestire sessioni parallele in una finestra, organizzare pannelli uno accanto all'altro, o rivedere le modifiche visivamente. Usa la CLI quando hai bisogno di scripting, automazione, o preferisci un workflow da terminale.
Equivalenti dei flag CLI
Questa tabella mostra l'equivalente dell'app desktop per i flag CLI comuni. I flag non elencati non hanno equivalente desktop perché sono progettati per scripting o automazione.
| CLI | Equivalente desktop |
|---|---|
--model sonnet |
Selettore del modello nella riga sotto la casella del prompt |
--resume, --continue |
Fai clic su una sessione nella barra laterale, o digita /resume nella casella del prompt per riprendere una sessione che hai avviato dalla CLI |
--permission-mode |
Selettore di modalità nella riga sotto la casella del prompt |
--dangerously-skip-permissions |
Modalità Bypass permissions. Su piani Pro, Max e Ultra, abilita "Allow bypass permissions mode" in Impostazioni > Code o Impostazioni > Claude Code; su piani Team ed Enterprise, la politica organizzativa la controlla |
--add-dir |
Aggiungi cartelle a una sessione nelle sessioni locali e SSH, oppure seleziona più repository in una sessione cloud |
--allowedTools, --disallowedTools |
Nessun equivalente per sessione. Le regole di permesso nei file di impostazioni si applicano ancora. |
--verbose |
Modalità di visualizzazione Verbose |
--print, --output-format |
Non disponibile. Desktop è solo interattivo. |
ANTHROPIC_MODEL env var |
Selettore del modello nella riga sotto la casella del prompt |
MAX_THINKING_TOKENS env var |
Vedi Disattivare il ragionamento esteso |
Configurazione condivisa
Desktop e CLI leggono gli stessi file di configurazione, quindi la tua configurazione viene trasferita:
- I file CLAUDE.md e
CLAUDE.local.mdnel tuo progetto vengono utilizzati da entrambi - I server MCP configurati in
~/.claude.jsono.mcp.jsonfunzionano in entrambi - Gli hook e le skill definiti nelle impostazioni si applicano a entrambi
- Le impostazioni in
~/.claude.jsone~/.claude/settings.jsonsono condivise. Le regole di permesso, gli strumenti consentiti e altre impostazioni insettings.jsonsi applicano alle sessioni Desktop. Alcune chiavi si comportano diversamente nella scheda Code. - Modelli: gli stessi modelli sono disponibili in entrambi. In Desktop, seleziona il modello dal selettore del modello nella riga sotto la casella del prompt. Puoi cambiare il modello durante una sessione dallo stesso selettore.
Server MCP dall'app desktop chat Claude
L'app Desktop carica i server MCP da claude_desktop_config.json nelle sessioni locali della scheda Code, insieme ai server da ~/.claude.json e .mcp.json. Un server definito in claude_desktop_config.json è disponibile sia nella superficie desktop chat sia nelle sessioni locali della scheda Code.
Se definisci lo stesso nome di server in claude_desktop_config.json e in ~/.claude.json o .mcp.json, la scheda Code nelle sessioni locali si connette una volta e utilizza la definizione di claude_desktop_config.json.
L'app inoltre ri-consegna i server stdio da ~/.claude.json alla CLI incorporata nelle sessioni locali. Quando il livello superiore di ~/.claude.json (ambito utente) e .mcp.json definiscono lo stesso nome di server stdio, la scheda Code utilizza la definizione di ~/.claude.json, divergendo dalla gerarchia di ambito della CLI.
[!NOTE]
La CLI standalone non legge
claude_desktop_config.json. Su macOS e WSL, eseguiclaude mcp add-from-claude-desktopper copiare questi server in~/.claude.json. Vedi Importa server MCP da Claude Desktop per il flusso di importazione e le opzioni di ambito.
Confronto delle funzionalità
Questa tabella confronta le capacità principali tra CLI e Desktop. Per un elenco completo dei flag CLI, vedi il riferimento CLI.
| Funzionalità | CLI | Desktop |
|---|---|---|
| Modalità di permesso | Tutte le modalità inclusa dontAsk |
Manuale, Accetta modifiche, Plan e Auto. Bypass permissions appare nel selettore di modalità una volta abilitato: tramite l'interruttore Impostazioni su piani Pro, Max e Ultra, o tramite la politica organizzativa su piani Team ed Enterprise |
| Provider di terze parti | Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry | API di Anthropic per impostazione predefinita. Per il routing tramite gateway, vedi connetti l'app desktop a un gateway. Per eseguire la scheda Code su Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry o un gateway LLM self-hosted, vedi Claude Desktop on 3P. |
| Server MCP | Configura nei file di impostazioni | UI Connectors per sessioni locali e SSH, o file di impostazioni |
| Plugin | Comando /plugin |
UI gestore plugin |
| @mention file | Basato su testo | Con autocomplete, tranne per il primo messaggio di una sessione cloud |
| Allegati di file | Non disponibile | Immagini, PDF |
| Isolamento della sessione | Flag --worktree |
Esegui una sessione nel proprio worktree |
| Sessioni multiple | Terminali separati | Schede della barra laterale |
| Attività ricorrenti | Cron job, pipeline CI | Attività pianificate |
| Utilizzo del computer | Abilita tramite /mcp su macOS |
Controllo di app e schermo su macOS e Windows |
| Simulatore iOS | Guida il simulatore tramite computer use | Riquadro iOS Simulator si apre automaticamente |
| Integrazione Dispatch | Non disponibile | Sessioni Dispatch nella barra laterale |
| Scripting e automazione | --print, Agent SDK |
Non disponibile |
Cosa non è disponibile in Desktop
Le seguenti funzionalità non sono disponibili in Desktop, tranne dove diversamente indicato:
- Provider di terze parti: Desktop si connette all'API di Anthropic per impostazione predefinita. Per instradare Desktop attraverso un gateway, o per eseguire la scheda Code su Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry o un gateway LLM self-hosted, segui i link nella riga Provider di terze parti.
- Linux (beta): Computer Use non è ancora disponibile nell'app desktop Linux. Vedi Claude Desktop su Linux.
- Suggerimenti di codice inline: Desktop non fornisce suggerimenti in stile autocomplete. Funziona tramite prompt conversazionali e modifiche di codice esplicite, e può suggerirti il prossimo prompt dopo che Claude ha risposto.
- Team di agenti: team coordinati, dove Claude come team lead assegna compiti ai compagni di squadra da un elenco di compiti condiviso, sono disponibili nella CLI, non in Desktop. Per il lavoro multi-agente all'interno di una sessione, usa i workflow dinamici, che vengono eseguiti in Desktop; Claude può anche inviare messaggi alle tue altre sessioni e gestirle direttamente.
- Comandi terminal-dialog: i comandi integrati che aprono un pannello interattivo nel terminale si comportano diversamente nella scheda Code. Modifica direttamente i file di impostazioni per gestire le regole di permesso e la configurazione, oppure esegui i comandi dalla CLI standalone.
- I comandi senza forma di argomento, come
/permissions, rispondono conisn't available in this environment. /configapre Impostazioni > Code o Impostazioni > Claude Code.
- I comandi senza forma di argomento, come
Troubleshooting
Le sezioni di seguito coprono i problemi specifici dell'app desktop. Per gli errori API di runtime che appaiono nella chat come API Error: 500, 529 Overloaded, 429 o Prompt is too long, vedi il riferimento degli errori.
Check your version
Per vedere quale versione dell'app desktop stai eseguendo:
- macOS: fai clic su Claude nella barra dei menu, quindi About Claude
- Windows: fai clic su Help, quindi About Claude
Fai clic sul numero di versione per copiarlo negli appunti.
Versione di Claude Code nella scheda Code
Per vedere quale versione di Claude Code esegue una sessione, digita /status in una sessione locale nella scheda Code e leggi la riga Claude Code, che mostra una versione come 2.1.286.
Per ottenere una versione più recente per le sessioni locali, apri Claude > Check for Updates… su macOS o Help > Check for Updates… su Windows, quindi avvia una nuova sessione.
In una sessione locale, la scheda Code esegue una propria copia di Claude Code, che ha un proprio numero di versione. L'app desktop scarica e aggiorna quella copia, quindi può differire dal comando claude nel tuo terminale, e aggiornarne una non aggiorna l'altra.
Verifica quale layout hai
Se una nuova sessione mostra l'ambiente sopra la casella del prompt anziché sotto, hai il layout precedente:
- Desktop precedente alla v2.37337.0: aggiorna per ottenere il layout attuale. Seleziona Claude > Check for Updates… su macOS o Help > Check for Updates… su Windows.
- Provider di terze parti con sessioni sul tuo computer: il layout attuale richiede Claude Desktop v3.1623.0 o successiva, quindi verifica la tua versione. Per aggiornare, seleziona Claude > Check for Updates… su macOS o Help > Check for Updates… su Windows. Se la tua organizzazione disattiva gli aggiornamenti automatici, Check for Updates… è nascosto, quindi chiedi al tuo amministratore la v3.1623.0 o successiva.
- Provider di terze parti con sessioni sull'infrastruttura della tua organizzazione: il layout attuale richiede Claude Desktop v4.29.0 o successiva, quindi verifica la tua versione. Se hai una versione precedente, chiedi al tuo amministratore la v4.29.0 o successiva. Se non sai dove vengono eseguite le tue sessioni, chiedi al tuo amministratore.
Nel layout precedente, scegli l'ambiente ed eventuali cartelle del progetto o repository sopra la casella del prompt, e la modalità di permesso e il modello nella riga sottostante. Il layout precedente non dispone del pannello dei dettagli della sessione e degli ambienti locali e SSH salvati.
403 or authentication errors in the Code tab
Se vedi Error 403: Forbidden o altri errori di autenticazione quando usi la scheda Code:
- Esci e accedi di nuovo dal menu dell'app. Questo è il fix più comune.
- Verifica di avere un abbonamento a pagamento attivo: Pro, Max, Ultra, Team o Enterprise.
- Se la CLI funziona ma Desktop no, esci completamente dall'app desktop, non solo chiudere la finestra, quindi riapri e accedi di nuovo.
- Controlla la tua connessione Internet e le impostazioni del proxy.
Blank or stuck screen on launch
Se l'app si apre ma mostra una schermata vuota o non reattiva:
- Riavvia l'app.
- Controlla gli aggiornamenti in sospeso. Su macOS e Windows l'app si aggiorna automaticamente al lancio; su Linux, aggiorna tramite apt come descritto in Claude Desktop on Linux.
- Su una rete gestita, conferma che il tuo firewall consente gli host CDN nei requisiti di accesso alla rete.
- Su Windows, controlla Event Viewer per i log di crash sotto Windows Logs → Application.
"Failed to load session"
Se vedi Failed to load session, la cartella selezionata potrebbe non esistere più, un repository Git potrebbe richiedere Git LFS che non è installato, o i permessi dei file potrebbero impedire l'accesso. Prova a selezionare una cartella diversa o riavvia l'app.
Session not finding installed tools
Se Claude non riesce a trovare strumenti come npm, node o altri comandi CLI, verifica che gli strumenti funzionino nel tuo terminale regolare, controlla che il tuo profilo shell configuri correttamente PATH e riavvia l'app desktop per ricaricare le variabili di ambiente.
Git and Git LFS errors
Le sessioni che vengono eseguite nel loro proprio worktree hanno bisogno di Git. Se vedi "Git is required," installa Git, o Git for Windows su Windows, e riprova. Su Windows, le versioni di Claude Desktop precedenti a 1.49585.0 chiedevano Git prima di avviare qualsiasi sessione locale; se vedi quel prompt e non stai usando worktrees, aggiorna l'app.
Se vedi "Git LFS is required by this repository but is not installed," installa Git LFS da git-lfs.com, esegui git lfs install e riavvia l'app.
MCP servers not working on Windows
Se gli interruttori del server MCP non rispondono o i server non riescono a connettersi su Windows, controlla che il server sia configurato correttamente nelle tue impostazioni, riavvia l'app, verifica che il processo del server sia in esecuzione in Task Manager e rivedi i log del server per gli errori di connessione.
SSH host key verification failed
Ciascuno di questi messaggi significa che Desktop ha rifiutato una chiave host:
SSH host key verification failedoHost denied (verification failed)sotto View details su una schedaCouldn't connect to <host>Connection failed: Host key changed or not trustedaccanto alla casella del prompt o dopo Test connection<host>'s host key is not trustedo<host>'s host key has changedsu una sessione disconnessa
Desktop di solito rifiuta una chiave perché differisce da quella salvata sul tuo computer, oppure perché non è salvata alcuna chiave per quella macchina. Una macchina ricostruita o reinstallata di solito presenta una nuova chiave, e lo stesso vale per qualcosa che intercetta la connessione. Controlla la chiave prima di connetterti di nuovo, partendo da ciò che Desktop mostra insieme al messaggio:
- Sei su Windows e Desktop dice
Connection failed: Host key changed or not trusted: per prima cosa escludi un client OpenSSH mancante - Desktop ti dice di impostare
UserKnownHostsFile: in~/.ssh/config, impostalo su~/.ssh/known_hosts, quindi controlla la chiave da un terminale - Vedi un pulsante Review new key: selezionalo e confronta l'impronta digitale che Desktop mostra con quella della macchina stessa. Se corrispondono, seleziona Trust new key per sostituire la chiave salvata. Altrimenti seleziona Cancel.
- Non vedi alcun pulsante Review new key, Desktop mostra
Couldn't show the new key, oppure Desktop rifiuta di nuovo la chiave dopo Trust new key: controlla la chiave da un terminale
Controlla la chiave host da un terminale
Esegui ssh <SSH host> sul tuo computer, con il valore SSH host della tua connessione SSH in Desktop. Aggiungi -p <SSH port> se la connessione ha un valore SSH port. Su Windows, usa PowerShell, perché Desktop non si connette con l'ssh di Git Bash o WSL. Se PowerShell non trova ssh, installa il client OpenSSH di Microsoft.
Annota quale macchina ssh nomina nel suo messaggio, che può essere un jump host e non <SSH host>, quindi segui il caso corrispondente:
sshchiede se continuare la connessione: confronta l'impronta digitale che mostra con quella della macchina stessa. Rispondiyessolo se corrispondono.sshavvisa che la chiave host è cambiata: confronta l'impronta digitale dell'avviso con quella della macchina stessa. Solo se corrispondono, elimina la riga indicata daOffending <type> key in <file>:<line>ed esegui di nuovossh. Sesshavvisa di nuovo riguardo a un'altra riga, confronta, elimina ed esegui di nuovo come prima.sshrifiuta una chiave che non conosce, senza chiedere: ottieni la rigaknown_hostsdi quella macchina da chi la gestisce, non tramite la connessione che stai verificando. Aggiungi la riga al tuo fileknown_hosts, con il nome indicato nel messaggio disshcome nome host, ed esegui di nuovossh.sshprocede con l'accesso senza chiederti nulla sulla chiave host: non digitare ancora una password. Controlla le chiavi di cuisshsi fida già.
Una volta che ssh accetta una chiave che hai controllato o aggiunto, riprova in Desktop. Se Desktop rifiuta di nuovo la chiave, vedi Ottieni i log di Desktop per un problema SSH.
Controlla le chiavi di cui ssh si fida già
Esegui di nuovo lo stesso comando ssh aggiungendo -v -S none. Nel suo output, una riga Server host key: mostra un'impronta digitale, e la riga Host '<name>' is known successiva nomina la macchina a cui appartiene. Confronta ogni impronta digitale che trovi con quella della macchina stessa.
- Un jump host non ha alcuna riga
Server host key:: esegui anchessh -v -S none <jump host>e confronta quell'impronta digitale allo stesso modo. - Un'impronta digitale non corrisponde, o non puoi verificarla: non connetterti di nuovo. Rimuovi la chiave salvata: sotto
Host '<name>' is known, la rigaFound key in <file>:<line>nomina il file che la contiene. Eseguissh-keygen -R "<name>" -f <file>. Se conservi le chiavi host in più di un file, rimuovi la chiave da ciascuno. Se non puoi modificare un file, avvisa chi gestisce il tuo computer. - Tutte le impronte digitali corrispondono: riprova in Desktop. Se Desktop rifiuta di nuovo la chiave, vedi Ottieni i log di Desktop per un problema SSH.
Chiave host SSH rifiutata su Windows senza un client OpenSSH
Su Windows senza un client OpenSSH, Desktop rifiuta anche una chiave host corretta, con Connection failed: Host key changed or not trusted. Ha bisogno del client per cercare le chiavi salvate. Per vedere se ne hai uno, esegui ssh in PowerShell. Se PowerShell non riconosce ssh, installa il client OpenSSH di Microsoft e riavvia Desktop.
Quindi connettiti di nuovo. Se Desktop chiede se connettersi per la prima volta, controlla la chiave host della macchina prima di considerarla attendibile. Se Desktop rifiuta ancora la chiave, segui gli altri casi sotto SSH host key verification failed.
La connessione SSH non riesce dopo l'accesso
Trova il titolo della scheda, o il codice alla fine del messaggio di errore, in questa tabella, quindi fai ciò che indica l'ultima colonna. Per vedere il messaggio, seleziona View details sulla scheda dell'errore.
| Titolo sulla scheda | Codice | Cosa fare |
|---|---|---|
<host>'s SSH server has SFTP turned off |
[SFTP_UNAVAILABLE] |
Attiva SFTP nel file sshd_config del server, come descritto nei requisiti della macchina remota |
SFTP doesn't start on <host> |
[SFTP_NOT_STARTED] |
Connettiti allo stesso host con sftp in un terminale sul tuo computer per vedere cosa lo blocca, quindi controlla le impostazioni e i file indicati nel messaggio di Desktop |
<host> allows too few SSH sessions per connection |
[SESSION_LIMIT] |
Aggiorna a Claude Desktop v3.1623.0 o successiva, oppure aumenta MaxSessions nel file sshd_config del server, ad esempio al valore predefinito di OpenSSH, 10 |
<host> is out of disk space |
[ENOSPC] o [EDQUOT] |
Libera spazio o quota sulla macchina remota, nella tua directory home o in /tmp |
Free up disk space on this computer |
[ENOSPC] o [EDQUOT], in un messaggio che inizia con Couldn't prepare the deploy locally |
Libera spazio sul tuo computer |
Claude Code won't start on <host> |
[CLI_UNRESPONSIVE] |
Attendi un minuto, quindi riprova. Se continua a non riuscire, esegui sulla macchina remota il comando indicato nel messaggio per vedere se Claude Code risponde lì. |
Ask <host>'s administrator to let Claude's server run |
[SERVER_NOT_RUNNABLE] o [SETUP_DIR_NOEXEC] |
Chiedi all'amministratore della macchina remota di consentire l'esecuzione di programmi da ~/.claude/remote/ su quella macchina, come indicato nei requisiti |
Try again in a few minutes |
[DOWNLOAD_BUSY] |
Attendi qualche minuto, quindi riprova. Il server di download di Anthropic o un proxy sulla rete del tuo computer ha segnalato di essere occupato. Se la scheda continua a ripresentarsi, chiedi all'amministratore di quella rete se un proxy limita i download. |
Per qualsiasi altro messaggio, controlla i requisiti della macchina remota.
Ottieni i log di Desktop per un problema SSH
Ottieni ssh.log, il log in cui Desktop registra le sue connessioni SSH, in un file zip dei log di Desktop che salvi dal menu Help. Per salvarlo, apri Help > Troubleshooting e seleziona la voce per il tuo sistema:
- macOS: Show Logs in Finder
- Windows: Show Logs in File Explorer
- Linux: Show Logs in File Manager
Esamina i file prima di inviarli, perché possono includere nomi e altri dettagli dal tuo ambiente. <host> e <user> indicano nomi che Desktop ha sostituito. Desktop non sostituisce tutti i nomi, e un nome di host o di utente SSH può comunque apparire così com'è scritto. Se invii il file zip a qualcuno, indica quale host non è riuscito e quando, perché i log potrebbero non nominarlo.
Il file zip non contiene il log del programma helper che Desktop installa sulla macchina remota. Per ottenere anche quel log, copia questi file dalla cartella dell'helper sotto ~/.claude/remote/run/ nella directory home dell'utente che si è connesso:
remote-server.log: il log dell'ultima esecuzione dell'helper.remote-server.log.old, se presente: il log dell'esecuzione precedente. Copialo il prima possibile, perché lo perdi la prossima volta che Desktop si connette e deve avviare di nuovo l'helper.
Esamina anche quei file prima di inviarli.
App won't quit
- macOS: premi Cmd+Q. Se l'app non risponde, usa Force Quit con Cmd+Option+Esc, seleziona Claude e fai clic su Force Quit.
- Windows: usa Task Manager con Ctrl+Shift+Esc per terminare il processo Claude.
Windows-specific issues
- PATH not updated after install: apri una nuova finestra di terminale. Gli aggiornamenti di PATH si applicano solo alle nuove sessioni di terminale.
- Concurrent installation error: se vedi un errore su un'altra installazione in corso ma non ce n'è una, prova a eseguire il programma di installazione come Amministratore.
"Branch doesn't exist yet" when opening in CLI
Le sessioni cloud possono creare branch che non esistono sulla tua macchina locale. Fai clic sul nome del branch nella sessione e seleziona Copy branch name, quindi recuperalo localmente:
git fetch origin <branch-name>
git checkout <branch-name>
Still stuck?
- Apri Help → Get Support nell'app desktop, o visita il centro di supporto Claude direttamente
- Per i problemi che si riproducono anche nella CLI
claudestandalone, cerca o segnala un bug su GitHub Issues
Quando segnali un problema, includi la versione dell'app desktop, il tuo sistema operativo, il messaggio di errore esatto e i log pertinenti. Su macOS, controlla Console.app. Su Windows, controlla Event Viewer → Windows Logs → Application. Rivedi gli estratti dei log prima di pubblicarli in un problema pubblico; possono includere percorsi di file e altri dettagli dal tuo ambiente.