In un panorama dominato da editor AI-first come Cursor, Windsurf o Cline, scegliere uno strumento da terminale per il pair programming può sembrare anacronistico. Eppure Aider, progetto open source con oltre quattro milioni di installazioni e circa quindici miliardi di token elaborati ogni settimana, racconta una storia diversa. Si tratta di una CLI in Python che vive accanto al repository Git, dialoga con praticamente qualsiasi LLM (da Claude 4.6 a GPT-5.5, passando per Gemini 3.1 Pro, DeepSeek V4 e modelli locali via Ollama) e tratta ogni modifica come un commit atomico, firmato, reversibile.
Quando ti colleghi in SSH a un server, lavori su una macchina senza ambiente grafico oppure preferisci Neovim, Helix o JetBrains, Aider rimane uguale a sé stesso, legge file, propone diff e committa, senza lock-in dell’editor, senza subscription forzata, senza dipendenza da un provider specifico. La filosofia git-first fa sì che la cronologia del repository diventi il registro completo di ciò che l’AI ha fatto, quando e perché, con messaggi di commit descrittivi generati automaticamente.
Per chi già pensa in termini di rebase, branch e cherry-pick, questo cambia il rapporto con l’AI. Non c’è più un agente che muta il codice in modo opaco dentro una sandbox, ma un collaboratore che lascia tracce git ortodosse, perfettamente compatibili con code review, blame e pipeline CI già in produzione.
Ogni edit è un commit
Aider committa automaticamente ogni modifica generata dall’AI con messaggi convenzionali, includendo nel testo l’indicazione del modello utilizzato e una descrizione concisa del cambiamento. La scelta sembra banale ma ha conseguenze profonde sull’esperienza quotidiana di chi scrive codice con un assistente. Quando una sessione produce dieci o quindici interventi, ognuno diventa un punto di rollback indipendente, e sbagliare un refactor non significa perdere tutto, perché basta un git revert mirato per tornare allo stato precedente, mantenendo gli altri miglioramenti.
Lo stesso vale per il code review, dove un collega può navigare i diff in GitHub o Forgejo come qualunque altro contributo umano, senza dover ricostruire mentalmente cosa l’agente abbia toccato. Il comando /undo annulla l’ultimo commit della sessione corrente, mentre /diff mostra le modifiche dall’inizio della chat. Questa simmetria con i flussi git già consolidati permette di integrare Aider in pipeline CI senza riscrivere processi, perché gli hook pre-commit funzionano, i linter girano automaticamente dopo ogni edit con --auto-lint e, se imposti --auto-test, Aider rilancia la suite di test, raccoglie eventuali errori e prova a correggersi da solo prima di restituire il controllo.
Per chi lavora su monorepo o codebase con convenzioni rigide, il risultato è una traccia auditabile, dove ogni decisione AI è ricostruibile a partire dalla storia git, senza necessità di database o log esterni.
Architect mode, dividere il pensiero dall’esecuzione
La modalità architect è la caratteristica che distingue Aider dalla maggior parte degli agenti AI in circolazione. Invece di chiedere a un singolo modello sia di ragionare sul problema sia di produrre diff sintatticamente corretti, Aider divide il lavoro. Un architect model pianifica la soluzione in linguaggio naturale, mentre un editor model traduce il piano in modifiche puntuali ai file.
I modelli forti nel reasoning, pensa a Claude Opus 4.7 o a quelli con thinking esteso, eccellono nel comprendere requisiti complessi ma a volte sbagliano la formattazione richiesta dai diff format, mentre quelli più economici e veloci, come Claude Haiku o DeepSeek V4 Flash, sono molto precisi nell’applicare istruzioni puntuali a un file. Accoppiarli significa ottenere ragionamento di alta qualità con un costo per token sensibilmente più basso. Per attivarla basta lanciare aider --architect oppure passare a /chat-mode architect dentro la sessione, con una configurazione tipica come questa.
# .aider.conf.yml
model: anthropic/claude-opus-4-7
editor-model: anthropic/claude-haiku-4-5
auto-accept-architect: trueNei task non banali, come lo scaffolding di nuovi servizi o i refactor multi-file, l’architect mode raggiunge il 60-70% di output corretto al primo tentativo, e il restante 30% si gestisce con due o tre iterazioni in /ask mode, modalità di sola conversazione che permette di discutere l’approccio senza modificare i file finché non sei convinto del piano.
Watch mode, l’AI accanto a Vim, Helix o JetBrains
Tra le funzionalità meno pubblicizzate ma più potenti di Aider c’è la watch mode. Lanciando aider --watch-files in un terminale di servizio, lo strumento monitora silenziosamente i file del repository in attesa di un marker speciale all’interno dei commenti, con tre marker e tre comportamenti distinti. AI! chiede ad Aider di intervenire immediatamente sul codice circostante, AI? apre una conversazione dove l’AI risponde nella chat senza modificare i file, mentre AI senza punteggiatura marca un’istruzione multi-riga che verrà letta solo quando aggiungerai uno dei due marker attivi.
I marker funzionano in qualsiasi linguaggio grazie alla sintassi nativa dei commenti, ovvero # per Python e Bash, // per JavaScript, TypeScript, Go e Java, -- per SQL, <!-- per HTML e Markdown. Il modo più rapido per vederli in azione è il seguente.
def calculate_tax(price, rate):
# Aggiungi validazione input, solleva eccezione su valori negativi. AI!
return price * rateSalvi il file e Aider, in background, propone il fix, lo committa, rimuove il marker, mentre tu non hai mai lasciato Vim, VS Code o l’editor che preferisci. Il risultato è che la classica separazione fra “editor con plugin AI” e “terminale con CLI AI” si dissolve. Continui a vivere nel tuo ambiente, che sia Neovim su un server remoto, JetBrains in locale o persino Helix, e il pair programming arriva attraverso commenti che fanno parte naturale del codice, un flusso di lavoro che si presta particolarmente bene a sessioni lunghe dove formuli richieste mentre stai già pensando alla riga successiva.
Modelli locali con Ollama
Sul fronte dei modelli locali, l’integrazione con Ollama è altrettanto solida. Devstral Small 24B di Mistral, ottimizzato per workflow agentici di software engineering, gira su una GPU consumer con 24 GB di VRAM e tiene testa ai modelli cloud su task di scope contenuto, mentre Qwen3-Coder, con architettura MoE che attiva solo 3,3 miliardi di parametri sui trenta totali, offre prestazioni sorprendenti anche su laptop con 16 GB di RAM. DeepSeek R1 14B rimane la scelta migliore per debugging grazie al reasoning a catena visibile. Per attivarli basta aider --model ollama/devstral-small:24b, e per chi gestisce dati sensibili o codice proprietario questo apre la possibilità di un assistente AI competente senza che una sola riga di codice lasci la macchina dello sviluppatore.
Quando conviene usare Aider
Aider non è un sostituto universale di Cursor, Codex o di Claude Code. Le sessioni con molte iterazioni veloci e GUI ricche di feedback visivo sono spesso più scorrevoli in un editor full-AI. Chi non ha familiarità con git troverà la curva di apprendimento più ripida del previsto, perché molti comandi presuppongono comodità con rebase, stash e branch. Inoltre funzionalità come i parallel agents, disponibili ad esempio in Cline o OpenCode, non hanno equivalente in Aider, che lavora su una conversazione alla volta.
Detto questo, su workflow git-driven, ambienti SSH, server senza interfaccia grafica e codebase dove la tracciabilità delle modifiche AI è un requisito non negoziabile, Aider è difficile da battere per costo, semplicità e controllo. La combinazione architect/editor riduce il conto delle API senza compromettere la qualità sui task complessi, watch mode permette di non abbandonare l’editor preferito, e il supporto nativo a Ollama rende possibile un setup completamente offline.
Il consiglio operativo è di iniziare in piccolo. Installa Aider con python -m pip install aider-install && aider-install, configura un .aider.conf.yml minimo, scrivi tre o quattro convenzioni nel CONVENTIONS.md e lavora per un breve periodo su un progetto reale. Se dopo qualche giorno apri una nuova feature branch e ti viene istintivo invocare aider prima di scrivere la prima riga, hai trovato il tuo workflow.













