Daniel Vedovato
← Blog

OpenCode: cosa cambia con un coding agent open source nel terminale

OpenCode è un agente di coding open source. Analisi di autonomia, permessi, provider e test da fare prima di affidargli una codebase.

Scritto da Redazione Daniel Vedovato · Revisionato il 21 luglio 2026

Fonte primaria

Articolo preparato con assistenza AI, verificato e revisionato da Daniel Vedovato.

OpenCode è un coding agent open source che si usa dal terminale e può lavorare con più provider di modelli. Il repository lo presenta come strumento per leggere una codebase, proporre modifiche, eseguire comandi e usare un’interfaccia testuale o grafica. Per un team il punto interessante non è soltanto avere un’alternativa aperta a un assistente nell’editor. È poter ispezionare configurazione, prompt, strumenti disponibili e confini di esecuzione.

Questa apertura non elimina il rischio. Un agente che può lanciare comandi è utile proprio perché ha capacità operative, e quelle capacità richiedono un perimetro. Dare accesso indiscriminato al repository, alla rete, alle credenziali di sviluppo e all’ambiente di produzione trasforma un aiuto al coding in una fonte di incidenti difficile da ricostruire.

Open source non significa autonomo senza controllo

L’accesso al codice consente audit, personalizzazioni e scelta del provider. Può essere importante per organizzazioni che non vogliono inviare tutta la codebase a un unico servizio o che devono integrare modelli locali. Tuttavia il modello scelto, i dati inviati e le azioni permesse restano decisioni dell’utente.

Un buon utilizzo separa tre livelli. Al primo l’agente può soltanto leggere file e rispondere a domande sul repository. Al secondo può creare patch in un branch o in una cartella di lavoro isolata. Al terzo esegue test e comandi non distruttivi. Operazioni come modifiche a infrastruttura, deploy, pubblicazione di pacchetti e accesso a segreti devono restare fuori dal perimetro iniziale o richiedere conferma esplicita.

LivelloPermessiUso sensato
Esplorazionelettura, ricerca, spiegazioneonboarding e analisi del codice
Bozzascrittura solo nel branch di lavororefactor piccoli e test locali
Verificatest, lint, build senza credenzialicontrollo della patch
Azione esternadeploy, ticket, rete, segretisolo con revisione e policy dedicate

Cosa valutare prima dell’installazione

La prima verifica è la catena dei dati. Quale provider riceve prompt e frammenti del repository? Quali file vengono esclusi? I log della sessione vengono conservati e dove? La presenza di un file .env nella directory non deve mai essere trattata come dettaglio minore: l’agente potrebbe leggerlo, un comando potrebbe stamparlo e un provider remoto potrebbe riceverlo.

La seconda verifica riguarda gli strumenti. I comandi shell, le richieste HTTP e le integrazioni esterne vanno catalogati. Preferire allowlist e limiti di percorso è più sicuro di una blacklist infinita. Un task apparentemente innocuo come “aggiorna le dipendenze” può modificare lockfile, scaricare pacchetti, attivare hook e cambiare molti file. Per questo ogni sessione deve mostrare con chiarezza piano, file previsti e diff risultante.

La terza verifica è la riproducibilità. Una patch proposta da un agente va trattata come quella di un collaboratore: test, revisione e contesto della decisione. Il fatto che il codice sia compilabile non dimostra che rispetti requisiti di prodotto, privacy o prestazioni.

Flusso pratico per una codebase reale

Parti con un repository non critico o con una copia priva di segreti. Chiedi all’agente un’analisi senza scrittura: mappa dei moduli, comandi di test, aree con maggiore accoppiamento e domande aperte. Questa fase permette di valutare se comprende convenzioni e limiti del progetto prima di generare codice.

Poi assegna un cambiamento piccolo con un criterio di accettazione verificabile, per esempio aggiungere un test a un bug già riprodotto. Pretendi che l’agente dichiari ipotesi, file che vuole modificare e comandi che intende eseguire. Revisiona il diff prima dell’esecuzione dei test. Se il risultato è buono, aumenta gradualmente l’ambito, non il livello di fiducia implicito.

Le metriche utili sono concrete: tempo per arrivare a una patch revisionabile, percentuale di patch accettate senza correzioni, test regressivi aggiunti, modifiche non richieste e incidenti di permesso. Contare soltanto righe prodotte favorisce il comportamento sbagliato: un agente efficace deve ridurre lavoro di revisione, non produrre il massimo volume possibile.

Limiti che restano

Un agente può interpretare male una richiesta, inventare API, seguire istruzioni ostili presenti in un issue o in un file, e proporre soluzioni compatibili solo con l’ambiente in cui ha ragionato. L’open source permette di indagare queste cose, ma non garantisce che ogni configurazione sia sicura. Anche il modello locale può essere vulnerabile a input non affidabili.

Perciò conviene mantenere backup, branch protetti, CI obbligatoria e review umana. In particolare, non includere token, dump di database o chiavi nella cartella che l’agente può leggere. Una policy breve e verificabile sui permessi vale più di istruzioni generiche come “fai attenzione”.

OpenCode può essere utile per rendere trasparente un workflow di coding assistito. Il risultato migliore non è un agente lasciato libero: è un collaboratore veloce, confinato e misurato, che consegna modifiche comprensibili a una persona responsabile della loro approvazione.

Fonti