Al login di Windows riapre automaticamente le sessioni di Claude Code che avevi
aperte, ognuna in un tab di Windows Terminal, riprese con claude --resume <id>.
L'insieme è dinamico: riapre sempre le sessioni più fresche, quindi se chiudi la #3
e ne apri una #4, al prossimo avvio tornano le tre più recenti. Supporta più cartelle.
- Claude non permette di scegliere né leggere l'ID di una sessione interattiva, e più sessioni girano nella stessa cartella → non si può mappare "tab → ID esatto". Ma le sessioni aperte sono quelle che vengono scritte su disco (le più recenti). Da qui l'euristica.
- Per non richiedere privilegi di amministratore (la creazione di Task pianificati è spesso
bloccata su macchine gestite/aziendali) si usa la cartella Esecuzione automatica
(
shell:startup, scrivibile dall'utente): niente admin.
- Windows 10/11 con Windows Terminal (
wt.exe) - PowerShell 7+ (
pwsh.exe) - Claude Code CLI (
claude.exe) nel PATH
Al login agent.ps1 (lanciato nascosto dal .vbs in Esecuzione automatica):
- Restore una tantum — per ogni cartella in
settings.json:- recency-cluster: riapre le sessioni attive entro
activityWindowMinutesdall'ultima attività di quella cartella; - per la cartella
primaryin più: alza il numero fino al conteggio deiclaude.exevivi salvato in~/.claude/wt-restore/last-count.json, così recupera anche sessioni aperte ma inattive.
- recency-cluster: riapre le sessioni attive entro
- Loop di snapshot — ogni
snapshotEveryMinutesconta iclaude.exevivi e li salva inlast-count.json, così allo spegnimento il valore è fresco per il login successivo.
| File | Ruolo |
|---|---|
settings.json |
Config utente (cartelle, finestra attività, layout, cadenza) |
config.ps1 |
Carica il JSON + helper |
agent.ps1 |
Processo di avvio: restore una tantum + loop di snapshot |
restore.ps1 |
Selezione sessioni e lancio di Windows Terminal (-DryRun per provare a vuoto) |
snapshot.ps1 |
Snapshot singolo del conteggio (uso manuale/diagnostico) |
install.ps1 |
Mette il launcher in Esecuzione automatica + disattiva persistedWindowLayout (backup) |
uninstall.ps1 |
Rimuove il launcher, ferma l'agent, ripristina settings.json |
# dalla cartella del repo, in una PowerShell normale (NON serve admin)
.\install.ps1Poi azione manuale: in Windows Terminal → Impostazioni → Avvio disattiva "Avvia all'avvio del computer" (a lanciare WT ci pensa l'agent).
# 1) vedere cosa farebbe, senza aprire nulla:
.\restore.ps1 -DryRun
# 2) prova end-to-end del launcher (ATTENZIONE: riapre le sessioni piu' fresche,
# incluse quelle eventualmente gia' aperte -> falla quando NON hai Claude aperti
# che non vuoi duplicare):
wscript "$env:APPDATA\Microsoft\Windows\Start Menu\Programs\Startup\wt-claude-restore.vbs".\uninstall.ps1settings.json è locale (nel .gitignore): copialo da settings.example.json oppure
lascia che install.ps1 lo generi dai default al primo avvio, poi modificalo.
{
"recencyDays": 7, // non riaprire sessioni piu' vecchie di N giorni
"maxTabsPerFolder": 8, // tetto di sicurezza sui tab per cartella
"layout": "tab", // "tab" oppure "pane" (riquadri affiancati)
"activityWindowMinutes": 45, // ampiezza del cluster di attivita' recente
"snapshotEveryMinutes": 2, // cadenza del campionamento del conteggio
"folders": [
{ "path": "C:\\devprojects", "primary": true }
// aggiungi altre cartelle qui, es:
// , { "path": "C:\\devprojects\\backend.mdm", "primary": false }
]
}Nota: una cartella viene ripristinata solo se ci hai davvero avviato Claude da lì (esiste
il suo store in ~/.claude/projects/<cartella-encoded>); altrimenti viene saltata.
- Il conteggio
claude.exeè globale (l'ID processo non espone la cartella): serve solo ad "alzare" la cartellaprimary. La guardiarecencyDaysevita di far resuscitare sessioni vecchie se il conteggio è gonfiato da Claude aperti altrove. - Una sessione aperta ma inattiva oltre
activityWindowMinutessu una cartella non-primary può non essere ripresa (sulla primary la salva il conteggio processi). - Se una chiusura è brutale, l'ultimo
last-count.jsonresta quello dell'ultimo campionamento (≤snapshotEveryMinutesminuti prima): differenza trascurabile. - Log diagnostico:
~/.claude/wt-restore/wt-claude-restore.log.
Progetto non ufficiale e non affiliato ad Anthropic o Microsoft. "Claude", "Claude Code" e "Windows Terminal" appartengono ai rispettivi proprietari.
Gli script modificano la tua configurazione: aggiungono un launcher alla cartella
Esecuzione automatica, avviano un processo in background e cambiano firstWindowPreference
in settings.json di Windows Terminal (con backup .wcr-backup). Nessun dato viene inviato
in rete e non si leggono i contenuti delle conversazioni: si usano solo i nomi dei file di
sessione (gli UUID) e il conteggio dei processi. Leggi il codice prima di eseguirlo e usalo
a tuo rischio. Rimozione completa con uninstall.ps1.
MIT — vedi LICENSE.