Questa guida fornisce un’introduzione pratica e approfondita all’utilizzo di tre potenti strumenti per lo sviluppo assistito dall’IA: OpenCode, Pi Coding Agent e Kilo Code CLI. Ci concentreremo sull’installazione, la configurazione di base, i comandi essenziali, la gestione di skill e sub-agenti, e l’integrazione con servizi esterni per aiutarti a integrare questi agenti nel tuo flusso di lavoro in modo efficace.
1. OpenCode
OpenCode è un agente di programmazione AI open source disponibile come interfaccia per terminale (TUI), app desktop o estensione per IDE.
1.1 Installazione
Il modo più semplice per installare OpenCode è tramite lo script di installazione:
curl -fsSL https://opencode.ai/install | bash
In alternativa, previa installazione di nodejs, puoi installarlo con npm:
npm install -g opencode-ai
Su sistemi Windows la documentazione ufficiale consiglia si usare WSL. Se non sai cosa è WSL ti consiglio questa guida. In breve dopo aver installato WSL puoi installare OpenCode con
curl -fsSL https://opencode.ai/install | bash
Da dentro un terminale Linux con WSL naviga nella cartella di interesse ed esegui il comando opencode
cd /mnt/c/Users/YourName/project
opencode
Usando WSL i file di configurazione e sessioni sono memorizzati dentro ~/.local/share/opencode/
1.2 Configurazione Iniziale
Dopo l’installazione, devi configurare un provider LLM. OpenCode supporta vari provider, e puoi connetterti tramite il comando /connect nella TUI:
- Esegui
/connectnella TUI di OpenCode. - Seleziona il tuo provider (esempio OpenAI, ANtropic, OpenRouter, eccetera)
- Incolla la chiave API quando richiesto.
N.B. Nel caso di utilizzo di Requesty se vedi un sottoinsieme di modelli (e non tutti i modelli disponibili sul sito)
li puoi settare andando a modificare il file di configurazione opencode.json da creare nella cartella ~/.config/opencode/. Inserisci l’API di Requesty e aggiungi nella sezione models i modelli desiderati:
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"requesty-extra": {
"npm": "@ai-sdk/openai-compatible",
"name": "Requesty (Extra Models)",
"options": {
"baseURL": "https://router.requesty.ai/v1",
"apiKey": "....."
},
"models": {
"zai/GLM-5.1": { "name": "GLM 5.1 (Zai)" },
"inceptron/glm-5.1": { "name": "GLM 5.1 (Inceptron)" },
"novita/zai-org/glm-4.6": { "name": "GLM 4.6 (Novita)" }
}
}
}
}
Per rendere effettive le modifiche riavvia OpenCode. I nuovi modelli compariranno sotto il gruppo Requesty (Extra Models)
1.3 Inizializzazione del Progetto
Per utilizzare OpenCode su un progetto esistente:
- Naviga nella directory del tuo progetto
cd /path/to/project - Avvia OpenCode
opencode - Inizializza OpenCode per il progetto con il comando
/init. Questo farà analizzare il progetto a OpenCode e creerà un fileAGENTS.mdnella root del progetto. Questo aiuta OpenCode a comprendere la struttura e gli stili di codice utilizzati.
Il file AGENTS.md nella root del progetto verrà incluso nel contesto della conversazione. Se hai già un file AGENTS.md, eseguendo il comando init, questo migliorerà il contenuto del file, mantenendo le istruzioni precedentemente contenute.
Il file AGENTS.md può essere definito in diverse posizioni
- file
AGENTS.mdnella root del progetto - file
AGENTS.mdglobale nella cartella~/.config/opencode/che verrà preso in considerazione da ogni sessione opencode
Opencode può anche leggere i file markdown creati per Claude Code
CLAUDE.mdnella root del progetto, per regole relative a un progetto~/.claude/CLAUDE.mdper regole globali~/.claude/skills/per le skills degli agents
L’ordine di precedenza di questi files markdown è il seguente, dove il primo trovato vince su quelli successivi
- File locali
AGENTS.md,CLAUDE.md - File globale
~/.config/opencode/AGENTS.md - Claude Code file
~/.claude/CLAUDE.md
1.4 Comandi Interni Essenziali
OpenCode include diversi comandi integrati per gestire il flusso di lavoro:
/initInizializza OpenCode per il progetto corrente, creandoAGENTS.mdnella directory corrente./connectConfigura i provider LLM e le chiavi API.<TAB>Passa dalla modalità Plan Mode alla modalità Build Mode, e viceversa/modelsMostra i modelli LLM disponibili/undoAnnulla l’ultima serie di modifiche apportate dall’agente./redoRipristina le modifiche annullate./compactCompatta facendo un riassunto della sessione corrente/newavvia una nuova sessione/sessionsmostra le sessioni esistenti, utile anche per cambiare sessione/helpMostra la guida e i comandi disponibili.
1.5 Pianifica e Scrivi
Opencode raccomanda prima di richiedere una modifica di pianificare tale modifica. Per fare ciò premi <TAB> per passare nella modalità Plan di modo da non scrivere modifiche nel codice. Una volta deciso e modificato il piano di azione proposto è possibile scrivere e implementare tali modifiche nel codice. Per fare ciò premere di nuovo <TAB> per passare alla modalità BUILD e chiedere al modello llm di implemtare tali modifiche.
Per modifiche più modeste è possibile chiedere direttamente al modello LLM di implemtare le modifiche, senza passare dallo step di pianificazione.
1.6 Comandi Personalizzati
Puoi estendere le funzionalità di OpenCode creando comandi personalizzati per automatizzare task ripetitivi.
Questi comandi si definiscono tramite file Markdown nella directory commands/ (globale in ~/.config/opencode/commands/ o locale in .opencode/commands/).
Esempio di creazione di un comando .opencode/commands/test.md richiamabile con /test:
---
description: Esegue i test con copertura
agent: build
model: anthropic/claude-3-5-sonnet-20241022
---
Esegui la suite di test completa con il report di copertura e mostra eventuali fallimenti.
Concentrati sui test falliti e suggerisci correzioni.
Puoi eseguire questo comando digitando /test nella TUI.
Nei prompt dei comandi personalizzati puoi usare:
$ARGUMENTSo$1,$2per passare argomenti.!comandoper inserire l’output di un comando bash (es.!npm test).@fileper includere il contenuto di un file specifico.
Per esempi dettagliati vedere la documentazione
1.7 Agenti e Sub-agenti
In Opencode esistono due tipi di agenti: agenti primari e sub-agenti. Questi vengono utilizzati per gestire compiti diversi.
Con gli agenti primari ci interagisco direttamente. Posso switchare da un agente primario all-altro con il tasto TAB. Gli agenti primari pre esistenti sono BUILD e PLAN:
Agenti Primari Integrati:
- Build: L’agente predefinito con tutti gli strumenti abilitati (scrittura, modifica, bash). Ideale per lo sviluppo attivo.
- Plan: Un agente limitato per la pianificazione e l’analisi. Di default, richiede conferma (
ask) per modifiche ai file e comandi bash. Utile per analizzare il codice senza apportare modifiche dirette.
I sub-agenti vengono invocati dagli agenti primari per compiti specifici. Li posso invocare menzionandoli con il carattere @ (es. @general aiutami a cercare questa funzione).
Opencode dispone di 3 sub-agenti installati:
- General: Agente general-purpose per ricerche complesse e task multi-step. Ha accesso completo agli strumenti (tranne todo).
- Explore: Agente in sola lettura per esplorare rapidamente la codebase. Non può modificare file.
- Scout: Agente in sola lettura per esplorare documentazione e dependency
Puoi creare agenti personalizzati configurandoli nel file opencode.json o creando file Markdown nella directory agents/ (es. .opencode/agents/review.md).
1.8 Integrazione con Servizi Esterni (MCP)
OpenCode supporta il Model Context Protocol (MCP) per integrare strumenti e servizi esterni. I server MCP possono essere locali o remoti e si configurano nel file opencode.json (o opencode.jsonc).
Aggiungere un Server MCP Locale:
{
"mcp": {
"mcp_everything": {
"type": "local",
"command": ["npx", "-y", "@modelcontextprotocol/server-everything"],
"enabled": true,
"environment": {
"MY_ENV_VAR": "my_env_var_value",
}
}
}
}
Aggiungere un Server MCP Remoto (con OAuth):
OpenCode gestisce automaticamente l’autenticazione OAuth per i server remoti.
{
"mcp": {
"my-oauth-server": {
"type": "remote",
"url": "https://mcp.example.com/mcp",
"enabled": true,
"headers": {
"Authorization": "Bearer MY_API_KEY"
}
}
}
}
Se il server richiede autenticazione, OpenCode ti chiederà di autenticarti al primo utilizzo. Puoi anche gestire l’autenticazione manualmente con i comandi CLI:
opencode mcp auth <server-name>: Avvia l’autenticazione.opencode mcp list: Elenca i server MCP e il loro stato.opencode mcp logout <server-name>: Rimuove le credenziali.
Una volta configurato, puoi chiedere a OpenCode di utilizzare lo strumento MCP nei tuoi prompt (es. usa lo strumento mcp_everything per...).
1.9 Altro da sapere
Per fare riferimento a un file nel progetto usare il simbolo @
How is auth handled in @packages/functions/src/api/index.ts?
Per eseguire un comando shell, far precedere comando con il simbolo !
!ls -la
2. Pi Coding Agent
Pi Coding Agent è un agente di codifica open source minimale, focalizzato sull’essere estensibile e self-documenting. A differenza di altri agenti, Pi inizia con un set limitato di strumenti (read, write, edit, bash) e permette agli utenti di costruire il proprio ambiente.
2.1 Installazione
Pi Coding Agent può essere installato globalmente tramite npm o pnpm:
npm install -g @earendil-works/pi-coding-agent
# oppure
pnpm add -g @earendil-works/pi-coding-agent
2.2 Utilizzo Base e Comandi
Dopo l’installazione, avvia Pi nel tuo terminale digitando pi. La sua filosofia è quella di essere un assistente di codifica minimale e personalizzabile.
- Invio messaggi: Premi
Enterper inviare un messaggio di “steering” (interrompe gli strumenti correnti). PremiAlt+Enterper un messaggio di “follow-up” (attende che l’agente finisca). - Cambio modello: Usa
/modeloCtrl+Lper cambiare modello durante la sessione.Ctrl+Pper scorrere i preferiti. - Navigazione sessione: Le sessioni sono salvate come alberi. Usa
/treeper navigare a un punto precedente. - Esportazione: Usa
/exportper esportare in HTML o/shareper creare un gist GitHub condivisibile.
2.3 Estensioni, Skill e Sub-agenti
Pi non ha funzionalità come sub-agenti o plan mode integrate di default, ma ti permette di costruirle o installarle tramite pacchetti.
- Pacchetti (Packages): Puoi installare estensioni, skill, prompt e temi tramite npm o git.
pi install npm:@foo/pi-tools pi install git:github.com/badlogic/pi-doom - Sub-agenti: Esistono pacchetti della community (come
pi-subagentso@tintinweb/pi-subagents) che aggiungono il supporto per i sub-agenti a Pi. Questi pacchetti definiscono agenti con set di strumenti specifici (es.Explorecon soloread,bash,grep,find,ls) [6]. - Integrazione MCP: Pi supporta l’integrazione con server MCP tramite estensioni specifiche (es.
pi-mcp), permettendo di collegarsi a servizi esterni come Chrome DevTools o altri strumenti compatibili con MCP.
3. Kilo Code CLI
Kilo Code CLI è una potente interfaccia a riga di comando che fa parte della piattaforma di ingegneria agentica Kilo. È un fork di OpenCode, migliorato per integrarsi nell’ecosistema Kilo, offrendo funzionalità avanzate di generazione di codice, automazione e debugging.
3.1 Installazione
Puoi installare Kilo Code CLI globalmente usando npm:
npm install -g @kilocode/cli
In alternativa, puoi eseguirlo direttamente con npx senza installazione globale:
npx @kilocode/cli
3.2 Utilizzo Base e Modalità (Agenti)
Dopo l’installazione, puoi avviare Kilo in qualsiasi directory di progetto:
kilo
Kilo offre diverse modalità (o agenti) per gestire compiti specifici:
- Architect (Pianificazione): Utilizzato per la pianificazione e l’analisi. Simile alla modalità Plan di OpenCode.
- Coder (Codifica): L’agente principale per la generazione e la modifica del codice.
- Debugger (Debugging): Specializzato nell’individuazione e risoluzione di bug.
Puoi anche creare modalità personalizzate per adattare Kilo al tuo flusso di lavoro.
3.3 Comandi CLI Utili
Kilo Code CLI offre diversi comandi per gestire l’ambiente e le integrazioni:
kilo run --auto "messaggio": Esegue Kilo in modalità autonoma (ideale per CI/CD). Disabilita le richieste di permesso.kilo mcp: Gestisce i server MCP.kilo mcp add: Aggiunge un server MCP.kilo mcp list(ols): Elenca i server MCP e il loro stato.kilo mcp auth [name]: Autentica con un server MCP abilitato per OAuth.kilo mcp logout [name]: Rimuove le credenziali OAuth per un server MCP.kilo mcp debug <name>: Esegue il debug della connessione OAuth per un server MCP.
3.4 Integrazione con Servizi Esterni (MCP)
Come OpenCode, Kilo Code CLI supporta nativamente il Model Context Protocol (MCP). Puoi utilizzare i comandi kilo mcp (descritti sopra) per aggiungere e gestire server MCP, permettendo a Kilo di interagire con API esterne, database e altri strumenti durante la generazione del codice.