Documentazione

Documentazione

GitHub Copilot CLI

Il percorso BYOK di Copilot CLI richiede quattro variabili d’ambiente e, secondo la documentazione di GitHub, non richiede alcun accesso a GitHub. Indirizzalo a Kunavo e l’agente userà un saldo prepagato anziché gli AI Credits; /delegate, il server MCP di GitHub e GitHub Code Search continueranno invece a richiedere quell’accesso.

Quattro variabili d'ambiente — COPILOT_PROVIDER_BASE_URL, COPILOT_PROVIDER_TYPE, COPILOT_PROVIDER_API_KEY e COPILOT_MODEL — portano Copilot CLI sul tuo endpoint, e GitHub documenta che BYOK non richiede un accesso GitHub.

la shell da cui avvii copilot
# Set before you start Copilot CLI. Variable names and order are GitHub's;
# COPILOT_PROVIDER_BASE_URL and COPILOT_MODEL are the two marked Required.
export COPILOT_PROVIDER_BASE_URL=https://api.kunavo.com/v1   # see the note below
export COPILOT_PROVIDER_TYPE=openai                          # the default, shown for clarity
export COPILOT_PROVIDER_API_KEY=sk-kn-...
export COPILOT_MODEL=claude-sonnet-5

copilot
GitHub non specifica quale percorso aggiunga Copilot CLI; l’esempio qui sopra con /v1 è quindi un caso pratico, non una regola. La pagina BYOK definisce il campo solo come «URL di base dell’endpoint API del provider di modelli» e gli esempi forniti puntano in entrambe le direzioni: quello remoto compatibile con OpenAI è https://api.openai.com/v1, mentre quelli di Ollama e Anthropic sono origini senza percorso. Questa pagina usa la forma remota compatibile con OpenAI, perché è quella di Kunavo. Se le richieste restituiscono 404, il suffisso è stato duplicato: rimuovilo e usa https://api.kunavo.com. Un 401 riguarda la chiave, non l’URL; il controllo curl qui sotto permette di distinguere i due casi prima di diagnosticare la CLI.
Un file ~/.copilot/providers.json residuo prevale silenziosamente su queste esportazioni. Il riferimento GitHub alla directory di configurazione afferma che, se quel file dichiara un provider o un modello, prevale sulle variabili COPILOT_PROVIDER_*, definite legacy; la guida BYOK, invece, non menziona mai il file. Se la CLI ignora l’URL di base appena esportato, controlla prima quel file. Lo stesso riferimento descrive il file solo come un oggetto JSON con chiavi providers e models e non pubblica alcuno schema, quindi qui non viene mostrato alcun esempio; per maggiori informazioni GitHub rimanda a copilot help providers.
Questa configurazione è stata ricavata dalla documentazione ufficiale di GitHub alla data indicata qui sotto. Kunavo non ha eseguito test runtime di Copilot CLI sul proprio endpoint: né una sessione, né un turno in streaming, né un ciclo completo di interazione con gli strumenti. Lo stesso vale per tutti gli altri client di questa famiglia. Una guida alla configurazione pubblicata non è un test. GitHub richiede che un modello BYOK supporti l’uso degli strumenti e lo streaming, altrimenti restituisce un errore; il primo compito da assegnargli dovrebbe quindi riguardare un file, anziché limitarsi a un saluto.
Kunavo non offre modelli di embedding, sintesi vocale o riconoscimento vocale, quindi questo endpoint risponde solo alle richieste di chat. GitHub Code Search, il server MCP di GitHub e /delegate sono funzionalità gestite da GitHub che un provider BYOK non sostituisce. GitHub specifica che non sono disponibili senza accesso; puoi mantenerle accedendo e configurando contemporaneamente un provider.
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 GitHub Copilot CLI.

Passo dopo passo

  1. Crea una chiave su /app/keys e copiala: viene mostrata una sola volta.
  2. Controlla la presenza di un ~/.copilot/providers.json obsoleto, o di qualsiasi file a cui punti COPILOT_PROVIDERS_CONFIG. Se dichiara un provider o un modello, prevale su tutto ciò che viene impostato al passaggio 3.
  3. Esporta COPILOT_PROVIDER_BASE_URL, COPILOT_PROVIDER_API_KEY e COPILOT_MODEL come indicato sopra. COPILOT_PROVIDER_TYPE ha come valore predefinito openai, che GitHub descrive come compatibile con «qualsiasi altro endpoint compatibile con l’API OpenAI Chat Completions».
  4. Avvia copilot dalla stessa shell: queste variabili vengono lette all’avvio, quindi un terminale aperto in precedenza conserverà i vecchi valori.
  5. Assegnagli un’attività che legga e modifichi un file. Copilot CLI richiede che il modello supporti l’uso degli strumenti e lo streaming; una prima esecuzione che verifichi entrambi ti dirà più di un semplice saluto. --model sostituisce COPILOT_MODEL per una singola esecuzione, se vuoi confrontare due ID.

Verificato rispetto a «Using your own LLM models in GitHub Copilot CLI» di GitHub 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.

Questa è la versione breve. La guida completa, con scelta del modello, costo di una sessione reale e modalità di errore, è in Copilot CLI e Claude Code — i limiti del BYOK e le due fatture.

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 GitHub Copilot CLI.

# 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 GitHub Copilot CLI
claude-sonnet-5$1.40 / $7.00il modello di lavoro predefinito per le sessioni che modificano file
claude-opus-5$3.50 / $17.50pianificare una modifica che sarebbe costosa se andasse male
claude-haiku-4-5$0.70 / $3.50turni economici: triage, riepiloghi, il ciclo che gira tutto il giorno
gpt-5-6-sol$2.00 / $12.00un secondo parere da un’altra famiglia, con la stessa chiave e lo stesso URL di base
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.

L’altra opzione: COPILOT_PROVIDER_TYPE=anthropic

GitHub documenta tre tipi di provider e Kunavo supporta due dei formati wire corrispondenti: /v1/chat/completions per openai e /v1/messages per anthropic. L’esempio Anthropic nella pagina di GitHub richiede quattro esportazioni e usa come URL di base l’origine senza percorso https://api.anthropic.com:

  1. COPILOT_PROVIDER_TYPE=anthropic
  2. COPILOT_PROVIDER_BASE_URL — seguendo la forma dell’esempio GitHub, https://api.kunavo.com senza suffisso, perché la route ufficiale di Anthropic si trova in /v1/messages sotto quell’origine e Kunavo la replica. Vale la stessa precisazione di sopra: GitHub mostra un esempio, non una regola.
  3. COPILOT_PROVIDER_API_KEY — la tua chiave sk-kn-. La superficie Messages di Kunavo la accetta sia come x-api-key sia come Authorization: Bearer, quindi verrà letta qualsiasi intestazione scelga la CLI.
  4. COPILOT_MODEL — l’ID previsto dal tuo provider. L’esempio GitHub usa una grafia con trattini tipica di Anthropic, mentre il suo elenco dei modelli supportati scrive le stesse famiglie con i punti; con BYOK, l’ID viene inviato al tuo endpoint, quindi usa la grafia indicata nella tabella qui sopra.

Perché questa pagina dà priorità al tipo openai: la documentazione GitHub non specifica se il percorso BYOK di Anthropic inoltri cache_control, anthropic-beta o un particolare anthropic-version. Questo incide sui costi quando il contesto viene riutilizzato; vedi la memorizzazione nella cache dei prompt. Non intendiamo fare supposizioni su una risposta non documentata. Il tipo openai non presenta questa incertezza, quindi è quello per cui è fornito un blocco di configurazione completo.

Domande frequenti

Come posso indirizzare GitHub Copilot CLI a un endpoint API personalizzato?

Imposta le variabili d’ambiente prima di avviare la CLI. La pagina BYOK di GitHub ne indica due come obbligatorie: COPILOT_PROVIDER_BASE_URL e COPILOT_MODEL; aggiunge COPILOT_PROVIDER_API_KEY per gli endpoint che richiedono autenticazione. COPILOT_PROVIDER_TYPE ha come valore predefinito openai, descritto da GitHub come compatibile con OpenAI, Ollama, vLLM, Foundry Local e qualsiasi altro endpoint compatibile con l’API OpenAI Chat Completions; gli altri valori sono azure e anthropic. GitHub documenta altrove un’avvertenza: se ~/.copilot/providers.json dichiara un provider o un modello, prevale su tutte queste variabili.

L’URL di base di Copilot CLI deve terminare con /v1?

La documentazione GitHub non chiarisce questo punto. Il campo è definito solo come «URL di base dell’endpoint API del provider di modelli» e gli esempi della pagina puntano in entrambe le direzioni: l’esempio remoto compatibile con OpenAI è https://api.openai.com/v1, mentre quelli di Ollama e Anthropic sono origini senza percorso. Per un endpoint compatibile con OpenAI, inizia con la forma mostrata da GitHub per quel caso: https://api.kunavo.com/v1. Se le richieste restituiscono un 404 anziché un 401, il suffisso è stato duplicato: rimuovilo. Un 404 indica un problema con l’URL, un 401 con la chiave; una semplice richiesta curl allo stesso URL di base permette di distinguerli prima di diagnosticare la CLI.

Il BYOK di GitHub Copilot CLI richiede un account GitHub?

No. La documentazione di autenticazione di GitHub specifica che, quando Copilot CLI è configurata con la chiave API del tuo provider LLM, non è necessario autenticarsi a GitHub e la CLI si connette direttamente al provider configurato. Tre funzionalità non saranno quindi disponibili: /delegate, il server MCP di GitHub e GitHub Code Search. Puoi anche accedere e configurare un provider contemporaneamente per mantenere entrambe le opzioni. GitHub documenta inoltre COPILOT_OFFLINE=true per gli ambienti in cui la CLI non deve contattare affatto i server GitHub. La rete è isolata solo se il provider è locale, perché un URL di base remoto riceve comunque i tuoi prompt e il contesto del codice.

Kunavo ha testato GitHub Copilot CLI sul proprio endpoint?

No. La configurazione in questa pagina è tratta dalla documentazione BYOK ufficiale di GitHub alla data indicata; nessuna informazione deriva da test in esecuzione: né una sessione, né un turno in streaming, né un ciclo completo di interazione con gli strumenti. Lo stesso vale per tutti gli altri client documentati qui. GitHub richiede che un modello BYOK supporti l’uso degli strumenti e lo streaming, altrimenti restituisce un errore. La verifica iniziale più affidabile è quindi eseguire un’attività che legga e modifichi un file, usando gli addebiti registrati e il comportamento della CLI come riscontro, anziché questa pagina.