← Torna al blog

Un’idea di Alessio Sferro, realizzata con OpenAI GPT-5 tramite Codex. Alessio ha descritto il funzionamento che cercava e ha testato personalmente il programma. Il codice è stato scritto dall’assistente AI.

Stare alla scrivania per tre ore non significa studiare per tre ore. Alessio cercava un modo semplice per distinguere il tempo di studio dalle pause e ricordare che cosa aveva fatto in ogni sessione.

Da qui nasce Cronometro, una piccola applicazione Python da usare nel terminale. Salva le sessioni in un normale file di testo, che puoi leggere, copiare o modificare con l’editor che preferisci. Per usarlo basta Python: non servono librerie esterne o un database.

Quanto tempo ho studiato davvero?

Una telefonata, un caffè, una pausa che si allunga: il timer continua a contare, anche quando lo studio si ferma. Cronometro permette di sospendere il conteggio e riprenderlo nella stessa sessione, mostrando separatamente il tempo di studio e quello delle pause.

Il flusso è volutamente essenziale: start chiede l’obiettivo e avvia una sessione, pausa la sospende e può registrare il motivo dell’interruzione, mentre riprendi continua dalla durata accumulata. Per ogni pausa il programma conserva automaticamente anche gli orari di inizio e fine. Il comando stato mostra i valori correnti, mentre oggi somma quanto registrato nella giornata senza fermare il cronometro.

Durata: 00:42:18 | Pause: 00:05:31 | Stato: in pausa
> riprendi

Un diario che puoi leggere con qualsiasi editor

Ogni sessione conserva l’ora di inizio, la durata effettiva, il totale delle pause, l’ora di fine, l’obiettivo e il suo esito. La tabella assegna un numero progressivo alle sessioni e presenta le pause in un blocco separato: per ciascuna mostra inizio, fine, durata e motivazione. Se non viene inserita una motivazione compare un trattino, senza perdere l’informazione temporale.

Lunedì 14 Settembre 2026
========================
Sessione | Inizio   | Fine     | Lavoro   | Pause
---------+----------+----------+----------+----------
       1 | 17:20:45 | 20:50:45 | 03:00:00 | 00:30:00
          Obiettivo : Completare il capitolo
          Esito     : raggiunto
          Pause:
            # | Inizio   | Fine     | Durata   | Motivo
          ----+----------+----------+----------+------------------------------
            1 | 18:10:00 | 18:25:00 | 00:15:00 | Telefonata
            2 | 19:30:00 | 19:45:00 | 00:15:00 | —

=========+==========+==========+==========+==========
Totale   |          |          | 03:00:00 | 00:30:00

Obiettivi raggiunti:
  - Completare il capitolo
Obiettivi non raggiunti:
  - Nessuno
Riepilogo finale: Capitolo completato e appunti revisionati.

Con stop il programma chiede se l’obiettivo è stato raggiunto, salva la sessione e resta aperto. Con completa chiude la giornata, calcola i totali, raggruppa gli obiettivi raggiunti e non raggiunti, chiede un riepilogo finale facoltativo e aggiorna il totale complessivo del file.

Il file funziona anche come diario di studio. Il riepilogo mostra a colpo d’occhio il tempo dedicato a ogni sessione; il dettaglio delle pause aiuta a capire dove sono finite le ore. Le nuove registrazioni si aggiungono a quelle esistenti, senza cancellarle né duplicare intestazioni e totali.

Restare dentro il terminale

Alessio usa già il terminale per esercizi e progetti. Avviare il timer da lì permette di tenere traccia della sessione senza aprire un’altra applicazione.

Per eseguirlo bastano Python 3.9 o una versione successiva e il percorso del file in cui salvare le sessioni:

python3 cronometro.py "$HOME/Documents/studio.txt"

È possibile anche installarlo in ~/.local/bin e richiamarlo direttamente con il comando cronometro. I comandi principali hanno abbreviazioni rapide e sono disponibili sia in italiano sia in inglese.

I casi meno evidenti

Il progetto usa soltanto la libreria standard di Python, ma gestisce diversi casi meno evidenti: più pause nella stessa sessione, più sessioni nello stesso giorno, giornate già completate che vengono riaperte, totali complessivi da ricalcolare e compatibilità con i dati prodotti dalle versioni precedenti.

Il progetto include test automatici, scritti da OpenAI GPT-5 tramite Codex, per il conteggio delle pause, gli obiettivi, la formattazione e i totali. Controllano anche che i dati restino leggibili dopo più sessioni. Con pochi comandi a disposizione, conta soprattutto che il comportamento sia prevedibile.

Perché pubblicarlo

Cronometro è nato per una routine di studio personale, ma può essere utile anche ad altri. Il codice è su GitHub con licenza MIT: puoi provarlo, leggere come funziona e adattarlo alle tue abitudini.

Prova Cronometro

Nel repository trovi il codice, i comandi completi, le istruzioni di installazione e i test.

Apri il progetto su GitHub