지식 기반 섹션 ▾

내비게이션

▸ 여기서 시작하세요 역할별

카테고리

도구 52
용어집 12

도구

Kimi Code CLI: Gonka를 통해 나만의 키로 사용하는 Moonshot AI 에이전트

Kimi Code CLI (kimi 명령어) — Moonshot AI의 터미널 기반 개발 에이전트로, 코드 읽기 및 수정, 명령어 실행, 파일 검색, 서브 에이전트에게 하위 작업 할당 기능을 제공합니다. 현재 버전은 이전 Python 클라이언트인 kimi-cli를 대체하며, TypeScript로 작성되어 단일 바이너리로 설치되고 MIT 라이선스로 공개되었습니다. 아래 내용은 2026년 9월 19일 릴리스된 2.0.2 버전을 기준으로 하며, 9월 23일에 설치부터 에이전트 응답까지 성공적으로 테스트 완료되었습니다.

Kimi Code는 일반적으로 계정 로그인(/login)을 통해 Kimi 모델로 작동하지만, 원하는 공급자를 자유롭게 사용할 수 있습니다. OpenAI 호환 엔드포인트라면 ~/.kimi-code/config.toml에 몇 줄 추가하는 것만으로 Moonshot 계정 없이도 사용 가능합니다. JoinGonka Gateway는 분산 네트워크 Gonka를 위한 이러한 엔드포인트 중 하나입니다.

핵심부터 말씀드리면, 현재 Gonka 네트워크에서는 Kimi 모델을 제공하지 않습니다. Kimi K2.6은 2026년 5월부터 9월까지 네트워크에서 운영되었습니다. 현재는 DeepSeek V4 Flash, GLM-5.3 Flash, MiniMax M2.7이 작동하며, 이 가이드는 해당 모델에서 Kimi Code를 실행하는 방법을 설명합니다. 에이전트는 동일하지만 모델과 가격은 변경됩니다. 네트워크 내 모든 모델에 대해 입력 토큰 100만 개당 $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에 자신의 테이블만 추가합니다:

  • 타입이 openai인 프로바이더 [providers.joingonka] — 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모델 별칭모델 ID가 아니라 테이블 이름 [models."…"]을 참조합니다
max_context_size모델의 컨텍스트 창필수 필드이며, 에이전트는 이를 기준으로 컨텍스트를 압축할 시점을 판단합니다
max_output_size응답 상한max_tokens로 요청에 전달됩니다 — 실제 통신에서 확인했습니다. 이 필드가 없으면 Kimi Code는 최대 131,072개의 출력 토큰을 요청하게 되어, 네트워크의 모델이 반환하는 양을 초과합니다
capabilitiesthinking, tool_useKimi 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.aiAnthropic 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에서 "파일을 읽고 버그를 찾아라"라는 과제에서의 동작은 다음과 같았습니다 (2026년 9월 23일 검증):

모델컨텍스트 / 응답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에 별칭이 아닌 모델 ID가 전달됨접두사를 추가하세요: joingonka/deepseek-ai/…
provider.auth_error: 401 Invalid API key게이트웨이가 키를 거부함[providers.joingonka]의 api_key를 확인하세요: Kimi Code는 셸 변수를 읽지 않습니다
declares api_key_env = "JOINGONKA_API_KEY" … but the environment variable is not set or is empty변수 방식을 선택했지만 환경에 없음실행 전에 변수를 export하거나 api_key로 되돌리세요
429 … currently overloaded in the Gonka network (rate limit)네트워크의 모델 여유 용량이 소진됨이런 오류는 Kimi Code가 자동으로 재시도합니다. 길어지면 /model로 모델을 변경하세요. 상태는 상태 페이지에서 확인할 수 있습니다

비용 정보

Kimi Code는 모든 요청에 시스템 프롬프트와 수십 개의 내장 도구 설명을 추가하므로 작업은 일반적으로 여러 단계가 필요합니다. 이번 실행에서 각 단계는 약 2만 토큰의 입력 토큰을 소모했으며, "파일을 읽고 오류를 찾는" 작업은 2단계가 소요되었습니다(약 4만 토큰, 대부분 입력/출력). 따라서 토큰 단가가 중요합니다.

JoinGonka Gateway를 통할 경우 토큰 비용은 입력 100만 토큰당 $0.0069, 출력 100만 토큰당 $0.021이며, 이 가격은 네트워크의 모든 모델에 공통으로 적용되고 이 페이지에 실시간 데이터로 업데이트됩니다.

시나리오소모량Gateway 통과 비용
단발 작업: 파일 읽기 및 오류 식별~40K 토큰1센트 미만
활발한 작업일3-7M 토큰몇 센트
활발한 개발 월간~150M 토큰약 1달러

오른쪽 추정치는 2026년 9월 가격 기준입니다. Kimi Code 결제 방법은 다음과 같습니다:

방법연결 방식요건
Kimi Code (OAuth)/login, 장치 코드로 로그인Kimi 계정. 제한 및 가격은 서비스 약관에 따름
Kimi Platform플랫폼 API 키로 /loginplatform.kimi.com 또는 platform.kimi.ai 키. 플랫폼 가격 적용
JoinGonka Gatewayconfig.toml에서 공급자 설정jg-… 키. Moonshot 계정 불필요, 실 토큰 정산, 대시보드에서 사용량 확인 가능

정확한 사용량과 잔액은 대시보드의 '사용량' 및 '결제(Billing)' 섹션에서 확인할 수 있습니다. 대화 길이는 Kimi Code가 직접 모니터링하며, 상태 표시줄에 컨텍스트 점유율이 표시됩니다. /compact 명령어로 기록을 수동으로 압축할 수 있습니다.

작업 시 유의사항

권한 모드. Kimi Code 인터페이스는 기본적으로 Always Ask 모드로 작동합니다. 읽기는 즉시 수행되지만, 수정 및 명령어 실행에는 사용자의 승인이 필요합니다. Ask When Needed(/yolo 또는 --yolo 플래그)는 일상적인 수정이나 명령은 건너뛰지만, 민감한 파일이나 위험한 명령어에 대해서는 확인을 요청합니다. Never Ask(/auto, --auto)는 아무것도 묻지 않습니다. 계획 모드는 Shift-Tab으로 전환할 수 있습니다. 1회성 실행인 kimi -p는 항상 질문 없이 진행되므로, 컨테이너나 별도의 작업 복사본에서 실행하십시오.

Moonshot 계정 없이 작동하는 기능. 자체 제공자가 모델이 수행하는 모든 작업(코드 읽기 및 수정, 명령어, 하위 에이전트, 세션, MCP 서버)을 처리합니다. 웹 검색은 Moonshot 서비스이나, 로그인을 하지 않을 경우 에이전트 도구 모음에서 WebSearch는 제거되지만, 주소를 통한 페이지 로드(FetchURL)는 유지됩니다. 네트워크 모델은 텍스트 기반이므로 이미지 및 비디오 입력은 작동하지 않습니다.

텔레메트리 및 업데이트. 익명 텔레메트리는 기본적으로 활성화되어 있습니다. 비활성화하려면 config.toml에 telemetry = false를 작성하거나 KIMI_DISABLE_TELEMETRY=1 환경 변수를 사용하십시오. 업데이트는 자동으로 설치됩니다(~/.kimi-code/tui.toml 내의 [upgrade] auto_install = true). 예측 가능성이 필요하다면 자동 업데이트를 끄고 kimi upgrade 명령어로 직접 업데이트하십시오. 게이트웨이는 프롬프트나 응답 내용을 저장하지 않으며, 통계에는 소비량 집계만 남습니다.

다중 환경. Kimi Code는 프로젝트 수준의 제공자 설정이 없습니다. 작업용 키와 개인용 키를 분리하려면 KIMI_CODE_HOME 환경 변수를 사용하십시오. 이를 설정하면 설정, 세션, 로그가 다른 디렉터리로 저장되며, 동일한 변수로 실행된 설치 프로그램도 해당 디렉터리에 작성됩니다.

에디터 내 사용. Kimi Code는 Zed, JetBrains 및 기타 ACP 클라이언트 내에서 kimi acp 명령어를 통해 작동하며, 동일한 데이터 디렉터리와 제공자를 공유합니다.

네트워크 모델을 사용하는 연구소들도 자체 에이전트를 출시하고 있습니다. MiniMax는 터미널용 MiniMax Code, DeepSeek는 DeepSeek Harness, GLM 제작자인 Z.ai는 ZCode를 제공합니다. 이들 모두 동일한 게이트웨이와 키로 연결할 수 있습니다.

Kimi Code CLI는 써드파티 제공자를 지원하는 Moonshot AI의 터미널 에이전트입니다. 현재 Gonka 네트워크에는 Kimi 모델이 없지만, DeepSeek V4 Flash, GLM-5.3 Flash, MiniMax M2.7에서는 Moonshot 계정 없이 정상적으로 작동합니다. 가장 빠른 방법은 npx @joingonka/setup --tool kimi-code입니다. 설치 프로그램이 ~/.kimi-code/config.toml에 openai 타입의 joingonka 제공자, 키, 제한이 포함된 모델 테이블, 기본 모델을 기록하고 라이브 요청을 통해 연결을 테스트합니다. 모델은 /model 또는 -m 플래그를 사용하여 joingonka/<id> 별칭으로 선택합니다. GLM-5.3 Flash에서 Thinking 기능을 사용하려면 support_efforts 및 off_effort = "low"를 선언하십시오. 검증은 kimi provider list 및 오류가 있는 파일에 대한 kimi -p 명령으로 수행하며, 실제 사용 토큰만큼 네트워크 통합 가격으로 결제합니다.

더 자세히 알고 싶으세요?

다른 섹션을 탐색하거나 지금 GNK를 얻기 시작하세요.

키 및 무료 토큰 받기 →