Sezioni dell'archivio conoscenza ▾

Navigazione

▸ Inizia qui Per ruolo

Categorie

Strumenti 52
Glossario 12

Strumenti

Kimi Code CLI: agente Moonshot AI con la propria chiave tramite Gonka

Kimi Code CLI (comando kimi) è un agente da terminale per lo sviluppo realizzato da Moonshot AI: legge e corregge il codice, esegue comandi, effettua ricerche tra i file e distribuisce sotto-task ad altri agenti. L'attuale versione sostituisce il client Python kimi-cli: è scritta in TypeScript, si installa come un singolo binario ed è rilasciata con licenza MIT. Tutto ciò che segue fa riferimento alla versione 2.0.2 del 19 settembre 2026, con cui abbiamo completato il percorso dall'installazione alla ricezione della risposta dell'agente il 23 settembre.

Di norma, Kimi Code funziona sui modelli Kimi tramite l'accesso all'account (/login), ma può supportare qualsiasi provider: ogni endpoint compatibile con OpenAI viene descritto in poche righe nel file ~/.kimi-code/config.toml, senza necessità di un account Moonshot. JoinGonka Gateway è tale endpoint per la rete decentralizzata Gonka.

Punto fondamentale: i modelli Kimi non sono attualmente presenti nella rete Gonka; il modello Kimi K2.6 è stato gestito dalla rete da maggio a settembre 2026. Oggi sono operativi DeepSeek V4 Flash, GLM-5.3 Flash e MiniMax M2.7, e questa guida spiega come eseguire Kimi Code su di essi. L'agente rimane lo stesso, cambiano il modello e il costo: $0.0069 per milione di token in ingresso, uguale per tutti i modelli della rete. Dopo la conferma dell'indirizzo, riceverai 3M di token gratuiti sul tuo conto, sufficienti per replicare tutto da solo.

Avvio rapido: installazione e un solo comando

Passo 1: installare Kimi Code. I metodi ufficiali dalla documentazione:

# macOS and Linux: prebuilt binary, no Node.js needed
curl -fsSL https://code.kimi.com/kimi-code/install.sh | bash

# Windows (PowerShell); Git for Windows is required before the first run
irm https://code.kimi.com/kimi-code/install.ps1 | iex

# npm (Node.js 22.19 or newer)
npm install -g @moonshot-ai/kimi-code

Lo script mette il binario in ~/.kimi-code/bin/kimi e aggiunge questa directory al PATH tramite il file di configurazione della shell. Le sue build sono solo per glibc: su Alpine e altri sistemi con musl si fermerà e proporrà npm. Riapri il terminale e verifica: kimi --version.

Passo 2: ottenere la chiave. Registrati su gate.joingonka.ai/register, conferma l'indirizzo e crea nella sezione «Chiavi API» una chiave con prefisso jg-.

Passo 3: avviare l'installer.

npx @joingonka/setup --tool kimi-code

L'installer chiederà la chiave (non si passa negli argomenti della riga di comando) e scriverà in ~/.kimi-code/config.toml solo le proprie tabelle:

  • il provider [providers.joingonka] con tipo openai — cioè il protocollo Chat Completions — con l'indirizzo del gateway e la chiave nel campo api_key; il file avrà i permessi 600;
  • una tabella [models."joingonka/…"] per ogni modello della rete — con la vera finestra di contesto e il tetto di risposta e le capacità esplicite: chiamata di strumenti per tutti, ragionamento per DeepSeek V4 Flash e GLM-5.3 Flash, per MiniMax M2.7 solo gli strumenti;
  • default_model — DeepSeek V4 Flash, se il modello predefinito non è ancora scelto o punta a un modello del gateway uscito dalla rete; la scelta di un altro provider senza il flag --model non viene toccata, ma suggerisce il comando per un avvio singolo;
  • salverà una copia del file precedente, non toccherà provider altrui né i tuoi campi nelle tabelle del gateway, e alla fine invierà una richiesta reale al gateway e dirà se chiave, indirizzo e modello sono stati accettati.

Ecco come appariva l'output nella nostra esecuzione (abbreviato):

Configured provider "joingonka" in ~/.kimi-code/config.toml
Base URL: https://gate.joingonka.ai/v1 (provider type "openai" — Chat Completions)
Models: joingonka/MiniMaxAI/MiniMax-M2.7, joingonka/deepseek-ai/DeepSeek-V4-Flash-0731, joingonka/zai-org/GLM-5.3-Flash
Default model: joingonka/deepseek-ai/DeepSeek-V4-Flash-0731
…
✓ Verified: the gateway accepted the key, base URL and model.

Un altro modello predefinito si imposta con il flag --model (glm, minimax o l'identificatore completo); la modalità senza domande prende la chiave dalla variabile d'ambiente:

JOINGONKA_API_KEY=jg-your-key npx @joingonka/setup --tool kimi-code --model glm --non-interactive

La directory dei dati, spostata con la variabile KIMI_CODE_HOME, viene considerata automaticamente dall'installer. Invece ~/.kimi è la directory del precedente client Python kimi-cli: Kimi Code 2.x non la legge, e al primo avvio propone di importarne le impostazioni (lo stesso fa kimi migrate).

Configurazione manuale: config.toml

Tutto ciò che fa l'installer si può scrivere anche a mano. Kimi Code salva la configurazione in TOML; le chiavi delle tabelle con punto o barra si mettono tra virgolette. Ecco lo snippet completo per la rete Gonka:

default_model = "joingonka/deepseek-ai/DeepSeek-V4-Flash-0731"

[providers.joingonka]
type = "openai"
base_url = "https://gate.joingonka.ai/v1"
api_key = "jg-your-key"

[models."joingonka/deepseek-ai/DeepSeek-V4-Flash-0731"]
provider = "joingonka"
model = "deepseek-ai/DeepSeek-V4-Flash-0731"
max_context_size = 380000
max_output_size = 32768
capabilities = ["thinking", "tool_use"]
display_name = "DeepSeek V4 Flash (Gonka)"

[models."joingonka/zai-org/GLM-5.3-Flash"]
provider = "joingonka"
model = "zai-org/GLM-5.3-Flash"
max_context_size = 390000
max_output_size = 8192
capabilities = ["thinking", "tool_use"]
display_name = "GLM 5.3 Flash (Gonka)"

# MiniMax M2.7, a differenza di DeepSeek e GLM, è dichiarato senza thinking
[models."joingonka/MiniMaxAI/MiniMax-M2.7"]
provider = "joingonka"
model = "MiniMaxAI/MiniMax-M2.7"
max_context_size = 200000
max_output_size = 8192
capabilities = ["tool_use"]
display_name = "MiniMax M2.7 (Gonka)"
CampoValoreA cosa fare attenzione
default_modelalias del modelloFa riferimento al nome della tabella [models."…"], non all'identificativo del modello
max_context_sizefinestra del modelloCampo obbligatorio; su questo l'agente decide quando comprimere il contesto
max_output_sizetetto della rispostaFinisce nella richiesta come max_tokens — l'abbiamo verificato sul wire. Senza questo campo Kimi Code richiederebbe fino a 131 072 token di risposta, più di quanto restituiscano i modelli della rete
capabilitiesthinking, tool_useLe capacità dei modelli sconosciuti Kimi Code non le indovina dal nome — dichiaratele esplicitamente

Dove tenere la chiave. Kimi Code non prende le chiavi dall'ambiente della shell: export OPENAI_API_KEY=… non ha effetto. Ci sono due modi, e non si possono usare contemporaneamente:

ModoSintassiCome si comporta
Chiave nel fileapi_key = "jg-…"È così che scrive l'installer; funziona da qualsiasi ambiente, tenete il file con permessi 600
Nome della variabileapi_key_env = "JOINGONKA_API_KEY"Il valore viene letto dall'ambiente del processo a ogni richiesta; senza la variabile l'avvio fallisce con un errore che la nomina

Se mettete entrambi i campi nella stessa tabella, Kimi Code li rifiuta all'avvio: has both apiKey and apiKeyEnv set in config.toml - they are mutually exclusive. Tenete presente che kimi doctor non intercetta questo conflitto — controlla solo la forma del file.

Quale tipo di provider scegliere. Kimi Code supporta diversi protocolli, e anche il gateway:

typebase_urlQuando sceglierlo
openaihttps://gate.joingonka.ai/v1Opzione principale: il percorso canonico del gateway, quello che scrive l'installer
anthropichttps://gate.joingonka.aiFormato Anthropic Messages, il percorso /v1/messages lo aggiunge il client; il ciclo completo con gli strumenti nel nostro test è andato a buon fine

Un provider in Kimi Code parla un solo protocollo, quindi il secondo protocollo è un secondo provider con un altro nome. In modalità interattiva i provider si aggiungono e si rimuovono con il comando /provider dentro l'agente.

Modelli, Thinking e sottogenti

In Kimi Code un modello è un alias, il nome di una tabella [models."…"]. L'installer li nomina con lo schema joingonka/<model-id>, proprio come Kimi Code nomina i propri (kimi-code/k3), ed è l'alias che serve ovunque si selezioni un modello. Un identificatore senza prefisso, ad esempio MiniMaxAI/MiniMax-M2.7, Kimi Code non lo trova.

DoveComeViene salvato
config.tomldefault_model = "joingonka/deepseek-ai/DeepSeek-V4-Flash-0731"sì, per le nuove sessioni
Flag di avviokimi -m "joingonka/zai-org/GLM-5.3-Flash"no, solo per questa esecuzione
Interfaccia/model, selezione dalla listaInvio riscrive default_model, Alt+S solo per la sessione corrente

Nella nostra esecuzione /model appariva così:

Select a model  (type to search)
Tab toggle provider · ↑↓ navigate · Enter select · Alt+S session-only · Esc cancel

 All   joingonka

   MiniMax M2.7 (Gonka)       joingonka
 ❯ DeepSeek V4 Flash (Gonka)  joingonka ← current
   GLM 5.3 Flash (Gonka)      joingonka

 Thinking  (←→ to switch)
  [ On ]    Off

Interruttore Thinking. Il toggle del ragionamento sotto la lista, sui modelli della rete, di per sé non cambia nulla: Kimi Code invia il livello di ragionamento solo ai modelli che dichiarano dei livelli. Per GLM-5.3 Flash conviene farlo — il suo ragionamento si disattiva con il valore low (per i dettagli, vedi la scheda del modello). Aggiungi tre campi alla tabella del modello:

[models."joingonka/zai-org/GLM-5.3-Flash"]
# … fields written by the installer …
support_efforts = ["low", "high"]
default_effort = "high"
off_effort = "low"

Abbiamo verificato cosa arriva al gateway: con Thinking attivo Kimi Code invia reasoning_effort: "high" e il modello ragiona; con Thinking disattivato invia "low" e la risposta arriva senza il blocco di ragionamento. Una nuova esecuzione dell'installer non toccherà questi campi: modifica solo le proprie chiavi.

Modello per i subagent. I subagent integrati (coder, explore, plan) usano per impostazione predefinita il modello dell'agent principale. La sezione [secondary_model] mette a loro disposizione un pool, dal quale l'agent principale sceglie da sé in base ai suggerimenti. Nel pool va bene qualsiasi alias — DeepSeek V4 Flash, GLM-5.3 Flash o MiniMax M2.7:

[secondary_model]
default_model = "joingonka/deepseek-ai/DeepSeek-V4-Flash-0731"

[secondary_model.models]
"joingonka/deepseek-ai/DeepSeek-V4-Flash-0731" = "Long context and long output: big reads and edits."
"joingonka/zai-org/GLM-5.3-Flash" = "Reasoning model for tricky logic and debugging."

Le chiavi del pool devono coincidere con gli alias di [models]: secondo la documentazione un riferimento inesistente impedisce di creare la sessione. La riga per MiniMax M2.7 si aggiunge allo stesso modo; i riferimenti a modelli usciti dalla rete l'installer li ripulisce da solo alla successiva esecuzione.

Quale modello scegliere. Il prezzo è identico per tutti i modelli della rete, quindi la scelta riguarda il comportamento. Ecco come si sono comportati in Kimi Code 2.0.2 sul task «leggi il file e trova l'errore» (verificato il 23 settembre 2026):

ModelloContesto / rispostaCome si comporta in Kimi Code
DeepSeek V4 Flash380K / 32768La scelta dell'installer: finestra ampia e il tetto di risposta più alto della rete. Risolve il task correttamente
GLM-5.3 Flash390K / 8192Modello di ragionamento: il ragionamento va su un flusso separato (in kimi -p su stderr), la risposta su stdout. Il ragionamento rientra nel limite della risposta
MiniMax M2.7200K / 8192Risolve il task correttamente in due passaggi; il ragionamento va su un flusso separato (in kimi -p su stderr), su stdout solo la risposta

Verifica: cosa dovrebbe accadere

Per prima cosa, verifica che Kimi Code veda il provider e che il file venga analizzato senza errori:

$ kimi provider list
joingonka  type=openai  models=3  source=inline

Default model: joingonka/deepseek-ai/DeepSeek-V4-Flash-0731

$ kimi doctor
OK config.toml  ~/.kimi-code/config.toml

Non pubblicare da nessuna parte l'output di kimi provider list --json: la chiave al suo interno è in chiaro.

Poi, un'esecuzione singola. Metti nella directory un calc.py con una funzione di addizione che in realtà sottrae, e chiedi di trovare l'errore:

kimi -p "Read calc.py and tell me in one sentence whether it has a bug."

In modalità -p la risposta va su stdout, mentre il ragionamento e lo svolgimento degli strumenti vanno su stderr, quindi l'output è comodo da analizzare con uno script. Ecco come ha risposto GLM-5.3 Flash:

• Yes: the `add` function in calc.py:2 returns `a - b` instead of `a + b`, so `add(2, 3)` prints `-1`.

Attenzione: con -p Kimi Code non chiede nulla ed esegue i comandi da solo — nella nostra esecuzione il modello ha provato a lanciare python3 senza chiedere per verificare l'ipotesi. Il primo avvio dell'interfaccia in una nuova directory inizia con la domanda Trust this folder?, che riguarda i server MCP del progetto, e sulla schermata di benvenuto si vede il modello: Model: DeepSeek V4 Flash (Gonka). L'altra metà della verifica è il pannello del gateway: nella sezione "Utilizzo" la richiesta comparirà nella ripartizione per modelli e per chiavi.

Se qualcosa è andato storto, la diagnosi di solito si legge direttamente dal messaggio:

Cosa si vedeCosa significaCosa fare
No model configured. Run `kimi` and use /login to sign in …Il provider non è configurato oppure default_model è vuotoAvvia l'installer o inserisci default_model
Model "deepseek-ai/DeepSeek-V4-Flash-0731" is not configured in config.toml.In -m è stato passato l'identificativo del modello invece dell'aliasAggiungi il prefisso: joingonka/deepseek-ai/…
provider.auth_error: 401 Invalid API keyIl gateway non ha accettato la chiaveControlla api_key in [providers.joingonka]: Kimi Code non legge le variabili di shell
declares api_key_env = "JOINGONKA_API_KEY" … but the environment variable is not set or is emptyHai scelto il metodo con variabile, ma questa non è presente nell'ambienteEsporta la variabile prima dell'avvio oppure torna a api_key
429 … currently overloaded in the Gonka network (rate limit)Il modello sulla rete ha esaurito la capacità disponibileKimi Code ritenta da solo questi errori; se persiste, cambia modello con /model. Lo stato è visibile sulla pagina di stato

Quanto costa

Per ogni tua frase, Kimi Code aggiunge un system prompt e le descrizioni di circa due dozzine di strumenti integrati, e un'attività richiede solitamente diversi passaggi. Nel nostro test, ogni passaggio ha comportato circa 20 mila token in input, e "leggi il file, trova l'errore" ha richiesto due passaggi — circa 40 mila token, quasi tutti in input. Per questo motivo, il prezzo per token è fondamentale qui.

Attraverso il JoinGonka Gateway i token costano $0.0069 per milione in input e $0.021 per milione in output — il prezzo è identico per tutti i modelli della rete e viene aggiornato su questa pagina da una fonte in tempo reale.

ScenarioConsumoVia Gateway
Attività singola: leggere il file, trovare l'errore~40K tokenfrazioni di centesimo
Giornata di lavoro attivo3-7M tokenpochi centesimi
Mese di sviluppo attivo~150M tokencirca un dollaro

Le stime nella colonna di destra si basano sui prezzi di settembre 2026. Per confronto, ecco come si può pagare per i modelli in Kimi Code:

MetodoCome si connetteCosa serve
Kimi Code (OAuth)/login, accesso tramite codice dispositivoaccount Kimi; limiti e prezzi secondo i termini del servizio
Kimi Platform/login con API-key della piattaformachiave da platform.kimi.com o platform.kimi.ai, pagamento secondo il listino della piattaforma
JoinGonka Gatewayprovider in config.tomlchiave jg-…; nessun account Moonshot necessario, pagamento per token effettivi, consumo visibile nel pannello

Il consumo esatto e il credito residuo si trovano nel pannello, nelle sezioni "Usage" e "Billing". Kimi Code tiene traccia della lunghezza della conversazione: la barra di stato mostra quanta parte del contesto è occupata, e il comando /compact comprime la cronologia manualmente.

Cosa considerare nel lavoro

Modalità di autorizzazione. Nell'interfaccia Kimi Code, la modalità predefinita è Always Ask: la lettura viene eseguita immediatamente, mentre le modifiche e i comandi vengono eseguiti dopo la tua conferma. Ask When Needed (/yolo o flag --yolo) salta le modifiche e i comandi di routine, ma chiede conferma per file sensibili e comandi pericolosi; Never Ask (/auto, --auto) non chiede nulla. La modalità di pianificazione si attiva con Shift-Tab. L'esecuzione singola kimi -p viene sempre eseguita senza domande, quindi avviala in un container o in una copia di lavoro separata.

Cosa funziona senza un account Moonshot. Il tuo provider gestisce tutto ciò che fa il modello: lettura e modifica del codice, comandi, sub-agent, sessioni, MCP-server. La ricerca web è un servizio Moonshot: senza l'accesso all'account, lo strumento WebSearch non è presente nel set di agenti, ma il caricamento della pagina per indirizzo (FetchURL) rimane. I modelli di rete sono testuali, quindi l'input di immagini e video non funziona.

Telemetria e aggiornamenti. La telemetria anonima è attiva per impostazione predefinita: puoi disattivarla con la riga telemetry = false in config.toml o la variabile KIMI_DISABLE_TELEMETRY=1. Gli aggiornamenti vengono installati automaticamente ([upgrade] auto_install = true in ~/.kimi-code/tui.toml); se hai bisogno di prevedibilità, disattivali e aggiorna con il comando kimi upgrade. Il gateway non memorizza il contenuto dei prompt e delle risposte; nelle statistiche rimangono solo gli aggregati di consumo.

Ambienti multipli. Kimi Code non dispone di impostazioni dei provider a livello di progetto. Puoi separare le chiavi di lavoro e personali con la variabile KIMI_CODE_HOME: con essa, le impostazioni, le sessioni e i log vengono spostati in un'altra directory, e il programma di installazione, lanciato con la stessa variabile, scrive nello stesso posto.

Nell'editor. Kimi Code lavora all'interno di Zed, JetBrains e altri client ACP tramite il comando kimi acp, con la stessa directory di dati e gli stessi provider.

Anche i laboratori i cui modelli sono serviti dalla rete rilasciano i propri agenti: MiniMax ha il terminale MiniMax Code, DeepSeek ha DeepSeek Harness, e Z.ai, gli autori di GLM, hanno ZCode. Tutti si collegano allo stesso gateway con la stessa chiave.

Kimi Code CLI è un agente da terminale di Moonshot AI, aperto a provider di terze parti: al momento non ci sono modelli Kimi nella rete Gonka, ma con DeepSeek V4 Flash, GLM-5.3 Flash e MiniMax M2.7 funziona regolarmente senza un account Moonshot. Il percorso rapido è npx @joingonka/setup --tool kimi-code: il programma di installazione scriverà nel ~/.kimi-code/config.toml il provider joingonka con tipo openai e chiave, le tabelle dei modelli con limiti equi e il modello predefinito, quindi verificherà la connessione con una richiesta reale. Il modello viene selezionato con l'alias joingonka/<id> in /model o con il flag -m; affinché il pulsante Thinking funzioni con GLM-5.3 Flash, dichiara support_efforts e off_effort = "low". La verifica si effettua con kimi provider list e kimi -p su un file con un errore; paghi per i token effettivi al prezzo unico della rete.

Vuoi saperne di più?

Esplora altre sezioni o inizia a guadagnare GNK subito.

Ottieni chiave e token gratuiti →