
Configurazione di OpenCode per Claude: impostazione di opencode.json, modelli ed errori comuni
OpenCode legge le proprie impostazioni da opencode.json. Per usarlo con Claude tramite questo gateway, modifica un solo valore del provider Anthropic, baseURL, e fornisci una chiave. Di seguito trovi due configurazioni funzionanti, le impostazioni del modello e del contesto che contano e le soluzioni agli errori che gli utenti di OpenCode incontrano su questo gateway, ricavate dai nostri log delle richieste.
Dove si trova opencode.json
OpenCode unisce una configurazione globale a una specifica per progetto: ~/.config/opencode/opencode.json per le impostazioni che vuoi applicare ovunque, e opencode.json nella directory radice di un progetto per quel repository. Aggiungendo la riga $schema ottieni completamento automatico e validazione nella maggior parte degli editor.
Non inserire la chiave nel file. Salvala in una variabile d'ambiente e fai riferimento a essa come {env:AIPRIME_API_KEY}. Le chiavi che aggiungi con /connect all'interno di OpenCode vengono memorizzate in ~/.local/share/opencode/auth.json; opencode auth list mostra ciò che vi è memorizzato.
export AIPRIME_API_KEY=your_gateway_key # add to ~/.bashrc or ~/.zshrc
opencode auth list # credentials OpenCode already knows aboutOpzione 1: punta il provider Anthropic integrato al gateway
La modifica minima: mantieni il provider Anthropic di OpenCode e il suo elenco di modelli e sovrascrivi la destinazione delle richieste.
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"anthropic": {
"options": {
"baseURL": "https://aiprimetech.io/v1",
"apiKey": "{env:AIPRIME_API_KEY}"
}
}
},
"model": "anthropic/claude-sonnet-5",
"small_model": "anthropic/claude-haiku-4-5"
}baseURL deve terminare con /v1. Il provider Anthropic di OpenCode è quello dell'AI SDK, @ai-sdk/anthropic, il cui valore predefinito è https://api.anthropic.com/v1; aggiunge /messages a qualunque valore tu gli fornisca. Senza /v1 la richiesta arriva al sito web e restituisce HTML, che OpenCode segnala come errore di parsing.Opzione 2: un provider personalizzato con il tuo elenco di modelli
Una voce separata per il provider mantiene il gateway distinto da qualsiasi accesso Anthropic, ti consente di elencare nel selettore esattamente i modelli che desideri e di impostare i limiti di contesto per ciascun modello.
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"aiprime": {
"npm": "@ai-sdk/anthropic",
"name": "AI Prime Tech",
"options": {
"baseURL": "https://aiprimetech.io/v1",
"apiKey": "{env:AIPRIME_API_KEY}"
},
"models": {
"claude-sonnet-5": { "name": "Claude Sonnet 5", "limit": { "context": 200000, "output": 64000 } },
"claude-opus-5-5": { "name": "Claude Opus 5.5", "limit": { "context": 200000, "output": 64000 } },
"claude-haiku-4-5": { "name": "Claude Haiku 4.5", "limit": { "context": 200000, "output": 32000 } }
}
}
},
"model": "aiprime/claude-sonnet-5",
"small_model": "aiprime/claude-haiku-4-5"
}Preferisci @ai-sdk/anthropic per Claude: usa la Messages API nativa, quindi la memorizzazione nella cache dei prompt e il ragionamento funzionano come previsto da Anthropic. Il gateway supporta anche il formato OpenAI, quindi @ai-sdk/openai-compatible con lo stesso https://aiprimetech.io/v1 URL di base funziona anche in questo caso ed è la modalità da usare per i modelli GPT con la stessa chiave.
Modelli e limiti di contesto
| ID del modello | Usalo per |
|---|---|
claude-sonnet-5 | Scelta predefinita per programmazione e attività degli agenti: veloce, potente, di fascia media. |
claude-opus-5-5 | Ragionamenti più complessi, refactoring estesi, esecuzioni prolungate degli agenti. |
claude-fable-5-1 | Il più capace e il più costoso; riservalo alle attività più difficili. |
claude-haiku-4-5 | Economico e rapido: titoli, riepiloghi, classificazione, piccoli passaggi. |
model è ciò che usa l'agente principale; small_model gestisce attività secondarie economiche, come i titoli delle sessioni. Il limit.context valore indica a OpenCode quando compattare la sessione. Se una sessione lunga fallisce con prompt is too long, riducilo (200000 è un valore sicuro) in modo che OpenCode riassuma prima, invece di inviare più di quanto l'endpoint accetti.
Gli ID dei modelli sono stringhe esatte. I nomi precedenti, come claude-3-5-sonnet-20241022 o gli snapshot datati non sono disponibili; usa gli ID indicati sopra o l'elenco nella tua dashboard.
Verifica la chiave e l'URL prima di avviare OpenCode
Una sola richiesta dal terminale ti indica se la chiave e l'URL sono corretti, indipendentemente dalla configurazione di OpenCode:
curl -s https://aiprimetech.io/v1/messages \
-H "x-api-key: $AIPRIME_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{"model":"claude-haiku-4-5","max_tokens":20,"messages":[{"role":"user","content":"ping"}]}'Una risposta JSON con un content array indica che il gateway funziona correttamente e che qualsiasi problema residuo si trova in opencode.json. Invalid API key indica che la variabile è vuota o contiene la chiave sbagliata.
Risoluzione dei problemi: errori riscontrati dagli utenti di OpenCode
Questi sono gli errori più frequenti con OpenCode su questo gateway, con la relativa soluzione.
| Che cosa vedi | Causa | Soluzione |
|---|---|---|
Un errore di parsing di JSON, con una risposta che inizia con < | baseURL senza /v1: la richiesta ha raggiunto il sito web, non l'API | Termina baseURL con /v1 |
404 page not found | /v1 due volte, quindi il percorso diventa /v1/v1/messages | Usa esattamente https://aiprimetech.io/v1 |
Invalid API key | La variabile non è esportata nella shell da cui è stato avviato OpenCode, oppure è in uso una chiave diversa | echo $AIPRIME_API_KEY, opencode auth list, riavvia OpenCode |
| Modello non supportato / modello non trovato | Un ID che l'endpoint non rende disponibile, spesso un vecchio nome datato | Usa un ID della tabella qui sopra |
prompt is too long: N tokens > N tokens | La sessione ha superato il limite accettato dal modello | /compact, e riduci limit.context |
Concurrency limit exceeded for user | I sottoagenti in parallelo superano il limite di concorrenza della tua chiave | Esegui meno sottoagenti contemporaneamente oppure chiedi all'assistenza un limite di concorrenza più elevato |
Insufficient account balance | Il saldo è esaurito | Ricarica e riprova |
No available accounts o This request could not be completed | Problema temporaneo di capacità a monte | Invia di nuovo il messaggio; cambia modello se il problema persiste |
Per gli errori che provengono dal modello anziché dal client, consulta guida agli errori dell'API di Claude.
Domande frequenti
Dove si trova il file di configurazione di OpenCode?
Come posso usare Claude in OpenCode con una chiave API?
Perché OpenCode fallisce con un errore di parsing o una risposta che inizia con '<'?
OpenCode può usare un accesso Claude Pro o Max?
Ottieni una chiave API: non servono un account Anthropic né una lista d'attesa.
Ottieni la tua chiave APIAI Prime Tech è un gateway API indipendente. Non è affiliato ad Anthropic, non è approvato da Anthropic e non è un suo rivenditore. Claude e i nomi dei modelli correlati sono marchi dei rispettivi proprietari.