Documentazione

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.

settings.json — ai-features.openAiCustom.customOpenAiModels
{
  "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.
IDE Theia, non il framework Theia. Lo stesso nome indica sia un’applicazione per utenti finali sia la piattaforma su cui si basano altri strumenti. La preferenza qui sopra riguarda l’IDE e il pacchetto provider OpenAI di Theia AI. Se stai sviluppando un tuo prodotto basato su Theia, i nomi dei campi sono gli stessi, ma vanno impostati nella configurazione del tuo prodotto, non in questo file delle impostazioni.
Questa configurazione è stata ricavata dalla documentazione ufficiale di Theia alla data indicata qui sotto. Kunavo non ha eseguito test dell’IDE Theia sul proprio endpoint: né un turno di chat, né un completamento inline, né una chiamata a uno strumento. Una pagina di configurazione pubblicata non costituisce un test e non va interpretata come tale; ciò che puoi verificare in dieci secondi è il curl qui sotto. Per quanto riguarda il comportamento del client, fai riferimento a Theia.
Kunavo non offre modelli di embedding, sintesi vocale o riconoscimento vocale; questo endpoint risponde quindi solo alle richieste di completamento chat. Le funzionalità IA documentate per l’IDE — agenti di chat, completamento inline e assistenza nel terminale — non richiedono altro; qualsiasi indice vettoriale o passaggio audio presente altrove nella configurazione continua a usare la chiave del provider già associata.
Non hai ancora una chiave? Crea un account Kunavo, genera una chiave (inizia con 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

  1. Crea una chiave su /app/keys e copiala: viene mostrata una sola volta.
  2. 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.
  3. 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.
  4. 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; url e apiKey si ripetono.
  5. 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/summarize e default/fast in Model Aliases consente di spostare più agenti insieme.
  6. 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 modelloKunavo ingresso / uscitaDove si inserisce in Theia IDE
claude-sonnet-5$1.40 / $7.00Theia Coder e l’alias predefinito/code — il modello che modifica i file
claude-opus-5$3.50 / $17.50l’Architect in Plan Mode, dove un piano sbagliato è l’errore più costoso
claude-haiku-4-5$0.70 / $3.50default/fast, default/summarize e default/code-completion — denominazione della chat, ricerche, compattazione e completamento durante la digitazione
gpt-5-6-sol$2.00 / $12.00un secondo parere da un’altra famiglia — un’altra voce, stesso URL e stessa chiave
La fatturazione è per token, usando un saldo prepagato senza canone mensile: vedi billing. In presenza di contesto ripetuto, che costituisce la maggior parte di ciò che invia un editor o un client di chat, prompt caching incide sulla spesa più della scelta del modello.

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 TheiaCompatibile con OpenAICosa richiede l’ID modello
StreamingSì (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 strumentiSì (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 strutturatoSì (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:

  1. 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-completion su un ID economico oppure passa l’agente alla modalità manuale in 'AIFeatures'=>'CodeCompletion' e attivalo con Ctrl+Alt+Space.
  2. 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

  1. 404 — url. Kunavo serve /v1/chat/completions, quindi il campo deve contenere la radice /v1; un’origine senza altro percorso o un .../chat/completions completo non funzionano.
  2. 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 chiave sk-kn-. Nota il valore predefinito documentato: se manca del tutto apiKey, Theia invia no-key, quindi un campo mancante sembra una chiave rifiutata, anziché assente. (true significa “usa la chiave API OpenAI globale” — non è ciò che vuoi in questo caso.)
  3. 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 campo id è quello mostrato nell’interfaccia; se lo ometti, viene usato il nome del modello.
  4. 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 è impostato system, motivo per cui il blocco qui sopra fa lo stesso. user, mergeWithFollowingUserMessage e skip sono le alternative documentate.
  5. 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.