Розділи бази знань ▾

Навігація

▸ Почніть тут За ролями

Категорії

Інструменти 52
Глосарій 12

Інструменти

Kimi Code CLI: агент Moonshot AI на своєму ключі через Gonka

Kimi Code CLI (команда kimi) — термінальний агент для розробки від Moonshot AI: читає та редагує код, запускає команди, шукає по файлах та розподіляє підзавдання субагентам. Нинішня версія прийшла на зміну Python-клієнту kimi-cli: вона написана на TypeScript, встановлюється одним бінарним файлом та відкрита під ліцензією MIT. Усе нижче прив'язано до версії 2.0.2 від 19 вересня 2026 року — на ній ми пройшли шлях від встановлення до відповіді агента 23 вересня.

Штатно Kimi Code працює на моделях Kimi через вхід в акаунт (/login), але провайдерів у ньому може бути скільки завгодно: будь-який OpenAI-сумісний endpoint описується кількома рядками в ~/.kimi-code/config.toml, і акаунт Moonshot для цього не потрібен. JoinGonka Gateway — такий endpoint для децентралізованої мережі Gonka.

Одразу про головне: моделей Kimi в мережі Gonka зараз немає — Kimi K2.6 мережа обслуговувала з травня по вересень 2026 року. Сьогодні в ній працюють DeepSeek V4 Flash, GLM-5.3 Flash та MiniMax M2.7, і цей гайд — про те, як запустити Kimi Code на них. Агент залишається тим самим, змінюються модель та ціна: $0.0069 за мільйон вхідних токенів, одна для всіх моделей мережі. Після підтвердження адреси на рахунок прийдуть 3M безкоштовних токенів — їх вистачить, щоб повторити все це самому.

Швидкий старт: встановлення та одна команда

Крок 1: встановити Kimi Code. Офіційні способи з документації:

# 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

Скрипт кладе бінарник у ~/.kimi-code/bin/kimi і дописує цей каталог у PATH через файл налаштувань оболонки. Збірки в нього лише під glibc: на Alpine та інших системах із musl він зупиниться й запропонує npm. Відкрийте термінал заново й перевірте: kimi --version.

Крок 2: отримати ключ. Зареєструйтеся на gate.joingonka.ai/register, підтвердьте адресу та створіть у розділі «API-ключі» ключ із префіксом jg-.

Крок 3: запустити інсталятор.

npx @joingonka/setup --tool kimi-code

Інсталятор запитає ключ (в аргументах командного рядка він не передається) і допише в ~/.kimi-code/config.toml лише свої таблиці:

  • провайдера [providers.joingonka] з типом openai — це протокол Chat Completions, — адресою шлюзу та ключем у полі api_key; файл отримає права 600;
  • по таблиці [models."joingonka/…"] на кожну модель мережі — зі справжнім вікном контексту й стелею відповіді та явними можливостями: виклик інструментів усім, міркування — DeepSeek V4 Flash і GLM-5.3 Flash, у MiniMax M2.7 лише інструменти;
  • default_model — DeepSeek V4 Flash, якщо модель за замовчуванням ще не вибрано або вона вказує на модель шлюзу, що пішла з мережі; вибір іншого провайдера без флага --model не чіпає, а підказує команду для разового запуску;
  • збереже копію попереднього файлу, чужих провайдерів і ваші поля в таблицях шлюзу не зачепить, а наприкінці надішле живий запит на шлюз і скаже, чи прийнято ключ, адресу та модель.

Так виглядав вивід у нашому прогоні (скорочено):

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.

Іншу модель за замовчуванням задає флаг --model (glm, minimax або повний ідентифікатор); режим без запитань бере ключ зі змінної середовища:

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

Каталог даних, перенесений змінною KIMI_CODE_HOME, інсталятор враховує сам. А ось ~/.kimi — каталог колишнього Python-клієнта kimi-cli: Kimi Code 2.x його не читає, а під час першого запуску пропонує перенести звідти налаштування (те саме робить kimi migrate).

Ручне налаштування: config.toml

Все, що робить інсталятор, можна написати й руками. Kimi Code зберігає налаштування в TOML; ключі таблиць з точкою або слешем беруться в лапки. Повний фрагмент для мережі 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, unlike DeepSeek and GLM, is declared without 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)"
ПолеЗначенняЩо важливо
default_modelаліас моделіПосилається на ім'я таблиці [models."…"], а не на ідентифікатор моделі
max_context_sizeвікно моделіОбов'язкове поле; за ним агент вирішує, коли стискати контекст
max_output_sizeстеля відповідіІде в запит як max_tokens — ми перевірили це на дроті. Без поля Kimi Code запросив би до 131 072 токенів відповіді, більше, ніж віддають моделі мережі
capabilitiesthinking, tool_useМожливості незнайомих моделей Kimi Code за назвою не вгадує — оголошуйте явно

Де тримати ключ. З оточення оболонки Kimi Code ключів не бере: export OPENAI_API_KEY=… на нього не діє. Способів два, і одночасно їх використовувати не можна:

СпосібЗаписЯк поводиться
Ключ у файліapi_key = "jg-…"Так пише інсталятор; працює з будь-якого оточення, файл тримайте з правами 600
Ім'я змінноїapi_key_env = "JOINGONKA_API_KEY"Значення читається з оточення процесу на кожному запиті; без змінної запуск падає з помилкою, у якій вона названа

Обидва поля в одній таблиці Kimi Code відкине при запуску: has both apiKey and apiKeyEnv set in config.toml - they are mutually exclusive. Зважте, що kimi doctor такого конфлікту не ловить — він перевіряє лише форму файлу.

Який тип провайдера вибрати. Kimi Code вміє кілька протоколів, шлюз теж:

typebase_urlКоли вибирати
openaihttps://gate.joingonka.ai/v1Основний варіант: канонічний шлях шлюзу, його пише інсталятор
anthropichttps://gate.joingonka.aiФормат Anthropic Messages, шлях /v1/messages клієнт дописує сам; повний цикл з інструментами в нашому прогоні пройшов

Один провайдер у Kimi Code говорить однією мовою, тому другий протокол — це другий провайдер під іншим ім'ям. Інтерактивно провайдерів додає й видаляє команда /provider усередині агента.

Моделі, Thinking та субагенти

Модель у Kimi Code — це аліас, назва таблиці [models."…"]. Інсталятор називає їх за схемою joingonka/<model-id>, як і сам Kimi Code називає свої (kimi-code/k3), і саме аліас потрібен усюди, де обирається модель. Ідентифікатор без префікса, наприклад MiniMaxAI/MiniMax-M2.7, Kimi Code не знайде.

ДеЯкЗберігається
config.tomldefault_model = "joingonka/deepseek-ai/DeepSeek-V4-Flash-0731"так, для нових сесій
Прапорець запускуkimi -m "joingonka/zai-org/GLM-5.3-Flash"ні, лише цей запуск
Інтерфейс/model, вибір зі спискуEnter перепише default_model, Alt+S — лише на поточну сесію

У нашому прогоні /model виглядав так:

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

Перемикач Thinking. Тумблер міркування під списком на моделях мережі сам собою нічого не змінює: рівень міркування Kimi Code надсилає лише моделям, у яких оголошено рівні. Для GLM-5.3 Flash це варто зробити — у неї міркування вимикається значенням low (докладніше — в огляді моделі). Допишіть у таблицю моделі три поля:

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

Ми перевірили, що йде на шлюз: з увімкненим Thinking Kimi Code шле reasoning_effort: "high", і модель міркує; з вимкненим — "low", і відповідь приходить без блоку міркувань. Повторний запуск інсталятора цих полів не зачепить: він править лише свої ключі.

Модель для субагентів. Вбудовані субагенти (coder, explore, plan) за замовчуванням працюють на моделі основного агента. Розділ [secondary_model] дає їм пул, з якого основний агент обирає сам, орієнтуючись на підказки. У пул годиться будь-який аліас — DeepSeek V4 Flash, GLM-5.3 Flash або 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."

Ключі пулу мусять збігатися з аліасами з [models]: за документацією висяче посилання не дає створити сесію. Рядок для MiniMax M2.7 додається так само; посилання на моделі, що пішли з мережі, інсталятор під час повторного запуску вичистить сам.

Яку модель обрати. Ціна в усіх моделей мережі одна, тож вибір — про поведінку. Так вони поводилися в Kimi Code 2.0.2 на задачі «прочитай файл і знайди помилку» (звірено 23 вересня 2026):

МодельКонтекст / відповідьЯк поводиться в Kimi Code
DeepSeek V4 Flash380K / 32768Вибір інсталятора: велике вікно і найвищий стеля відповіді в мережі. Задачу розв'язує правильно
GLM-5.3 Flash390K / 8192Модель, що міркує: міркування йде окремим потоком (у kimi -p — у stderr), відповідь — у stdout. Міркування входить у ліміт відповіді
MiniMax M2.7200K / 8192Задачу розв'язує правильно за два кроки; міркування йде окремим потоком (у kimi -p — у stderr), у stdout — лише відповідь

Перевірка: що повинно статися

Спочатку переконайтеся, що Kimi Code бачить провайдера й файл розбирається без помилок:

$ 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

Вивід kimi provider list --json нікуди не публікуйте: ключ у ньому стоїть відкритим текстом.

Далі — разовий прогон. Покладіть у каталог calc.py з функцією додавання, яка насправді віднімає, і попросіть знайти помилку:

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

У режимі -p відповідь іде в stdout, а міркування й хід інструментів — у stderr, тож вивід зручно розбирати скриптом. Ось як відповіла 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`.

Зважте: у -p Kimi Code нічого не запитує й сам виконує команди — у нашому прогоні модель без дозволу спробувала запустити python3, щоб перевірити здогад. Перший запуск інтерфейсу в новому каталозі починається із запитання Trust this folder? — воно стосується MCP-серверів проєкту, — а на екрані привітання видно модель: Model: DeepSeek V4 Flash (Gonka). Друга половина перевірки — кабінет шлюзу: у розділі «Використання» запит з'явиться в розбивці за моделями та за ключами.

Якщо щось пішло не так, діагноз зазвичай читається прямо з повідомлення:

Що видноЩо це означаєЩо зробити
No model configured. Run `kimi` and use /login to sign in …Провайдера не налаштовано або default_model порожнійЗапустіть інсталятор або впишіть default_model
Model "deepseek-ai/DeepSeek-V4-Flash-0731" is not configured in config.toml.У -m передано ідентифікатор моделі, а не аліасДодайте префікс: joingonka/deepseek-ai/…
provider.auth_error: 401 Invalid API keyШлюз не прийняв ключПеревірте api_key у [providers.joingonka]: змінні оболонки Kimi Code не читає
declares api_key_env = "JOINGONKA_API_KEY" … but the environment variable is not set or is emptyОбрано спосіб зі змінною, а її немає в оточенніЕкспортуйте змінну до запуску або поверніть api_key
429 … currently overloaded in the Gonka network (rate limit)У моделі в мережі закінчилася вільна ємністьТакі помилки Kimi Code повторює сам; якщо затягнулося — змініть модель через /model. Стан видно на сторінці статусу

Скільки це коштує

До кожної вашої фрази Kimi Code додає системний промпт і описи двох з половиною десятків вбудованих інструментів, а завдання зазвичай займає кілька кроків. У нашому прогоні кожен крок ніс близько 20 тисяч вхідних токенів, і «прочитай файл, знайди помилку» зайняла два кроки — приблизно 40 тисяч токенів, майже всі на вході. Тому ціна за токен тут вирішує.

Через JoinGonka Gateway токени коштують $0.0069 за мільйон на вході та $0.021 за мільйон на виході — ціна однакова для всіх моделей мережі й підставляється на цій сторінці з живого джерела.

СценарійВитратиЧерез Gateway
Разове завдання: прочитати файл, знайти помилку~40K токенівсоті частки цента
День активної роботи3-7M токенівкілька центів
Місяць активної розробки~150M токенівблизько долара

Оцінки в правій колонці — за цінами на вересень 2026. Для порівняння — як взагалі можна платити за моделі в Kimi Code:

СпосібЯк підключаєтьсяЩо потрібно
Kimi Code (OAuth)/login, вхід за кодом пристроюакаунт Kimi; ліміти та ціна — за умовами сервісу
Kimi Platform/login з API-ключем платформиключ з platform.kimi.com або platform.kimi.ai, оплата за прайсом платформи
JoinGonka Gatewayпровайдер у config.tomlключ jg-…; акаунт Moonshot не потрібен, оплата за фактичні токени, витрати видно в кабінеті

Точні витрати та залишок — у кабінеті, у розділах «Використання» та «Білінг». За довжиною розмови стежить сам Kimi Code: рядок стану показує, яка частка контексту зайнята, а команда /compact стискає історію вручну.

Що врахувати в роботі

Режими дозволів. В інтерфейсі Kimi Code за замовчуванням працює в режимі Always Ask: читання виконується відразу, правки та команди — після вашого підтвердження. Ask When Needed (/yolo або прапорець --yolo) пропускає рутинні правки та команди, але запитує про чутливі файли та небезпечні команди; Never Ask (/auto, --auto) не запитує нічого. Режим планування вмикається через Shift-Tab. Разовий прогін kimi -p завжди йде без запитань, тому запускайте його в контейнері або окремій робочій копії.

Що працює без облікового запису Moonshot. Власний провайдер обслуговує все, що робить модель: читання та правку коду, команди, субагентів, сесії, MCP-сервери. Веб-пошук — сервіс Moonshot: без входу в обліковий запис інструменту WebSearch у наборі агента немає, а завантаження сторінки за адресою (FetchURL) залишається. Моделі мережі текстові, тому введення зображень та відео на них не працює.

Телеметрія та оновлення. Анонімна телеметрія за замовчуванням увімкнена: вимикає її рядок telemetry = false у config.toml або змінна KIMI_DISABLE_TELEMETRY=1. Оновлення ставляться автоматично ([upgrade] auto_install = true у ~/.kimi-code/tui.toml); якщо потрібна передбачуваність — вимкніть і оновлюйтеся командою kimi upgrade. Шлюз не зберігає вміст промптів і відповідей — у статистиці залишаються тільки агрегати витрат.

Кілька оточень. Налаштувань провайдерів на рівні проєкту у Kimi Code немає. Розділити робочі та особисті ключі можна змінною KIMI_CODE_HOME: з нею в інший каталог переїжджають налаштування, сесії та логи, а інсталятор, запущений з тією ж змінною, пише туди ж.

В редакторі. Kimi Code працює всередині Zed, JetBrains та інших клієнтів ACP через команду kimi acp — з тим самим каталогом даних і тими самими провайдерами.

Своїх агентів випускають і лабораторії, чиї моделі обслуговує мережа: у MiniMax є термінальний MiniMax Code, у DeepSeek — DeepSeek Harness, у Z.ai, авторів GLM, — ZCode. Усі вони підключаються до того ж шлюзу з тим самим ключем.

Kimi Code CLI — термінальний агент Moonshot AI, відкритий до сторонніх провайдерів: моделей Kimi в мережі Gonka зараз немає, але на DeepSeek V4 Flash, GLM-5.3 Flash і MiniMax M2.7 він працює штатно і без облікового запису Moonshot. Швидкий шлях — npx @joingonka/setup --tool kimi-code: інсталятор запише в ~/.kimi-code/config.toml провайдера joingonka з типом openai і ключем, таблиці моделей з чесними лімітами та модель за замовчуванням, а потім перевірить зв'язку живим запитом. Модель обирається аліасом joingonka/<id> — у /model або прапорцем -m; щоб тумблер Thinking працював у GLM-5.3 Flash, оголосіть support_efforts і off_effort = "low". Перевірка — kimi provider list і kimi -p на файлі з помилкою; платіть за фактичні токени за єдиною ціною мережі.

Бажаєте дізнатися більше?

Вивчіть інші розділи або почніть заробляти GNK прямо зараз.

Отримати ключ і безкоштовні токени →