01
Lezione uno · ~25 min

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.

Teoria

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
Pratica

Installazione e primo task

Installazione sui tre principali sistemi:

~/install
# Linux Debian/Ubuntu $sudo apt install taskwarrior # Linux Fedora $sudo dnf install task # macOS con Homebrew $brew install task # Windows: nessun supporto nativo. Va installato dentro WSL # (Windows Subsystem for Linux). Da PowerShell come admin: >wsl --install # Poi dentro la shell Ubuntu di WSL: $sudo apt install taskwarrior # Verifica $task --version 3.4.2

Al primo avvio Taskwarrior crea ~/.taskrc e ~/.task/. Aggiungiamo subito qualcosa:

~/primo-task
$task add "Completare la lezione 1 del corso Taskwarrior" Created task 1. $task list ID Age Description Urg 1 4s Completare la lezione 1 del corso Taskwarrior 0
Trucco

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.