> ## Content Index
> Fetch the complete content index at: https://adrianoamalfi.com/llms.txt
> Use this file to discover other available public pages before exploring further.

# Opencode Web: Usa opencode direttamente dal browser
- URL: https://adrianoamalfi.com/tech-scratchpad/opencode-web-console/
- Published: 2026-07-30T18:18:18.000Z
- Updated: 2026-07-30T18:18:18.000Z
- Description: Come trasformare opencode in una web app accessibile da browser, dalla configurazione del provider LLM all'avvio del server con autenticazione.
- Author: Adriano Amalfi
- Tags: Scratchpad, AI Agentica, AI Tools, Tutorial, OpenCode, LLM, #Tech Scratchpad: Appunti avanzati e esperimenti per esperti e amatoriali

*Testato il:* 2026-07-29 *Ambiente:* Linux · Node.js v24.15.0 · opencode 1.18.9 · npm 11.6.1

## Prerequisiti

- *Node.js 18 o superiore* (verifica con `node --version`)
- Una *chiave API* per almeno un provider LLM supportato da opencode (Anthropic, OpenAI, OpenRouter, Groq e decine di altri)
- Un browser moderno (Firefox, Chrome, Edge o qualunque cosa usi)
- Un terminale con supporto Unicode: WezTerm, Alacritty, Ghostty o Kitty vanno benissimo

## 1\. Installa opencode

Se hai già Node.js, il metodo più diretto è *npm*:

```bash
npm install -g opencode-ai@latest
```

Altre strade possibili:

```bash
# Script di installazione ufficiale
curl -fsSL https://opencode.ai/install | bash

# Homebrew (macOS e Linux, sempre aggiornato)
brew install anomalyco/tap/opencode
```

Verifica che l'installazione sia riuscita:

```bash
opencode --version
```

Il comando restituisce `1.18.9` o superiore. Se non lo trova, chiudi e riapri il terminale, oppure controlla che la directory npm globale sia nel *`PATH`*.

## 2\. Configura un provider LLM

A opencode serve una chiave API per parlare con un modello. Supporta *oltre 75 provider*: Anthropic, OpenAI, Groq, OpenRouter e molti altri.

Il metodo più immediato: il **login interattivo**.

```bash
opencode auth login
```

Ti guida nella scelta del provider (puoi scrivere parte del nome per filtrarlo) e ti chiede la chiave, che finisce in `~/.local/share/opencode/auth.json`.

Se sai già quale provider vuoi usare, saltati la selezione iniziale:

```bash
opencode auth login --provider anthropic
```

Alcuni provider (OpenAI ChatGPT Plus/Pro, Anthropic Claude Pro/Max) supportano l'autenticazione **OAuth**: `opencode auth login` apre il browser per autorizzare l'accesso, niente chiavi da incollare.

### Via variabile d'ambiente

Se hai già una chiave a portata di mano e preferisci non usare il comando interattivo, esportala e opencode la rileverà all'avvio:

```bash
export ANTHROPIC_API_KEY=sk-ant-api03-la-tua-chiave
# oppure
export OPENAI_API_KEY=sk-la-tua-chiave
```

Per aggiungerla in modo permanente, inserisci la stessa riga nel tuo `~/.bashrc` o `~/.zshrc`.

Verifica che il provider sia configurato:

```bash
opencode auth list
```

Il provider compare nella lista con stato *configured*.

## 3\. Avvia il server web

Con un provider configurato, puoi avviare l'interfaccia web:

```bash
opencode web
```

Il comando avvia un server HTTP su `127.0.0.1` con una porta casuale, apre il browser all'URL del server e carica l'interfaccia web. Tutto in un colpo solo.

Nel terminale vedrai un output simile a:

```text
  Local access:       http://127.0.0.1:38421
```

La porta cambia ogni volta se non la specifichi: per averla fissa, usa `--port` (lo vedremo al passo 5).

Server senza protezione — Senza \`OPENCODE\_SERVER\_PASSWORD\`, il server web di opencode \*\*non richiede autenticazione\*\*. Per uso locale su \`127.0.0.1\` va bene, ma se prevedi di esporlo sulla rete con \`--hostname 0.0.0.0\`, configura l'autenticazione \*\*prima\*\* di avviarlo: salta al \*\*passo 7\*\*.

## 4\. Esplora l'interfaccia web

Il browser mostra la home page dell'interfaccia web di opencode, con due aree distinte.

A sinistra la lista delle *sessioni*: vuota al primo avvio. "New Session" per crearne una, scegliere il modello e iniziare a interagire con opencode come dalla TUI.

In alto "See Servers" apre la sezione *server*: stato del server, porta, hostname e connessioni attive.

Nel browser hai la stessa esperienza della *TUI*: chatti con opencode, carichi file con drag and drop, cambi modello e agente con `Tab` o `/`. Tutto quello che faresti da terminale.

## 5\. Configura porta, hostname e mDNS

I flag da linea di comando ti danno il controllo su dove e come il server è accessibile.

### Porta fissa

Per evitare porte casuali e avere sempre lo stesso indirizzo:

```bash
opencode web --port 4096
```

### Accesso dalla rete locale

Di default il server ascolta solo su `127.0.0.1` (localhost). Per renderlo accessibile da altri dispositivi sulla tua rete:

```bash
opencode web --hostname 0.0.0.0 --port 4096
```

Il terminale ora mostrerà sia l'indirizzo locale che quello di rete:

```text
  Local access:       http://localhost:4096
  Network access:     http://192.168.1.100:4096
```

### mDNS discovery

Se vuoi raggiungere il server con un nome facile da ricordare invece dell'IP:

```bash
opencode web --mdns
```

Questo imposta automaticamente `--hostname 0.0.0.0` e pubblica il server come `opencode.local` sulla rete locale. Per personalizzare il dominio:

```bash
opencode web --mdns --mdns-domain mio-progetto.local
```

Utile se hai più istanze di opencode in esecuzione contemporaneamente.

### Configurazione via file

Se preferisci non ricordare i flag ogni volta, puoi mettere tutto in `*opencode.json*` nella root del tuo progetto (o in `~/.config/opencode/opencode.json` per una config globale):

```json
{
  "server": {
    "port": 4096,
    "hostname": "0.0.0.0",
    "mdns": true
  }
}
```

I flag da linea di comando hanno la *precedenza* sulle impostazioni del file: se il file dice `"port": 4096` ma avvii con `--port 3000`, vince `3000`.

## 6\. Attacca la TUI al server web

Con il server web puoi collegare la TUI in qualsiasi momento, senza fermare nulla. Apri un altro terminale e lancia:

```bash
opencode attach http://localhost:4096
```

Aggancia l'interfaccia testuale al server già in esecuzione: *TUI e web condividono sessioni e stato*. Puoi iniziare una conversazione nel browser, continuarla da terminale e tornare indietro senza perdere nulla.

Se il server è protetto da password (passo 7), ti serviranno i flag `--username` e `--password`:

```bash
opencode attach http://localhost:4096 --username opencode --password la-tua-password
```

## 7\. Proteggi l'accesso con autenticazione

Se esponi il server sulla rete (`--hostname 0.0.0.0`), proteggilo con due variabili d'ambiente:

```bash
OPENCODE_SERVER_PASSWORD=unasupersecret opencode web --hostname 0.0.0.0 --port 4096
```

Lo username di default è *`opencode`*. Per cambiarlo:

```bash
OPENCODE_SERVER_USERNAME=admin OPENCODE_SERVER_PASSWORD=unasupersecret opencode web --hostname 0.0.0.0 --port 4096
```

All'apertura del browser vengono chiesti username e password. Stessa autenticazione per `opencode attach`, `opencode run --attach` e qualsiasi altro client.

## Verifica

Per verificare che tutto funzioni:

1. *Server in esecuzione*: apri `http://localhost:4096` (o la porta che hai scelto) nel browser. Devi vedere l'interfaccia web di opencode con la lista delle sessioni.
2. *Nuova sessione*: clicca "New Session", seleziona un modello, scrivi un prompt di prova (ad esempio "Ciao, chi sei?") e invia. Dovresti ricevere una risposta dal modello.
3. *TUI collegata*: da un altro terminale, lancia `opencode attach http://localhost:4096`. La TUI dovrebbe connettersi e mostrare le stesse sessioni visibili nell'interfaccia web.
4. *Autenticazione attiva* (se l'hai configurata): chiudi la sessione del browser, riapri l'URL e verifica che ti venga chiesto username e password.

## Limiti noti

- Su Windows l'interfaccia web è più stabile da *WSL* che da PowerShell. Se sei su Windows e qualcosa non funziona, installa opencode dentro WSL e avvia il server da lì.
- L'mDNS richiede che il servizio **Avahi** (Linux) o **Bonjour** (macOS) sia attivo sulla macchina che ospita il server e sui client che vogliono risolverlo.

OAuth: sessione a scadenza — Se usi provider via OAuth (ChatGPT Plus/Pro, Anthropic Claude Pro/Max), la sessione può scadere dopo alcune ore. Quando succede, opencode smette di rispondere e devi ripetere il login. La chiave API tradizionale non ha questo problema: se puoi, usa quella per sessioni lunghe.

SPONSORED 

Usa il mio link di referral, se ti iscrivi e ti abboni a Go, entrambi riceveremo un credito di utilizzo di $5 da applicare ai limiti di utilizzo Go

  
[Abbonati a Opencode a 5$ e riscatta 5$ di cretito ](https://opencode.ai/go?ref=SZ5ZSQC609)