Vai al contenuto principale

Roo Code: una guida con sette esempi pratici

Scopri come installare e usare Roo Code, un assistente di coding AI open-source, e confronta funzionalità e caratteristiche con Cline.
· 12 min leggi

Scopri con l'IA

Se hai cliccato su questo articolo, probabilmente usi uno dei tanti agenti di coding basati su AI e vuoi capire come si posiziona Roo Code. Be’, se dovessi riassumere Roo Code in poche parole, direi:

  • Open-source
  • Più modalità di interazione e personas
  • Attività boomerang
  • Sistema di checkpoint in stile Git
  • Profonda personalizzazione
  • Gestione avanzata del contesto

Questi sono i vantaggi che Roo Code offre in aggiunta alle funzionalità comuni a tutti gli agenti di coding AI, come supporto MCP, chat sul codebase, esecuzione di comandi da terminale ed editing dei file.

In questo tutorial esploreremo Roo Code e tutte le funzionalità citate nel dettaglio e lo confronteremo con Cline. Passeremo attraverso esempi pratici e vedremo come le sue diverse modalità di interazione lo facciano emergere nel mercato affollato degli agenti AI.

Che cos’è Roo Code e cosa può fare?

Roo Code è un assistente di coding AI open-source che funziona come estensione di VS Code. A differenza dei tipici strumenti di autocompletamento, è un partner di sviluppo personalizzabile in grado di creare file, eseguire comandi da terminale, navigare siti web e gestire attività multi-step attraverso modalità specializzate. Hai un controllo granulare su tutto, dalle autorizzazioni di auto-approvazione ai provider di indicizzazione del codebase.

Lo strumento supporta più provider AI, inclusi Anthropic, OpenAI, Google Gemini, AWS Bedrock e modelli locali tramite Ollama. Comprende codebase estesi tramite indicizzazione semantica configurabile e include automazione del browser, supporto al protocollo MCP e condensazione intelligente del contesto per progetti complessi.

Ecco cosa distingue Roo Code:

  • Più modalità di interazione: passa tra Architect (pianificazione), Code (implementazione), Ask (domande), Debug (risoluzione problemi) e modalità personalizzate per le diverse fasi di sviluppo
  • Profili di configurazione: assegna modelli AI e impostazioni diverse a modalità specifiche, ad esempio usare o3 per la pianificazione architetturale e Claude Sonnet 4 per l’esecuzione del codice
  • Attività boomerang: coordina workflow complessi che si spostano automaticamente tra modalità e personas diverse
  • Gestione avanzata del contesto: configura i limiti di contesto, abilita la condensazione automatica e controlla esattamente quali informazioni includere in ogni conversazione
  • Indicizzazione del codebase personalizzabile: scegli i tuoi provider di embedding e i database vettoriali per la ricerca semantica del codice, con pieno controllo su comportamento di ricerca e privacy

Questa combinazione trasforma Roo Code da semplice assistente a un ambiente di sviluppo configurabile che si adatta ai tuoi schemi di lavoro e scala con le esigenze del progetto.

Installazione e configurazione di Roo Code

Roo Code si installa facilmente dal marketplace delle estensioni di VS Code:

Estensione Roo Code AI assistant nel marketplace di VS Code

Dopo l’installazione, riavvia VS Code (o Cursor, Windsurf) e l’estensione Roo Code apparirà nella barra laterale sinistra. Cliccaci e segui le istruzioni a schermo per la creazione dell’account e la configurazione iniziale. Dovresti vedere questa interfaccia:

Interfaccia di Roo Code AI assistant con pannello chat e opzioni di comando in VS Code

Poi dovrai selezionare un provider di modelli dalle impostazioni, perché Roo Code è open-source e non include crediti prepagati:

Interfaccia di configurazione API di Roo Code con selezione del provider e campi per chiavi API

Roo Code funziona con tutti i principali (e minori) vendor AI. Anche se io personalmente uso solo i modelli Claude, puoi optare per router di terze parti come OpenRouter, Requesty o soluzioni enterprise come Google Vertex e AWS Bedrock. Ti suggerisco di iniziare con OpenRouter.

Roo Code offre 5 $ di credito, e puoi configurarlo con una sola chiave API ottenendo accesso a tutti i modelli ospitati da OpenRouter (praticamente qualunque modello ti venga in mente). Dopo aver impostato la chiave API di OpenRouter, ricordati di scorrere in basso nella stessa pagina delle impostazioni e abilitare il reasoning per il modello scelto (in questo tutorial useremo Claude 4 Sonnet):

Impostazioni di reasoning di Roo Code con campi per max tokens e max thinking tokens

Ora sei pronto per iniziare a usare Roo Code!

Come usare Roo Code: 7 esempi pratici

In questa sezione esploreremo tutte le principali funzionalità di Roo Code costruendo un semplice gioco del tris 4x4. L’esempio è sufficientemente semplice per mantenere bassi i costi API durante la sperimentazione, ma abbastanza completo da mettere in mostra tutte le feature.

Iniziamo!

Configurare l’auto-approve

All’inizio abbiamo detto che Roo Code consente un controllo quasi totale sul comportamento dell’agente di coding. Questo si riflette in tutte le funzionalità offerte da Roo Code — a partire dalle impostazioni di auto-approve:

Impostazioni di auto-approve di Roo Code con autorizzazioni dettagliate

Il controllo granulare dell’auto-approve è importante perché ti permette di decidere esattamente quali azioni dell’AI avvengono automaticamente e quali richiedono prima la tua approvazione. Puoi far passare senza interruzioni le attività di routine come piccole modifiche al codice, mantenendo invece sotto revisione manuale azioni più grandi come eliminazioni di file o comandi da terminale per evitare sorprese indesiderate.

Usare le diverse modalità in Roo Code

Roo Code adotta un approccio ragionato allo sviluppo con AI che lo distingue da strumenti come Cursor o Windsurf. Mentre la maggior parte degli IDE agentici ti spinge subito in modalità esecuzione appena descrivi ciò che vuoi, Roo Code riconosce che partire a codare senza una corretta pianificazione spesso crea problemi.

Voglio costruire un gioco del tris 4x4 in Python con un’interfaccia da terminale pulita.

Il gioco deve supportare due giocatori a turni, rilevare vittorie su righe, colonne,

e diagonali, e gestire i pareggi. Deve avere elementi colorati, non solo bianco e nero, ma il sistema di colori deve essere minimalista.

Pensa agli svantaggi dell’esecuzione immediata: codice che non si allinea con l’architettura generale, implementazioni affrettate che creano debito tecnico e soluzioni che mancano i casi limite perché non c’è stato il tempo di ragionare sui requisiti. Questi problemi si sommano nel tempo, creando grattacapi di manutenzione e costringendoti a rivedere lavori che sembravano “finiti”.

Ecco perché Roo Code offre diverse modalità di interazione per le varie fasi dello sviluppo software:

  • Architect mode: pianifica e progetta prima dell’implementazione
  • Code mode: scrivi, modifica e refactora il codice
  • Ask mode: ottieni risposte e spiegazioni
  • Debug mode: diagnostica e correggi i problemi software
  • Orchestrator mode (attività boomerang): coordina le attività su più modalità
  • Modalità personalizzate: crea personas specializzate come uno scrittore di documentazione o un esperto di refactoring

Puoi cambiare modalità dal menu a discesa in basso a sinistra o usare i comandi con slash come /ask, /architect, /debug, /code nel campo chat. Apprezzo in particolare avere una modalità dedicata alle domande che non influisce sul progetto o sul suo codice — cosa che faccio continuamente nei miei progetti. In altri IDE questo significa passare a un nuovo thread di chat o usare ChatGPT/Anthropic, interrompendo sempre il flusso di lavoro.

Architect mode in azione in Roo Code

Queste modalità non sono semplici variazioni dello stesso agente con prompt diversi. Ogni modalità include strumenti e permessi di accesso predefiniti dal team di Roo Code. Per esempio, mentre Architect mode è in sola lettura sul tuo progetto, Code mode ha accesso a tutti gli strumenti come editing, comandi da terminale e MCP.

Un esempio di todo list generata dalla modalità architect di Roo Code

La modalità Debug merita una menzione speciale perché usa un approccio matematico per restringere le possibilità del bug, con istruzioni personalizzate per riflettere, distillare le ipotesi, aggiungere log (cosa che gli LLM raramente fanno se non esplicitamente richiesto) e confermare prima di correggere.

Altre caratteristiche delle modalità che le rendono potenti:

  • Modelli appiccicosi: puoi assegnare a ogni modalità un modello AI diverso, come o3 per Architect e Claude Sonnet 4 per l’esecuzione del codice (una combinazione potente). Questi modelli assegnati persistono anche quando cambi modalità o riavvii VS Code.
  • Switching consapevole del contesto: Roo può chiedere il permesso di cambiare modalità a metà attività in base al contesto, assicurandoti di usare sempre lo strumento giusto per il lavoro.

Roo Code vuole cambiare modalità a metà attività

  • Piena personalizzazione: se le modalità predefinite non ti bastano, puoi ritoccare i loro system prompt (anche se non consigliato), aggiungere istruzioni personalizzate o creare modalità completamente su misura per i tuoi compiti specifici. Consulta la documentazione sulle modalità personalizzate per istruzioni dettagliate su come costruire personas specializzate.

Un esempio di gioco del tris generato da Roo Code

Gioco finale generato da Roo. La griglia di riferimento delle posizioni sembra sballata perché tutti gli LLM hanno problemi a contare e allineare l’output nel terminale.

Uso dei profili di configurazione

Un’altra funzionalità unica di Roo Code è la possibilità di creare profili di configurazione personalizzati. Mentre le modalità di interazione determinano il comportamento dell’agente, i profili di configurazione ti permettono di personalizzarlo a livello di API creando diverse configurazioni LLM con impostazioni di modello differenti.

Quando configuri un provider come OpenRouter, vedrai un profilo predefinito accanto alla modalità di interazione in basso a sinistra dell’interfaccia. Aprendo le impostazioni scoprirai che questo profilo di default contiene configurazioni specifiche per il modello scelto, come Claude 4 Sonnet, con limiti di reasoning, rate limit e parametri di temperatura specifici.

Configurazione di un profilo modello in Roo Code

Cliccando sull’icona con il più, puoi creare ulteriori profili di configurazione da assegnare in seguito a diverse modalità di interazione. Questo apre possibilità interessanti:

  • Per una modalità personalizzata di scrittura documentazione, potresti scegliere Gemini 2.0 Flash con bassa temperatura per creare rapidamente contenuti
  • Creare un altro profilo con il massimo dei thinking token per la modalità architect o debug quando servono piani strategici complessi o correzioni persistenti di bug
  • Impostare temperature diverse per compiti creativi rispetto a lavori analitici
  • Configurare profili specializzati per diversi provider di modelli, passando tra OpenAI, Anthropic o modelli locali in base al task

La possibilità di abbinare modelli e configurazioni specifiche a modalità di interazione specifiche ti dà un controllo che non trovi in altre piattaforme agentiche. Potresti far gestire la pianificazione architetturale a o3 mini mentre Claude Sonnet 4 esegue il codice, ciascuno con le proprie impostazioni ottimizzate.

Configurazione dell’indicizzazione del codebase

Roo Code ti permette di configurare un aspetto che la maggior parte delle piattaforme di coding agentico tiene chiuso: l’indicizzazione del codebase. Questa funzione alimenta query in linguaggio naturale come “Come viene gestita l’autenticazione?” o “Mostrami dove cancelliamo i record dei clienti”, anche quando non conosci funzioni o nomi file specifici.

Impostazioni di indicizzazione del codebase in Roo Code

Mentre altri IDE nascondono agli utenti i loro provider di embedding, Roo Code ti dà pieno controllo su come il tuo codebase viene indicizzato e ricercato. Questa trasparenza conta perché modelli di embedding diversi eccellono in compiti diversi, e potresti voler elaborazione locale per progetti sensibili o soluzioni cloud per comodità.

Il sistema richiede due componenti per funzionare:

  • Un provider di embedding per convertire il codice in vettori ricercabili
  • Un database vettoriale per archiviare e cercare quei vettori

Per il provider di embedding, puoi scegliere tra:

  • Google Gemini (attualmente gratuito e consigliato per iniziare)
  • OpenAI (modelli di text-embedding)
  • Ollama (per un’operatività completamente locale)
  • Provider compatibili con OpenAI (come i deployment Azure)

Per il database vettoriale, le opzioni includono:

  • Qdrant Cloud con un piano gratuito per sperimentare
  • Qdrant locale in esecuzione su Docker per la massima privacy

Entrambe le configurazioni non costano nulla per iniziare.

Oltre alla scelta dei provider, Roo Code ti permette di regolare finemente il comportamento di ricerca:

  • Soglia del punteggio di ricerca: controlla quanto il codice deve essere simile per corrispondere alla tua query. Valori più bassi (0,15–0,3) restituiscono risultati più ampi, utili per esplorare, mentre valori più alti (0,6–0,8) danno solo corrispondenze precise. Il default di 0,4 bilancia precisione e copertura.
  • Massimo risultati di ricerca: imposta quanti snippet di codice vengono restituiti in una singola ricerca per controllare il contesto senza sovraccaricare l’AI.

La flessibilità di configurazione offre diversi vantaggi:

  • Ricerca semantica: trova il codice per significato anziché per parole chiave esatte
  • Scoperta cross-project: cerca in tutti i file, non solo in quelli aperti
  • Riconoscimento di pattern: individua implementazioni simili e pattern di codice nel progetto
  • Controllo della privacy: mantieni tutto in locale con Ollama e Qdrant su Docker, oppure usa provider cloud per la comodità

Il sistema di indicizzazione rispetta i pattern di ignore del tuo progetto da .gitignore e .rooignore, quindi non perderà tempo a processare cartelle di dipendenze come node_modules. Inoltre monitora i cambiamenti ai file e aggiorna l’indice automaticamente, così le ricerche restano aggiornate mentre scrivi codice.

Configurare il contesto

La finestra di contesto è forse il vincolo più importante dei modelli di coding. La dimensione della finestra determina quante informazioni l’AI può considerare in una volta, influenzando direttamente la sua capacità di comprendere il progetto e prendere decisioni informate su più file.

Per questo l’ingegneria del contesto è cruciale: è il processo di progettazione del flusso di informazioni che entra nel contesto del modello. Anche qui, Roo Code ti consente un controllo di basso livello su ciò che entra nel contesto e ciò che resta fuori.

Impostazioni di gestione del contesto in Roo Code

Nelle impostazioni c’è un pannello separato per configurare il contesto. Da lì puoi impostare:

  • Limite contesto schede aperte: controlla quante file aperti vengono inclusi automaticamente
  • Limite contesto file dell’area di lavoro: imposta il numero massimo di file dell’area di lavoro leggibili
  • Limite letture concorrenti di file: gestisce quanti file possono essere processati simultaneamente
  • Righe lette per file: limita il numero di righe lette da ciascun file (-1 per l’intero file)

Impostazioni di gestione del contesto in Roo Code

Scorrendo nello stesso pannello, vedrai un’altra opzione per attivare automaticamente la condensazione intelligente del contesto. Quando la finestra di contesto si riempie oltre una certa soglia, si attiva un prompt di sintesi personalizzato (puoi scriverlo tu). Questo condensa il contesto alla sola sintesi, liberando spazio per proseguire la conversazione e il lavoro.

In IDE come Cursor o Windsurf, devi passare a un nuovo thread di chat quando raggiungi i limiti di contesto. Così facendo, le informazioni del thread corrente si perdono, oppure devi fare engineering manuale per spostarle nel nuovo thread.

Esecuzione di comandi da terminale e configurazione

Roo Code può connettersi automaticamente al terminale interno di VS Code, eseguire comandi e leggere gli output in tempo reale. Se preferisci, offre anche un terminale inline più veloce che mostra i risultati direttamente nell’interfaccia chat.

Sebbene l’esecuzione da terminale esista anche in altre piattaforme agentiche, le opzioni di personalizzazione di Roo Code fanno la differenza. Il sistema di integrazione shell funziona automaticamente senza richiedere setup e offre diverse possibilità:

  • Eseguire comandi e leggere l’output senza copia-incolla manuale
  • Rilevare e correggere automaticamente errori nelle applicazioni in esecuzione
  • Tracciare i codici di uscita dei comandi e i cambi di directory di lavoro
  • Interrompere comandi in esecuzione direttamente dalla chat

Terminale inline di Roo Code

Nelle impostazioni puoi configurare diverse opzioni specifiche del terminale:

  • Limite output terminale: controlla quanto output dei comandi viene catturato e aggiunto al contesto (default: 500 righe)
  • Comprimere l’output delle barre di avanzamento: elabora in modo più pulito output dinamici come le progress bar, mostrando solo lo stato finale invece di ogni aggiornamento
  • Disabilitare l’integrazione shell del terminale: quando selezionata (consigliato), Roo usa il suo terminale inline. Se deselezionata, esegue i comandi nel pannello terminale di VS Code

Il sistema gestisce bene anche setup shell complessi. Se usi ZSH con Oh My Zsh e powerlevel10k, o altre configurazioni personalizzate, Roo Code fornisce workaround specifici e impostazioni di timeout per le shell che impiegano più tempo a inizializzarsi. Sono presenti anche opzioni dedicate per chi usa PowerShell su Windows e configurazioni WSL.

Funzionalità per migliorare la qualità della vita

Oltre alle funzioni principali che abbiamo visto, Roo Code include molte migliorie pensate per rendere lo sviluppo quotidiano più fluido e produttivo.

@menzioni di contesto per una raccolta informazioni completa

Le @menzioni di contesto offrono un modo potente per includere informazioni specifiche direttamente nelle conversazioni. Puoi fare riferimento a file, cartelle, output del terminale, commit git, problemi di VS Code e persino immagini usando la @ nella chat. Così fornisci a Roo Code esattamente il contesto necessario senza copia-incolla manuale.

Integrazione MCP con marketplace one-click

Roo Code offre una solida integrazione MCP (Model Context Protocol) con un marketplace dedicato per l’installazione one-click dei server. Anche se il marketplace ha attualmente opzioni limitate, puoi contribuire aprendo pull request per aggiungere server MCP ufficiali al repository di Roo Code. Questo apre l’accesso a strumenti e servizi esterni specializzati che estendono le capacità di Roo Code ben oltre le funzionalità integrate.

Gestione dei checkpoint con Git ombra

La gestione dei checkpoint funziona tramite un repository Git “ombra” che gira accanto al tuo codice esistente. Fornisce una rete di sicurezza per il tuo lavoro, permettendoti di creare punti di ripristino e tracciare le modifiche senza interferire con il normale workflow Git. Puoi tornare facilmente a stati precedenti se qualcosa va storto durante lo sviluppo.

Gestione chat e tracciamento dei costi

Una finestra dedicata alla gestione delle chat ti aiuta a organizzare le conversazioni filtrandole per workspace, data di creazione, uso di token, consumo della finestra di contesto e costi API effettivi. Questa visibilità su pattern d’uso e spese ti aiuta a capire e controllare i costi dello sviluppo con AI mantenendo il lavoro organizzato.

Import/export delle modalità e marketplace

Puoi importare ed esportare modalità personalizzate come file di testo, facilitando la condivisione delle pratiche di coding tra i membri del team. C’è anche un marketplace separato per le modalità dove puoi contribuire con le tue modalità personalizzate, utilizzabili da altri con import one-click. Questo aiuta a standardizzare gli approcci nei team e a condividere workflow collaudati.

Ottimizzazione dei prompt integrata

Un pulsante sempre visibile nel campo di input della chat ti consente di ottimizzare e migliorare i prompt prima di inviarli. Puoi persino scrivere il tuo prompt di “prompt optimizer” nella pagina impostazioni dedicata, adattando il processo di ottimizzazione alle tue esigenze e al tuo stile.

Azioni browser tramite computer use

Puoi abilitare le azioni nel browser tramite le capacità di computer use nelle impostazioni. Questo permette a Roo Code di interagire direttamente con le applicazioni web, aprendo possibilità per test, web scraping e interazioni automatizzate con strumenti basati su browser.

Per ulteriori indicazioni su come sfruttare al meglio queste funzionalità, consulta la pagina dei consigli e trucchi nella documentazione di Roo Code.

Cline vs. Roo Code

Roo Code e Cline condividono la stessa “impronta genetica” ma si sono evoluti in direzioni diverse. Roo Code in realtà è nato come “Roo Cline”, un fork del progetto Cline originale. Gli sviluppatori di Roo Code hanno visto il potenziale delle basi di Cline ma volevano spingersi oltre — allontanandosi dalle dipendenze da LangChain, migliorando le prestazioni e aggiungendo funzionalità come più modalità di interazione e opzioni di personalizzazione profonda. Il rebranding in “Roo Code” riflette questa visione più ampia e un focus più chiaro sugli sviluppatori.

Se Cline punta su semplicità e partnership, Roo Code spinge su controllo e flessibilità. L’approccio human-in-the-loop di Cline prevede che ogni azione richieda approvazione — perfetto per chi vuole restare coinvolto in ogni decisione. Roo Code segue un’altra strada con il suo sistema a modalità, permettendoti di passare tra una Architect mode solo pianificazione, una Code mode focalizzata sull’esecuzione o una Debug mode specializzata. Questo controllo granulare si estende a tutto: dai provider di indicizzazione del codebase ai limiti dell’output del terminale.

I set di funzionalità riflettono queste filosofie diverse:

  • Punti di forza di Cline: separazione Plan & Act, sistema di memory bank, setup più semplice, integrazione attiva del marketplace MCP, gestione checkpoint dopo ogni tool call
  • Punti di forza di Roo Code: più modalità di interazione, profili di configurazione, indicizzazione del codebase personalizzabile, attività boomerang per workflow complessi, condensazione del contesto
  • Funzionalità comuni: open-source, supporto MCP, checkpoint/version control, regole personalizzate, pricing pay-per-use

Scegli in base al tuo stile di sviluppo e alle tue esigenze. Cline funziona al meglio quando vuoi un partner AI lineare che ti tenga nel loop per ogni modifica — ideale per uno sviluppo attento e metodico o quando lavori su codebase critici. Roo Code si adatta a chi vuole regolare finemente il comportamento del proprio assistente AI, sperimentare modalità di lavoro diverse o ha bisogno di configurazioni specializzate per tipi di progetto differenti. Entrambi gli strumenti rispettano il tuo controllo sul processo di sviluppo; offrono solo gradi diversi di personalizzazione per ottenerlo.

Conclusioni e risorse aggiuntive

Roo Code è pensato per power user che lavorano su progetti grandi e complessi che richiedono un’attenta gestione del contesto e un controllo preciso sul comportamento dell’agente. Per progetti piccoli-medi o prototipazione rapida, i requisiti di setup di Roo Code possono essere eccessivi. Se stai iniziando ora con il coding assistito dall’AI, ti consiglierei di partire con Cline per il suo approccio più semplice, o anche Cursor, che porta un ChatGPT avanzato direttamente in VS Code.

Roo Code rende al meglio quando sei un utente esperto che già conosce gli agenti di coding AI e vuole il pieno controllo sui propri workflow. Il tempo speso per imparare i suoi sistemi di configurazione ripaga quando servono funzionalità come l’assegnazione di modelli specifici per modalità, l’indicizzazione personalizzata del codebase o il coordinamento di attività boomerang.

Per ulteriori risorse sugli assistenti di coding AI, dai un’occhiata a questi contenuti:

Bexruz (Bex) Tuychiev

Autore

Bexruz (Bex) Tuychiev

Sono un creator di contenuti sulla data science con oltre 2 anni di esperienza e uno dei più seguiti su Medium. Mi piace scrivere articoli dettagliati su AI e ML con un pizzico di sarcasmo, perché bisogna pur fare qualcosa per renderli un po’ meno noiosi. Ho pubblicato oltre 130 articoli e un corso su DataCamp, con un altro in arrivo. I miei contenuti sono stati visti da oltre 5 milioni di persone, 20.000 delle quali sono diventate follower sia su Medium che su LinkedIn. 

Argomenti

Correlato