# Kimi Code CLI

> ~/.kimi-code/config.toml-এ openai provider হিসেবে Moonshot-এর Kimi Code CLI-তে Tokens যোগ করুন। key পড়বে TOKENS_API_KEY থেকে, আর local model alias মিলবে Tokens-এর model id-র সাথে।

Kimi Code CLI হলো Moonshot AI-র terminal coding agent। এটা Tokens-এর সাথে যুক্ত হয় তার `openai` provider type দিয়ে, যেটা chat completions পাঠায় `https://tokens.bd/v1`-এ। `https://tokens.bd`-এর বিপরীতে `anthropic` type-ও চলে।

:::warning[পুরোনো Kimi CLI archived হয়ে গেছে]
Python-এ লেখা Kimi CLI (`MoonshotAI/kimi-cli`) archived, আর Moonshot জানিয়েছে যে আগে install করা কপিগুলো আর চলবে না। এই guide তার উত্তরসূরি Kimi Code CLI (`MoonshotAI/kimi-code`)-এর জন্য, যেটা আলাদা config file ব্যবহার করে।
:::

[Tokens CLI](/docs/tokens-cli) Kimi Code-কে configure করে না, তাই provider নিজে হাতে যোগ করতে হবে। একটা ছোট TOML file-ই যথেষ্ট।

## Kimi Code CLI install করুন

:::code-tabs

```bash title="macOS / Linux"
curl -fsSL https://code.kimi.com/kimi-code/install.sh | bash
# or: npm install -g @moonshot-ai/kimi-code
# or: brew install kimi-code
```

```powershell title="Windows PowerShell"
irm https://code.kimi.com/kimi-code/install.ps1 | iex
```

:::

[/dashboard/keys](/dashboard/keys)-এ গিয়ে একটা key তৈরি করুন। spend cap আর model allow-list-এর কথা আছে [API keys](/docs/api-keys) পাতায়।

## TOKENS_API_KEY export করুন

:::code-tabs

```bash title="macOS / Linux"
export TOKENS_API_KEY="tok_live_your_key"
```

```powershell title="Windows PowerShell"
$env:TOKENS_API_KEY = "tok_live_your_key"   # this window
setx TOKENS_API_KEY "tok_live_your_key"     # new windows
```

:::

## ~/.kimi-code/config.toml সাজান

Kimi Code পড়ে `~/.kimi-code/config.toml`। file-টা অন্য জায়গায় সরাতে চাইলে `KIMI_CODE_HOME` সেট করুন। একটা provider আর অন্তত একটা model যোগ করুন:

```toml title="~/.kimi-code/config.toml"
default_model = "tokens/deepseek-v4.1-flash"

[providers.tokens]
type = "openai"
base_url = "https://tokens.bd/v1"
api_key_env = "TOKENS_API_KEY"

[models."tokens/deepseek-v4.1-flash"]
provider = "tokens"
model = "deepseek/deepseek-v4.1-flash"
max_context_size = 128000
capabilities = [ "tool_use" ]
```

অংশগুলো কীভাবে মেলে:

- `[providers.tokens]` সংযোগটা ঠিক করে। `type = "openai"` মানে Chat Completions। অন্য type-গুলো হলো `kimi`, `anthropic`, `openai_responses`, `google-genai` আর `vertexai`।
- `[models."..."]` হলো একটা local alias। Kimi Code-এ আপনি এই নামটাই দেখবেন। `model` হলো Tokens-এ যে id যায়, আর সেটা আমাদের catalog-এর সাথে হুবহু মিলতে হবে।
- alias-এ `/` আছে, তাই table header-এ এটা quote-এর ভেতরে লিখতে হবে। যেকোনো TOML key-তে `.` থাকলেও quote লাগে।
- `max_context_size = 128000` একটা আন্দাজি মান। [/models](/models)-এ model-এর পাতা থেকে আসল context window দেখে বসান।

`api_key_env` আর `api_key`-এর ঠিক একটাই সেট করুন। Kimi Code অন্য কোনো environment variable-এ fallback করে না, তাই কোনোটাই কাজ না করলে চালু হওয়ার সময়ই ফেল করে।

`type = "openai"` হলে response-এ DeepSeek-ধাঁচের `reasoning_content` Kimi Code নিজেই সামলে নেয়। কোনো model যদি reasoning অন্য field-এ পাঠায়, তাহলে `reasoning_key` দিয়ে সেই field-এর নাম বলে দিতে পারেন।

### Anthropic-compatible variant

Messages API ব্যবহার করতে চাইলে provider-টা বদলে নিন:

```toml
[providers.tokens]
type = "anthropic"
base_url = "https://tokens.bd"
api_key_env = "TOKENS_API_KEY"
```

`/v1` দেবেন না। এই type Anthropic SDK মেনে চলে, আর SDK নিজেই `/v1/messages` জুড়ে নেয়। ওই endpoint কী কী সাপোর্ট করে তা দেখতে [Messages API](/docs/messages) পড়ুন।

### interactive-ভাবে provider যোগ করুন

file এডিট না করে TUI-র ভেতরে `/provider` চালাতে পারেন, অথবা shell থেকে `kimi provider`।

## model বদলান

প্রতিটা Tokens model-এর জন্য একটা করে `[models."..."]` table যোগ করুন, প্রতিটাই `tokens` provider-কে নির্দেশ করবে:

```toml
[models."tokens/kimi-k3"]
provider = "tokens"
model = "moonshotai/kimi-k3"
max_context_size = 128000
capabilities = [ "tool_use" ]
```

`model`-এর id-টা শুধু উদাহরণ। সঠিকটা কপি করুন [/models](/models) বা `GET /v1/models` থেকে, আর তার আসল context size বসান। তারপর `kimi`-র ভেতরে `/model` দিয়ে বদলে নিন, অথবা `default_model` পাল্টে ওটাকেই default করে দিন। agent-এর কাজে কোন model ভালো, সে বিষয়ে [Choosing a model](/docs/choosing-a-model) পাতায় পরামর্শ আছে।

## ঠিকমতো চলছে কিনা দেখুন

project folder-এ `kimi` চালান, তারপর `/model` দিয়ে দেখুন Tokens-এর alias-টা চালু আছে কিনা, আর ছোট একটা prompt পাঠান। request-টা Dashboard-এর Usage analytics-এ দেখা যাওয়া উচিত। কোনো credential না মিললে Kimi Code প্রথম request-এ ফেল করার বদলে চালু হওয়ার সময়ই স্পষ্ট করে জানিয়ে দেয়।

Kimi Code-কে বাদ দিয়ে key আর model পরীক্ষা করতে:

```bash
curl https://tokens.bd/v1/chat/completions \
  -H "Authorization: Bearer $TOKENS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "deepseek/deepseek-v4.1-flash", "messages": [{"role": "user", "content": "Reply with OK"}], "max_tokens": 10}'
```

## সমস্যা হলে

**চালু হওয়ার সময় missing credentials-এর error।** `kimi` যে shell থেকে চালু করেছেন সেখানে `TOKENS_API_KEY` সেট নেই, অথবা `api_key` আর `api_key_env` দুটোই সেট করা আছে। ঠিক একটা ব্যবহার করুন। Windows-এ `setx`-এর পর নতুন terminal খুলুন।

**TOML parse error।** `/` বা `.` আছে এমন model alias quote করা হয়নি। লিখুন `[models."tokens/deepseek-v4.1-flash"]`, `[models.tokens/deepseek-v4.1-flash]` নয়।

**404 `model_not_found`।** alias নয়, `model` field-টাই হতে হবে Tokens-এর হুবহু id। `deepseek/deepseek-v4.1-flash` হলো id, আর `tokens/deepseek-v4.1-flash` শুধু আপনার নিজের দেওয়া local নাম।

**প্রতিটা request-এ 404।** `type = "openai"` হলে `base_url` শেষ হতে হবে `/v1` দিয়ে। `type = "anthropic"` হলে `/v1` থাকা চলবে না।

**tool কখনো call হচ্ছে না।** model entry-তে `capabilities = [ "tool_use" ]` আছে কিনা দেখুন, আর আপনার বাছা model tool calling সাপোর্ট করে কিনা।

**403 `model_not_allowed_on_key`, 402 বা 429।** এগুলো key, ব্যালান্স আর plan-এর সীমার ব্যাপার। [Troubleshooting](/docs/troubleshooting) দেখুন।

---
Page: https://tokens.bd/bn/docs/kimi-code
