Introduzione e installazione
Capire cos'è Taskwarrior, perché un task manager da terminale ha ancora senso nel 2026, e prepararsi un ambiente pulito su cui costruire.
Cos'è (e cosa non è) Taskwarrior
Taskwarrior è un task manager a riga di comando scritto in C++, open source,
pensato attorno a una filosofia precisa: lo strumento è veloce, locale e il flusso
di lavoro è guidato dalla tastiera. A partire dalla versione 3.0
i dati sono memorizzati in un database SQLite (~/.task/taskchampion.sqlite3)
gestito dal nuovo motore Taskchampion. Niente cloud obbligatorio, niente
account: tutto resta in locale, e quando ti serve esportare i dati lo fai in JSON
con task export.
Nota importante per chi viene da Taskwarrior 2.x: lo storage in flat file è stato rimpiazzato, e la sincronizzazione via taskd/Taskserver non esiste più. Vedremo il nuovo sistema nella lezione 10.
Si ispira alla scuola GTD (Getting Things Done) ma non la impone: puoi usarlo come una semplice todo list o costruirci un sistema completo con progetti, contesti, dipendenze e calcolo automatico dell'urgenza.
- Niente UI grafica: l'output è testo, ed è la sua forza
- Estremamente componibile con altri tool UNIX (grep, awk, hook, script)
- Configurazione completa in un singolo file:
~/.taskrc
Installazione e primo task
Installazione sui tre principali sistemi:
Al primo avvio Taskwarrior crea ~/.taskrc e ~/.task/.
Aggiungiamo subito qualcosa:
Versiona la configurazione, esporta i dati per i backup
Da Taskwarrior 3 i dati vivono in un file SQLite binario: non ha senso versionarlo con git. Ma puoi (e dovresti) farlo con due cose separate, fin dal primo giorno:
1. Versiona .taskrc con git insieme ai dotfiles.
Il file di configurazione crescerà col tempo con alias, report custom, UDA,
coefficienti di urgenza personalizzati. Quando lo romperai sperimentando — e
succederà — avere uno storico ti salva ore. Bonus: configuri una macchina nuova
in 10 secondi.
2. Per i dati, fai un export JSON periodico e versiona quello.
Un comando come task export > ~/dotfiles/taskwarrior-backup.json
su un cron giornaliero ti dà uno snapshot leggibile, diff-abile in git e
importabile con task import in caso di disastro. È il sostituto
1:1 del vecchio "versiono i dati con git" della 2.x — semplicemente lo fai sul
formato giusto, il JSON, non sul database.
Consiglio gemello: non editare mai .taskrc a mano se
puoi evitarlo. Usa task config nome.opzione valore:
Taskwarrior valida la modifica e mantiene il file pulito.