Documentazione
Theia IDE
L’IDE Theia offre un provider per modelli OpenAI compatibili arbitrari, configurato come elenco in settings.json. È prevista una voce per ogni id del modello; tutte puntano allo stesso URL di base e usano la stessa chiave.
Una voce in ai-features.openAiCustom.customOpenAiModels — model, url e apiKey — mette Kunavo dietro Theia Coder, Architect e il completamento inline.
{
"ai-features.openAiCustom.customOpenAiModels": [
{
"model": "claude-sonnet-5",
"url": "https://api.kunavo.com/v1",
"id": "kunavo-sonnet-5",
"apiKey": "sk-kn-...",
"developerMessageSettings": "system"
},
{
"model": "claude-haiku-4-5",
"url": "https://api.kunavo.com/v1",
"id": "kunavo-haiku-4-5",
"apiKey": "sk-kn-...",
"developerMessageSettings": "system"
}
]
}url mantiene il /v1. La documentazione descrittiva di Theia non specifica una regola: il Readme dice solo che «model e url sono attributi obbligatori che indicano l’endpoint e il modello da usare». La forma corretta è chiarita dall’esempio pratico nella stessa pagina della documentazione, relativo all’unico fornitore citato che non è OpenAI: "url": "https://api.mistral.ai/v1". Radice dell’endpoint con suffisso incluso, quindi qui https://api.kunavo.com/v1, non l’origine senza percorso. Se una richiesta restituisce 404, controlla per prima cosa quel campo; il curl qui sotto indica quale delle due forme accetta effettivamente l’endpoint.curl qui sotto. Per quanto riguarda il comportamento del client, fai riferimento a Theia.sk-kn-) e aggiungi credito da $10: le chiamate vengono pagate con quel saldo e le chiamate non riuscite non vengono addebitate. La dashboard si apre quindi sulla configurazione Theia IDE.Passo dopo passo
- Crea una chiave su
/app/keyse copiala: viene mostrata una sola volta. - Attiva la funzionalità: secondo la documentazione di Theia, vai in Preferences e abilita l’impostazione «AI-features => AI Enable». Le opzioni seguenti non compariranno finché non lo avrai fatto.
- Apri la vista AI Configuration:
Alt+A, oppure seleziona AI Configuration nel menu Manage (ingranaggio) in basso a sinistra, subito sotto Settings. Le categorie sono General, Providers & Models, Model Aliases, Agents, Prompts & Skills, Variables, Tools, Token Usage e MCP Servers. - Aggiungi le voci sopra. La documentazione descrive l’operazione come un clic sul link nella sezione delle impostazioni per OpenAI Compatible Models — la preferenza è un elenco strutturato e Theia specifica che le impostazioni strutturate senza un editor dedicato “rimandano a
settings.json”, il file in cui si arriva. Un oggetto per ogni ID modello;urleapiKeysi ripetono. - Associa qualcosa a questo modello. In Agents, ogni agente ha un selettore Language Model; molti agenti risolvono invece un alias del modello, quindi impostare
default/code,default/universal,default/code-completion,default/summarizeedefault/fastin Model Aliases consente di spostare più agenti insieme. - Invia un messaggio in chat a Theia Coder, poi chiedigli di intervenire su un file. Gli agenti di questo IDE si affidano alle chiamate agli strumenti e ai contenuti dell’area di lavoro, quindi una prima esecuzione che legge o modifica qualcosa è più indicativa di un saluto — e Token Usage nella stessa vista mostra quanti token è costato il turno.
Verificato rispetto a la pagina delle funzionalità IA dell’IDE Theia, sezione OpenAI Compatible Models il 21 settembre 2026. Le impostazioni di terze parti cambiano; se il nome di un campo qui non corrisponde più a quello visualizzato, fa fede quella pagina, non questa.
Verifica prima di eseguire il debug del client
Una sola richiesta stabilisce se il problema riguarda l'endpoint, la chiave o il file di configurazione. Se restituisce JSON, lo stesso base URL e la stessa chiave funzionano in Theia IDE.
# Settles whether a failure is the endpoint, the key, or the client.
curl -sS https://api.kunavo.com/v1/models \
-H "Authorization: Bearer sk-kn-..."Quale model id inserire nel campo
Ogni modello di testo è raggiungibile come model id: l'elenco aggiornato è GET /v1/models e il catalogo con i prezzi è nella pagina dei modelli. Le tariffe sono in USD per 1M di token, input / output.
| ID del modello | Kunavo ingresso / uscita | Dove si inserisce in Theia IDE |
|---|---|---|
claude-sonnet-5 | $1.40 / $7.00 | Theia Coder e l’alias predefinito/ |
claude-opus-5 | $3.50 / $17.50 | l’Architect in Plan Mode, dove un piano sbagliato è l’errore più costoso |
claude-haiku-4-5 | $0.70 / $3.50 | default/ |
gpt-5-6-sol | $2.00 / $12.00 | un secondo parere da un’altra famiglia — un’altra voce, stesso URL e stessa chiave |
Cosa dichiara Theia per questo provider
La tabella LLM Providers Overview nella pagina ufficiale di Theia valuta ogni provider su tre assi. Si tratta di quanto dichiara Theia su Theia, riportato da quella tabella alla data indicata sopra — non è il risultato di un test di Kunavo; in questa tabella, solo la colonna intitolata “Cosa richiede l’ID modello” è stata redatta qui.
| La riga di Theia | Compatibile con OpenAI | Cosa richiede l’ID modello |
|---|---|---|
| Streaming | Sì (stato: pubblico) | Nessun requisito aggiuntivo. Il Readme documenta enableStreaming sullo stesso oggetto, attivo per impostazione predefinita — impostalo su false se un turno si blocca e vuoi isolare il flusso. |
| Chiamate agli strumenti | Sì (stato: pubblico) | Un ID modello che supporti gli strumenti. Gli agenti che modificano file, eseguono comandi o usano server MCP effettuano tutti chiamate agli strumenti; un ID senza supporto per gli strumenti ti limita alla semplice chat. |
| Output strutturato | Sì (stato: pubblico) | Nessun requisito aggiuntivo in fase di configurazione, ma è l’asse che più probabilmente varia tra ID appartenenti a famiglie diverse dietro un unico endpoint. |
Due paragrafi sopra la tabella, Theia aggiunge un’avvertenza che vale la pena ripetere perché definisce con onestà l’intera pagina: non tutti i modelli “possono funzionare subito, perché potrebbero richiedere personalizzazioni o ottimizzazioni specifiche”.
Cosa comporta davvero un costo
L’IDE Theia è open source e si scarica gratuitamente; le sue funzionalità IA non comportano costi propri — si paga per le chiamate al modello, fatturate da chi detiene la chiave in apiKey. Ci sono due impostazioni, entrambe documentate, che incidono sulla fattura più della scelta del modello:
- Automatic Code Completion è attivo per impostazione predefinita e la documentazione indica che effettua “richieste continue all’LLM sottostante mentre si scrive codice”. È l’agente che si attiva migliaia di volte al giorno. Imposta
default/code-completionsu un ID economico oppure passa l’agente alla modalità manuale in'AIFeatures'=>'CodeCompletion'e attivalo conCtrl+Alt+Space. - Max Context Lines, nello stesso gruppo di impostazioni, limita la quantità di contenuto circostante del file inclusa in ogni richiesta di completamento. Ogni riga viene fatturata come input a ogni chiamata avviata dalla digitazione.
Gli agenti di chat funzionano al contrario: effettuano meno chiamate, usano un contesto molto più ampio e inviano di nuovo gli stessi file dell’area di lavoro a ogni turno. È proprio a questo che serve la memorizzazione nella cache dei prompt — vedi /docs/caching — ed è per questo che le due parti della tabella dei modelli sopra sono suddivise in base alla frequenza di attivazione dell’agente, non alla sua intelligenza.
Quando la connessione non riesce
- 404 —
url. Kunavo serve/v1/chat/completions, quindi il campo deve contenere la radice/v1; un’origine senza altro percorso o un.../chat/completionscompleto non funzionano. - 401 — la chiave. Il Readme di Theia afferma che
apiKey“verrà inviato come Bearer Token nella richiesta di autorizzazione”, esattamente ciò che si aspetta una chiavesk-kn-. Nota il valore predefinito documentato: se manca del tuttoapiKey, Theia inviano-key, quindi un campo mancante sembra una chiave rifiutata, anziché assente. (truesignifica “usa la chiave API OpenAI globale” — non è ciò che vuoi in questo caso.) - L’ID modello non compare nel selettore — l’elenco deriva dalle tue voci
customOpenAiModels, non dall’endpoint; quindi, se manca un ID, manca l’oggetto corrispondente. Il campoidè quello mostrato nell’interfaccia; se lo ometti, viene usato il nome del modello. - Il primo messaggio di sistema viene rifiutato o ignorato — è
developerMessageSettings. Il valore predefinito èdeveloper, un ruolo nel formato OpenAI; nell’esempio di Theia per un fornitore non OpenAI è impostatosystem, motivo per cui il blocco qui sopra fa lo stesso.user,mergeWithFollowingUserMessageeskipsono le alternative documentate. - Non arriva alcuna risposta, da nessuna parte — controlla Workspace Trust. Theia subordina tutte le funzionalità IA a questa impostazione; in un’area di lavoro non attendibile, l’input della chat e il completamento in linea vengono disattivati e viene mostrato il messaggio AI Features are Restricted.
Domande frequenti
Come si usa un’API personalizzata compatibile con OpenAI nell’IDE Theia?
Attiva AI Enable in Preferences → AI-features, poi aggiungi una voce alla preferenza ai-features.openAiCustom.customOpenAiModels. Ogni voce è un oggetto con model, url, id, apiKey e developerMessageSettings, in quest’ordine nell’esempio ufficiale di Theia; model e url sono i due campi obbligatori. L’elenco è un’impostazione strutturata, quindi l’IDE ti indirizza a settings.json per modificarlo. Poi assegna il modello a un agente in Agents, nella vista AI Configuration, oppure a uno degli alias del modello.
Il campo url dell’IDE Theia deve terminare con /v1?
Per un endpoint compatibile con OpenAI come Kunavo, sì. La documentazione di Theia non enuncia la regola in prosa: il Readme dice soltanto che model e url indicano rispettivamente il modello e l’endpoint da usare. Tuttavia, l’esempio pratico nella stessa pagina per un fornitore non OpenAI riporta la radice dell’endpoint con il suffisso: "url": "https://api.mistral.ai/v1". Quindi usa https://api.kunavo.com/v1. Se /v1 manca o è duplicato, si verifica un 404 anziché un errore di autenticazione: così puoi distinguerlo da un problema con la chiave.
L’IDE Theia può usare modelli Claude senza un account Anthropic?
Sì, in due modi. Theia include un provider Anthropic che accetta direttamente una chiave Anthropic e un provider OpenAI Compatible che invia una richiesta nel formato OpenAI all’url configurato e passa direttamente l’ID modello. Con il secondo provider, l’ID viene risolto presso quell’endpoint, anziché all’interno dell’IDE; quindi la credenziale che usi è quella dell’endpoint. Kunavo risponde agli ID Claude tramite la propria interfaccia compatibile con OpenAI: è la combinazione descritta in questa pagina.
A quale agente di Theia devo assegnare ciascun modello?
Suddividi i modelli in base alla frequenza di attivazione dell’agente, anziché stilare una classifica, perché nessuno ha confrontato questi ID nell’IDE. Code Completion viene eseguito continuamente mentre scrivi e il suo contesto è limitato da Max Context Lines, quindi è adatto a un ID economico; Theia Coder modifica i file e richiede chiamate agli strumenti; Architect in Plan Mode è il caso in cui conviene usare un ID più potente e costoso, perché un piano errato può costare un’intera sessione. Gli alias del modello — default/code, default/code-completion, default/fast e gli altri — permettono di spostare più agenti insieme.
Kunavo ha testato l’IDE Theia con il proprio endpoint?
No. In data 21 settembre 2026 è stata verificata la documentazione ufficiale di Theia: l’ID della preferenza, i nomi e l’ordine dei campi e il formato dell’URL di base, citati da theia-ide.org/docs/user_ai/ e dal Readme ai-openai a cui rimanda. Kunavo non ha eseguito una sessione in Theia, un completamento in linea o un ciclo di chiamate agli strumenti, e non fa affermazioni sul comportamento di questo client. L’unica verifica che puoi svolgere autonomamente è controllare se l’endpoint e la chiave funzionano: a questo serve il comando curl in questa pagina.