<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Automation on GeppettoBarbuto - Wiki</title><link>https://blog.carrubanet.duckdns.org/tags/automation/</link><description>Recent content in Automation on GeppettoBarbuto - Wiki</description><generator>Hugo -- gohugo.io</generator><language>it-it</language><lastBuildDate>Thu, 26 Mar 2026 07:32:11 +0000</lastBuildDate><atom:link href="https://blog.carrubanet.duckdns.org/tags/automation/index.xml" rel="self" type="application/rss+xml"/><item><title>OpenCode.ai: L'Hub degli Agenti Cross-Provider</title><link>https://blog.carrubanet.duckdns.org/wiki/intelligenza_artificiale-ai-coding-assistants-cli-opencode/</link><pubDate>Thu, 26 Mar 2026 07:32:02 +0000</pubDate><guid>https://blog.carrubanet.duckdns.org/wiki/intelligenza_artificiale-ai-coding-assistants-cli-opencode/</guid><description>&lt;h1 id="-opencodeai-lhub-degli-agenti-cross-provider"&gt;🔓 OpenCode.ai: L&amp;rsquo;Hub degli Agenti Cross-Provider
&lt;/h1&gt;&lt;p&gt;::: info FILOSOFIA &amp;ldquo;OPEN&amp;rdquo;
OpenCode.ai è un&amp;rsquo;interfaccia a riga di comando progettata per portare le capacità agentiche (lettura file, esecuzione test, editing multi-file) su qualsiasi modello linguistico. È lo strumento ideale per chi vuole le prestazioni di Claude Code senza i vincoli di fatturazione della Anthropic Console.
:::&lt;/p&gt;
&lt;h2 id="1-architettura-e-funzionamento"&gt;1. Architettura e Funzionamento
&lt;/h2&gt;&lt;p&gt;OpenCode agisce come un bridge tra il tuo terminale e le API dei modelli.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Context Management:&lt;/strong&gt; Scansiona automaticamente la cartella del progetto (rispettando il file &lt;code&gt;.gitignore&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tool Use:&lt;/strong&gt; È in grado di invocare comandi shell per verificare se il codice che ha scritto compila o passa i test.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="2-installazione-e-primo-avvio"&gt;2. Installazione e Primo Avvio
&lt;/h2&gt;&lt;p&gt;Essendo basato su Node.js, l&amp;rsquo;installazione è immediata su Linux (Mac Pro), Windows (WSL2) o macOS.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Installazione globale tramite NPM&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;npm install -g @opencode/cli
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Inizializzazione e Login&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;opencode auth login
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;
&lt;h2 id="3-collegare-i-tuoi-provider-ingegneria-dei-costi"&gt;3. Collegare i tuoi Provider (Ingegneria dei Costi)
&lt;/h2&gt;&lt;p&gt;Questa è la sezione più importante per ottimizzare il tuo budget.&lt;/p&gt;
&lt;h3 id="a-sfruttare-labbonamento-github-copilot-pro-plus"&gt;A. Sfruttare l&amp;rsquo;abbonamento GitHub Copilot Pro Plus
&lt;/h3&gt;&lt;p&gt;Dato che hai già Copilot, puoi accedere ai modelli (Claude 3.5 Sonnet, GPT-4o) tramite &lt;strong&gt;GitHub Models&lt;/strong&gt; senza costi aggiuntivi:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Vai su &lt;a class="link" href="https://github.com/marketplace/models" target="_blank" rel="noopener"
 &gt;GitHub Marketplace / Models&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Genera un &lt;strong&gt;Personal Access Token (PAT)&lt;/strong&gt; con permessi di lettura per i modelli.&lt;/li&gt;
&lt;li&gt;In OpenCode, configura l&amp;rsquo;endpoint come &amp;ldquo;OpenAI Compatible&amp;rdquo; puntando a &lt;code&gt;https://models.inference.ai.azure.com&lt;/code&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="b-collegamento-a-ollama-local-agent"&gt;B. Collegamento a Ollama (Local Agent)
&lt;/h3&gt;&lt;p&gt;Per lavorare su codice sensibile che non deve lasciare il tuo Mac Pro o il server Proxmox:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Assicurati che Ollama sia attivo sulla porta 11434&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;opencode config set provider ollama
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;opencode config set model deepseek-coder-v2
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;
&lt;h2 id="4-workflow-operativo-esempi-pratici"&gt;4. Workflow Operativo: Esempi Pratici
&lt;/h2&gt;&lt;h3 id="analisi-di-un-bug"&gt;Analisi di un Bug
&lt;/h3&gt;&lt;p&gt;Se hai un errore nel terminale, non copiarlo. Chiedi a OpenCode di leggerlo:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;opencode ask &lt;span style="color:#e6db74"&gt;&amp;#34;Analizza l&amp;#39;ultimo errore di compilazione e suggerisci una correzione&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="refactoring-multi-file-agent-mode"&gt;Refactoring Multi-file (Agent Mode)
&lt;/h3&gt;&lt;p&gt;L&amp;rsquo;agente può modificare l&amp;rsquo;architettura del progetto:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;opencode edit &lt;span style="color:#e6db74"&gt;&amp;#34;Sposta la logica di validazione da main.py a un nuovo modulo validators.py e aggiorna tutti i riferimenti&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Cosa succede:&lt;/strong&gt; OpenCode leggerà &lt;code&gt;main.py&lt;/code&gt;, creerà &lt;code&gt;validators.py&lt;/code&gt;, modificherà gli import e ti mostrerà un &amp;ldquo;Diff&amp;rdquo; per l&amp;rsquo;approvazione.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="-topologia-di-integrazione-mermaid-882"&gt;📉 Topologia di Integrazione (Mermaid 8.8.2)
&lt;/h2&gt;&lt;pre class="mermaid" style="visibility:hidden"&gt;graph TD
 USER["Engineer (Terminal)"] --&gt; OCODE["OpenCode CLI"]
 
 subgraph Providers [Gateway dei Modelli]
 OCODE --&gt;|BYOK| GH["GitHub Models (Copilot Sub)"]
 OCODE --&gt;|Local| OL["Ollama (Mac Pro / PVE)"]
 OCODE --&gt;|Direct| AN["Anthropic / OpenAI API"]
 end

 subgraph OS_Interaction [Accesso al Sistema]
 OCODE &lt;--&gt;|Read/Write| FS["Project Filesystem"]
 OCODE --&gt;|Execute| CMD["Shell Commands / Tests"]
 end

 style OCODE fill:#f9f,stroke:#333,stroke-width:2px
 style GH fill:#bbf,stroke:#333&lt;/pre&gt;&lt;hr&gt;
&lt;h2 id="-configurazione-dei-filtri-opencodeignore"&gt;🛠️ Configurazione dei Filtri (.opencodeignore)
&lt;/h2&gt;&lt;p&gt;Per evitare di consumare token inutilmente o inviare dati non necessari, crea un file &lt;code&gt;.opencodeignore&lt;/code&gt; nella root del progetto:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;# Escludi cartelle pesanti
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;node_modules/
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;.venv/
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;__pycache__/
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;dist/
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;build/
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;# Escludi file di dati giganti
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;*.csv
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;*.log
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;
&lt;h2 id="-note-dellarchitetto-critical-thinking"&gt;💡 Note dell&amp;rsquo;Architetto (Critical Thinking)
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Sicurezza:&lt;/strong&gt; Quando colleghi il tuo abbonamento Copilot tramite GitHub Models, ricorda che ci sono dei &lt;em&gt;Rate Limits&lt;/em&gt; giornalieri. Per lo sviluppo massivo, alterna l&amp;rsquo;uso con &lt;strong&gt;Ollama&lt;/strong&gt; per task di routine e usa i modelli cloud solo per il ragionamento logico complesso.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Validation:&lt;/strong&gt; Anche se OpenCode può eseguire i test, non fidarti ciecamente. Usa sempre la nostra &lt;a class="link" href="https://blog.carrubanet.duckdns.org/programmazione/ai-review-checklist" &gt;AI Code Review Checklist&lt;/a&gt; prima di fare il commit finale.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;Tags: #OpenCode #AI #CLI #Copilot #Ollama #Automation*&lt;/p&gt;</description></item></channel></rss>