Quando lavoro con Claude Code raramente ho una sola sessione aperta. Una sistema il sito, una scrive i test di un altro progetto, una terza sta facendo una ricerca nel codice. Funziona benissimo, finché non ti accorgi che una di loro è ferma da dieci minuti ad aspettare un tuo «sì» su un comando, sepolta in una scheda del terminale che non stavi guardando.
Per questo ho scritto Sessions Monitor: un piccolo widget per Windows, gratuito e open source, che mette tutte le sessioni in una finestra sola.
Il problema: troppe sessioni, nessuna visione d'insieme
Con più sessioni di Claude Code aperte perdi di vista chi sta lavorando, chi ha finito e chi aspetta te. E non sai quanta memoria, CPU e contesto sta consumando ciascuna.
Le domande che mi facevo erano sempre le stesse: quale sessione mi sta chiedendo un permesso? Quella che ho lasciato a metà ha finito? Perché il PC è diventato lento, quale processo sta mangiando la RAM? Quanto mi resta del limite settimanale del piano? Rispondere voleva dire aprire una scheda dopo l'altra.
Cos'è Sessions Monitor
È un widget per Windows che elenca ogni sessione di Claude Code in esecuzione, mostra quanto consuma, segnala quali aspettano una tua risposta e permette di chiuderne una, solo dopo una conferma.
È scritto in Python e usa solo la libreria standard: niente pip install, niente dipendenze da aggiornare. L'interfaccia è in italiano o in inglese, scelta in base alla lingua di Windows.
Cosa vedi a colpo d'occhio
Per ogni sessione: nome, cartella, modello, modalità dei permessi, CPU e RAM con i processi figli, dimensione del contesto e token di output. Il colore del pallino dice in che stato si trova.
- Azzurro: la sessione sta lavorando.
- Ambra lampeggiante: aspetta te, per una domanda, un piano da approvare o una richiesta di permesso.
- Verde: ha finito.
In cima ci sono il numero di sessioni, quante sono in attesa e il consumo totale, più le due barre dell'usage del piano (sessione e settimana) con l'orario di reset. Da ogni riga puoi portare in primo piano il terminale della sessione, selezionando anche la scheda giusta di Windows Terminal, oppure aprire la sua cartella.
La finestra è responsive: stretta (circa 340 pixel) sta in un angolo dello schermo come widget, a schermo intero mostra i grafici in tempo reale di CPU, RAM e contesto. Clicchi una sessione o un grafico per accenderlo o spegnerlo.
Installazione in tre comandi
Servono Windows 10 o 11, Python 3.9 o superiore con tkinter (è già incluso nell'installer di python.org) e Claude Code. Poi bastano tre comandi in PowerShell.
Se non hai Python, scaricalo da python.org. Poi:
git clone https://github.com/Andrew3run/claude-code-sessions-monitor.git
cd claude-code-sessions-monitor
.\install.ps1
pythonw claude_monitor.pyw
install.ps1 è facoltativo: crea un collegamento sul Desktop (con -Remove lo elimina). In alternativa basta un doppio clic su claude_monitor.pyw. Il programma accetta anche qualche opzione:
--lang ito--lang enper forzare la lingua.--demoper provare l'interfaccia con sessioni finte: non legge nulla di reale e non può chiudere nulla.--versionper vedere la versione installata.
Posizione, dimensione e filtri della finestra vengono ricordati in %APPDATA%\claude-sessions-monitor\config.json.
Mostrare l'usage del piano
Le due barre dell'usage sono facoltative. Claude Code passa i limiti del piano al comando della status line: basta salvarli in un file e il monitor li legge.
Nella repo c'è statusline-usage.js: puoi usarlo direttamente come status line, oppure copiare il blocco indicato nello script che usi già. Scrive solo i dati di rate_limits in ~/.claude/usage-snapshot.json, in locale. Senza, il monitor funziona lo stesso e le due barre restano vuote.
Come funziona dietro le quinte
Il monitor non parla con Claude Code e non usa la rete: legge i file che Claude Code scrive sul disco e chiede a Windows i consumi dei processi.
~/.claude/sessions/<pid>.jsondice quali sessioni sono vive, con nome e stato. Il pid viene confrontato con l'ora di avvio del processo, così un numero riutilizzato da Windows non viene scambiato per una sessione.- I transcript in
~/.claude/projects/danno token, modello, modalità dei permessi e chiamate in sospeso. Vengono letti in modo incrementale, solo la parte nuova. - CPU, RAM e processi figli (per esempio i server MCP) arrivano dalle API Win32 tramite
ctypes. - L'usage del piano arriva dal file scritto dalla status line.
Lo stato «in attesa» è dedotto dal transcript. Una domanda o un piano da approvare in sospeso sono certi; per gli altri strumenti, una chiamata senza risposta da più di otto secondi con il processo fermo viene segnalata come richiesta di permesso.
Sicurezza e limiti
Il monitor è di sola lettura: non avvia sessioni, non ne è il processo padre e chiuderlo non chiude nulla. Non accede alla rete e non raccoglie telemetria.
L'unica azione che tocca una sessione è il pulsante ✕, che chiede sempre conferma. Prima di terminare controlla che il pid corrisponda ancora allo stesso processo, poi chiude la sessione e i suoi figli. Il lavoro in corso in quella sessione va perso, quindi usalo per le sessioni bloccate o dimenticate.
Qualche limite da conoscere:
- Funziona solo su Windows.
- È un progetto non ufficiale, non affiliato ad Anthropic. Legge file che Claude Code non documenta: un aggiornamento può rompere qualche parte.
- La richiesta di permesso è dedotta, quindi può sbagliare: un comando lungo che aspetta la rete può sembrare una richiesta.
- La scheda giusta del terminale si trova solo con Windows Terminal e se non hai rinominato la scheda; altrimenti viene portata in primo piano solo la finestra.
- La barra del contesto assume una finestra da un milione di token (si cambia in
CONTEXT_WINDOWnel codice).
Provalo e dimmi cosa ne pensi
Il codice è su GitHub con licenza MIT: puoi usarlo, modificarlo e ridistribuirlo. Se hai un'idea o trovi un problema, apri una issue.
- Repository: github.com/Andrew3run/claude-code-sessions-monitor
- Guida completa in italiano: README.it.md
- Segnalazioni e idee: issues
L'ho costruito proprio lavorando con Claude Code, un passo alla volta. Se vuoi capire come lo faccio, parti da perché nel vibe coding devi sapere cosa stai costruendo e, prima di pubblicare qualcosa, passa dalla checklist di sicurezza.