--- title: Introduzione description: Inizia con OpenCode. --- import { Tabs, TabItem } from "@astrojs/starlight/components" import config from "../../../../config.mjs" export const console = config.console [**OpenCode**](/) e un agente di programmazione AI open source. E disponibile come interfaccia per terminale, app desktop o estensione per IDE. ![OpenCode TUI con il tema opencode](../../../assets/lander/screenshot.png) Iniziamo. --- #### Prerequisiti Per usare OpenCode nel terminale, ti serve: 1. Un emulatore di terminale moderno, come: - [WezTerm](https://wezterm.org), cross-platform - [Alacritty](https://alacritty.org), cross-platform - [Ghostty](https://ghostty.org), Linux and macOS - [Kitty](https://sw.kovidgoyal.net/kitty/), Linux and macOS 2. Le chiavi API dei provider LLM che vuoi usare. --- ## Installa Il modo piu semplice per installare OpenCode e usare lo script di installazione. ```bash curl -fsSL https://opencode.ai/install | bash ``` Puoi anche installarlo con i seguenti comandi: - **Con Node.js** ```bash npm install -g opencode-ai ``` ```bash bun install -g opencode-ai ``` ```bash pnpm install -g opencode-ai ``` ```bash yarn global add opencode-ai ``` - **Con Homebrew su macOS e Linux** ```bash brew install anomalyco/tap/opencode ``` > Ti consigliamo di usare il tap di OpenCode per avere le release piu aggiornate. La formula ufficiale `brew install opencode` e mantenuta dal team Homebrew e viene aggiornata meno spesso. - **Con Paru su Arch Linux** ```bash sudo pacman -S opencode # Arch Linux (Stable) paru -S opencode-bin # Arch Linux (Latest from AUR) ``` #### Windows :::tip[Consigliato: usa WSL] Per la migliore esperienza su Windows, ti consigliamo di usare [Windows Subsystem for Linux (WSL)](/docs/windows-wsl). Offre prestazioni migliori e piena compatibilita con le funzionalita di OpenCode. ::: - **Con Chocolatey** ```bash choco install opencode ``` - **Con Scoop** ```bash scoop install opencode ``` - **Con NPM** ```bash npm install -g opencode-ai ``` - **Con Mise** ```bash mise use -g github:anomalyco/opencode ``` - **Con Docker** ```bash docker run -it --rm ghcr.io/anomalyco/opencode ``` Il supporto per installare OpenCode su Windows usando Bun e attualmente in lavorazione. Puoi anche scaricare il binario dalle [Releases](https://github.com/anomalyco/opencode/releases). --- ## Configura Con OpenCode puoi usare qualsiasi provider LLM configurando le relative chiavi API. Se e la prima volta che usi provider LLM, ti consigliamo [OpenCode Zen](/docs/zen). E una lista curata di modelli testati e verificati dal team di OpenCode. 1. Esegui il comando `/connect` nella TUI, seleziona opencode e vai su [opencode.ai/auth](https://opencode.ai/auth). ```txt /connect ``` 2. Accedi, aggiungi i dettagli di fatturazione e copia la tua chiave API. 3. Incolla la tua chiave API. ```txt ┌ API key │ │ └ enter ``` In alternativa, puoi selezionare uno degli altri provider. [Scopri di piu](/docs/providers#directory). --- ## Inizializza Ora che hai configurato un provider, puoi spostarti in un progetto su cui vuoi lavorare. ```bash cd /path/to/project ``` E avviare OpenCode. ```bash opencode ``` Poi inizializza OpenCode per il progetto eseguendo il comando seguente. ```bash frame="none" /init ``` Questo fara analizzare il progetto a OpenCode e creera un file `AGENTS.md` nella root del progetto. :::tip Dovresti committare il file `AGENTS.md` del progetto su Git. ::: Questo aiuta OpenCode a capire la struttura del progetto e gli stili di codice usati. --- ## Utilizzo Ora sei pronto a usare OpenCode sul tuo progetto. Sentiti libero di chiedergli qualsiasi cosa! Se e la prima volta che usi un agente di programmazione AI, ecco alcuni esempi che possono aiutare. --- ### Fai domande Puoi chiedere a OpenCode di spiegarti la codebase. :::tip Usa il tasto `@` per fare una ricerca fuzzy dei file nel progetto. ::: ```txt frame="none" "@packages/functions/src/api/index.ts" How is authentication handled in @packages/functions/src/api/index.ts ``` Questo e utile se c'e una parte della codebase su cui non hai lavorato. --- ### Aggiungi funzionalità Puoi chiedere a OpenCode di aggiungere nuove funzionalita al progetto. Pero ti consigliamo prima di chiedergli di creare un piano. 1. **Crea un piano** OpenCode ha una _Plan mode_ che disabilita la possibilita di fare modifiche e si limita a suggerire _come_ implementera la funzionalita. Passaci con il tasto **Tab**. Vedrai un indicatore nell'angolo in basso a destra. ```bash frame="none" title="Switch to Plan mode" ``` Ora descriviamo cosa vogliamo che faccia. ```txt frame="none" When a user deletes a note, we'd like to flag it as deleted in the database. Then create a screen that shows all the recently deleted notes. From this screen, the user can undelete a note or permanently delete it. ``` Devi dare a OpenCode abbastanza dettagli per capire cosa vuoi. Aiuta parlargli come se stessi parlando a uno sviluppatore junior del tuo team. :::tip Dai a OpenCode molto contesto ed esempi per aiutarlo a capire cosa vuoi. ::: 2. **Itera sul piano** Una volta che ti da un piano, puoi dargli feedback o aggiungere piu dettagli. ```txt frame="none" We'd like to design this new screen using a design I've used before. [Image #1] Take a look at this image and use it as a reference. ``` :::tip Trascina e rilascia le immagini nel terminale per aggiungerle al prompt. ::: OpenCode puo analizzare le immagini che gli dai e aggiungerle al prompt. Puoi farlo trascinando e rilasciando un'immagine nel terminale. 3. **Implementa la funzionalita** Quando ti senti a tuo agio con il piano, torna in _Build mode_ premendo di nuovo il tasto **Tab**. ```bash frame="none" ``` E chiedigli di fare le modifiche. ```bash frame="none" Sounds good! Go ahead and make the changes. ``` --- ### Apporta modifiche Per modifiche piu semplici, puoi chiedere a OpenCode di implementarle direttamente senza dover prima rivedere un piano. ```txt frame="none" "@packages/functions/src/settings.ts" "@packages/functions/src/notes.ts" We need to add authentication to the /settings route. Take a look at how this is handled in the /notes route in @packages/functions/src/notes.ts and implement the same logic in @packages/functions/src/settings.ts ``` Assicurati di fornire abbastanza dettagli, cosi OpenCode fa le modifiche giuste. --- ### Annulla modifiche Mettiamo che tu chieda a OpenCode di fare alcune modifiche. ```txt frame="none" "@packages/functions/src/api/index.ts" Can you refactor the function in @packages/functions/src/api/index.ts? ``` Ma ti accorgi che non e quello che volevi. Puoi **annullare** le modifiche usando il comando `/undo`. ```bash frame="none" /undo ``` OpenCode ora ripristina le modifiche e mostra di nuovo il tuo messaggio originale. ```txt frame="none" "@packages/functions/src/api/index.ts" Can you refactor the function in @packages/functions/src/api/index.ts? ``` Da qui puoi modificare il prompt e chiedere a OpenCode di riprovare. :::tip Puoi eseguire `/undo` piu volte per annullare piu modifiche. ::: Oppure puoi **rifare** le modifiche usando il comando `/redo`. ```bash frame="none" /redo ``` --- ## Condividi Le conversazioni che fai con OpenCode possono essere [condivise con il tuo team](/docs/share). ```bash frame="none" /share ``` Questo creera un link alla conversazione corrente e lo copiera negli appunti. :::note Le conversazioni non vengono condivise per impostazione predefinita. ::: Ecco un'[esempio di conversazione](https://opencode.ai/s/4XP1fce5) con OpenCode. --- ## Personalizza E tutto qui! Ora sei un pro nell'usare OpenCode. Per renderlo davvero tuo, ti consigliamo di [scegliere un tema](/docs/themes), [personalizzare i tasti rapidi](/docs/keybinds), [configurare i formatter](/docs/formatters), [creare comandi personalizzati](/docs/commands) o sperimentare con la [configurazione di OpenCode](/docs/config).