Table of Contents

OpenCode CLI e Desktop sono client dello stesso prodotto di coding agent. L’interfaccia terminale è adatta al lavoro da tastiera e agli script. L’applicazione desktop offre uno spazio di lavoro grafico. Il confronto importante include server, progetto, provider e configurazione dietro ogni client.

Scegli l’interfaccia dopo aver identificato il backend. Due finestre OpenCode non usano necessariamente lo stesso server o la stessa sessione. Un’app desktop collegata a un server diverso è un ambiente di esecuzione diverso, anche se l’etichetta del modello sembra familiare.

Punti chiave

  • Usa CLI per il lavoro nel terminale e per i comandi non interattivi.
  • Usa Desktop per uno spazio grafico, verificando il server selezionato.
  • La configurazione del provider determina l’inferenza, indipendentemente dall’interfaccia.
  • La stessa identità del prodotto non garantisce lo stesso stato della sessione tra server o versioni separate.

Ambito e data: Documentazione ufficiale verificata il 6 ottobre 2026. Questa guida confronta le interfacce, non la qualità dei modelli. Servono un repository, una connessione al provider funzionante e una conoscenza di base del terminale. Dedica 45-60 minuti alla prova.

Client e server

OpenCode separa l’interfaccia dal server. La documentazione del server descrive la terminal UI come client e opencode serve come server autonomo. Questa architettura supporta più modi di interagire con l’agente.

Desktop avvia un server locale per impostazione predefinita. La guida alla risoluzione dei problemi identifica il sidecar opencode-cli e l’opzione per collegarsi a un URL del server configurato. Se i client si comportano in modo diverso, controlla questa connessione prima di modificare il prompt.

LivelloDomanda a cui rispondere
ClientTerminal UI, app desktop o comando non interattivo?
Server dell’agenteQuale processo riceve la richiesta?
RepositoryQuale directory può raggiungere il server?
Provider del modelloQuale servizio fornisce l’inferenza?
SessioneConversazione esistente o nuovo task?

La posizione del server non è la posizione dell’inferenza. Un agent server sul tuo computer invia comunque richieste a un modello ospitato configurato. Un servizio di inferenza locale compatibile è invece un processo separato con modello e requisiti di risorse propri.

Il riferimento ufficiale del server indica 127.0.0.1 come hostname predefinito per opencode serve. Mantieni il servizio sul loopback durante una prova locale:

opencode serve --hostname 127.0.0.1

Usa un indirizzo di bind più ampio solo dopo aver definito autenticazione, regole firewall e percorsi del repository esposti al server.

Client terminale e desktop collegati a un agent server, ai file del repository e a un servizio di inferenza separato

Controlla separatamente agent server e provider di inferenza

Interazione terminale e automazione

opencode

Il comando predefinito apre la terminal UI. Il riferimento CLI documenta anche comandi programmatici. Inizia nel repository previsto e conferma agent e modello selezionati prima di chiedere modifiche.

opencode run "Identify this project's test command. Do not modify files."

Usa opencode run per una richiesta non interattiva limitata. Stabilisci separatamente la policy dei permessi. Chiedere di non modificare file orienta la richiesta, ma non impone l’isolamento del filesystem.

Scegli questo flusso quando conta la composizione della shell. Un wrapper ripetibile deve catturare richiesta, exit status, output rilevante e file modificati. Rendi esplicita la gestione degli errori. Un diff vuoto e un messaggio di successo richiedono un’interpretazione diversa da una correzione verificata.

Configurazione e compatibilità Desktop

Usa la pagina ufficiale di download per la release prevista. La pagina di download di OpenCode elenca pacchetti terminale e desktop. In questo controllo la pagina pubblicizza pacchetti terminale v2, mentre la documentazione generale contiene anche esempi di installazione più vecchi. Registra le versioni esatte del client e del backend senza mescolare istruzioni di release diverse.

Valuta l’interazione desktop con un piccolo task reale. Apri un progetto, conferma il server, invia una richiesta limitata, controlla i file modificati e chiedi una correzione. Valuta lo sforzo necessario per capire le azioni dell’agente. Non presumere che un client grafico sostituisca completamente editor e debugger.

Prova desktopEvidenza attesa
Selezione progettoL’agente identifica il repository previsto
Selezione modelloProvider e modello corrispondono al registro della prova
Esecuzione comandiRuntime e test richiesti sono disponibili
Ispezione modificheLa patch completa è facile da trovare e rivedere
RiavvioProgetto e sessione previsti restano identificabili

Configurazione e accesso al modello

OpenCode unisce configurazioni da più posizioni. Il riferimento della configurazione spiega precedenza e conservazione delle impostazioni non in conflitto. Confronta modello, agent e permessi effettivi, non solo un file di progetto.

L’accesso al provider appartiene alla configurazione di esecuzione. La guida ai provider descrive servizi supportati ed endpoint compatibili. Contano credenziali, raggiungibilità dell’endpoint e supporto degli strumenti del modello. Un server eseguito altrove ha bisogno del proprio accesso valido a provider e repository.

Il client non determina il costo totale dell’inferenza. Confronta l’uso fatturato con modelli e task equivalenti. Includi le esecuzioni ripetute dovute a errori di configurazione. Per l’inferenza locale registra memoria di sistema, formato del modello, dimensione del contesto e impostazioni runtime. Non presentare il download desktop come sostituto gratuito del calcolo ospitato.

Sessioni e passaggio sicuro

Verifica la continuità invece di darla per scontata. Registra progetto e sessione attivi prima di cambiare client. Controlla che la destinazione si connetta al server previsto e mostri la cronologia prevista. Se inizi una nuova sessione, trasferisci in modo conciso obiettivo, lavoro completato e controlli rimasti.

Evita modifiche contemporanee allo stesso checkout. Due conversazioni con piani diversi condividono i file se puntano alla stessa directory. Usa worktree o checkout separati per esperimenti indipendenti. Rivedi i cambiamenti prima di integrarli.

Handover record
Goal:
Current branch and working directory:
Files changed:
Checks already completed:
Known failures:
Next approved action:

Questo registro rende il passaggio verificabile. Aiuta anche a distinguere un problema dell’interfaccia da un’istruzione mancante o da un ambiente non coerente. Tieni le credenziali fuori dal registro.

Accesso al server e permessi

Tratta l’agent server come un servizio di esecuzione. La documentazione del server descrive l’autenticazione opzionale tramite OPENCODE_SERVER_PASSWORD. Configura l’accesso con intenzione prima di collegare macchine. Un agent server raggiungibile non equivale a un sito statico innocuo.

Controlla i permessi degli strumenti separatamente. La guida ai permessi definisce il comportamento allow, ask e deny. Applica la stessa policy durante la prova dell’interfaccia. Non considerare più sicuro o capace un client con meno richieste senza controllare le regole effettive.

Inizia con un test di policy innocuo. Richiedi un’ispezione consentita e una modifica vietata in un progetto usa e getta. Verifica il comportamento osservato e poi procedi con un’implementazione limitata. Così l’ipotesi sui permessi diventa verificabile.

Risoluzione dei problemi e scelta

SintomoPrima verifica
Errore di connessione DesktopServer selezionato e stato del sidecar locale
Modello assente in un clientVersione del server, accesso al provider e configurazione
Risultato del test diversoDirectory del progetto e ambiente runtime
Conversazione mancanteIdentità del server e della sessione
Funziona finché non viene caricato un pluginConfigurazione del plugin e compatibilità della release

Scegli il terminale se richieste scriptate e contesto shell rendono il lavoro più semplice. Scegli Desktop se la navigazione grafica del progetto migliora la supervisione. Tieni separate le decisioni su provider e policy da questa preferenza.

Prossimi passi: Confronta le alternative terminale nel riepilogo CLI . Per i requisiti dell’inferenza locale leggi la guida OpenCode e Strata . Per le alternative grafiche usa il riepilogo GUI .