# Aider

> OPENAI_API_BASE আর openai/ model prefix দিয়ে Aider-কে Tokens-এ চালান। metadata file দিয়ে unknown-model warning বন্ধ করুন আর session অনুযায়ী model বদলান।

Aider একটা open-source AI pair-programming CLI। এটা আপনার git repository-র file এডিট করে আর কাজ করতে করতে commit-ও করে। Tokens-এর সাথে এটা কথা বলে তার OpenAI-compatible provider দিয়ে, আর chat completions পাঠায় `https://tokens.bd/v1`-এ।

[Tokens CLI](/docs/tokens-cli) Aider-কে configure করে না। তবে লাগে মাত্র দুটো environment variable আর একটা flag, তাই automate করার মতো তেমন কিছু নেই।

## Aider install করুন

```bash
python -m pip install aider-install
aider-install
```

macOS আর Linux-এ `curl -LsSf https://aider.chat/install.sh | sh` চালালে একই কাজ এক ধাপেই হয়ে যায়।

Aider-এর development এখন ধীর। আমরা শেষ যে release দেখেছি, সেটা v0.86.0, 2025 সালের আগস্টের। তবুও Tokens-এর মতো OpenAI-compatible endpoint-এর সাথে এটা ঠিকঠাক চলে।

## Aider-এর জন্য OPENAI_API_BASE সেট করুন

[/dashboard/keys](/dashboard/keys)-এ গিয়ে একটা key তৈরি করুন (spend cap-এর কথা আছে [API keys](/docs/api-keys) পাতায়)। key-টা `TOKENS_API_KEY`-তে রাখুন, তারপর Aider যে variable-গুলো পড়ে, সেগুলোর মাধ্যমে তাকে দিন:

:::code-tabs

```bash title="macOS / Linux"
export TOKENS_API_KEY="tok_live_your_key"
export OPENAI_API_BASE="https://tokens.bd/v1"
export OPENAI_API_KEY="$TOKENS_API_KEY"
```

```powershell title="Windows PowerShell"
$env:TOKENS_API_KEY = "tok_live_your_key"
$env:OPENAI_API_BASE = "https://tokens.bd/v1"
$env:OPENAI_API_KEY = $env:TOKENS_API_KEY
```

:::

PowerShell-এর এই লাইনগুলো শুধু বর্তমান window-তে কাজ করে। স্থায়ী করতে প্রতিটার জন্য `setx` চালান (যেমন `setx OPENAI_API_BASE https://tokens.bd/v1`, বাকিগুলোও একইভাবে), তারপর নতুন terminal খুলুন।

:::warning[এই variable-গুলো global]
অন্য অনেক tool-ও `OPENAI_API_BASE` আর `OPENAI_API_KEY` পড়ে। shell profile-এ এগুলো সেট করলে ওই tool-গুলোও Tokens-এ চলে যাবে। সেটা না চাইলে যে terminal-এ Aider চালাচ্ছেন শুধু সেখানেই সেট করুন, অথবা ছোট একটা script বানান যেটা আগে এগুলো export করে তারপর Aider চালায়।
:::

এবার আপনার project-এ Aider চালু করুন:

```bash
cd /path/to/your/project
aider --model openai/deepseek/deepseek-v4.1-flash
```

`openai/` prefix Aider-কে বলে তার OpenAI-compatible provider ব্যবহার করতে। Aider-এর docs-এও বলা আছে, সবসময় এটা দিতে হবে। Aider চলে LiteLLM-এর ওপর। LiteLLM প্রথম `openai/` টুকু কেটে বাদ দেয় আর `deepseek/deepseek-v4.1-flash` পাঠায় Tokens-এ। এই কেটে ফেলাটা LiteLLM-এর নিজস্ব স্বাভাবিক আচরণ, Aider-এর পাতায় আলাদা করে লেখা নেই। কিন্তু এ কারণেই পুরো id আমাদের কাছে অক্ষত অবস্থায় পৌঁছায়।

### command বানিয়ে নিন

একটা model বেছে নিন, এই generator আপনার জন্য export লাইনগুলো আর `aider` command বানিয়ে দেবে:

::config-generator{format="aider"}

## model metadata যোগ করুন

Aider Tokens-এর model id চেনে না, তাই চালু হওয়ার সময় একটা model warning দেখায়। warning-টা ক্ষতিকর নয়। Aider-কে আসল সীমা জানাতে আর warning বন্ধ করতে `.aider.model.metadata.json` নামে একটা file বানান। file-টা রাখতে পারেন আপনার home folder-এ, repo-র root-এ বা বর্তমান directory-তে (অথবা `--model-metadata-file <path>` দিয়ে file-এর path জানিয়ে দিন):

```json title=".aider.model.metadata.json"
{
  "openai/deepseek/deepseek-v4.1-flash": {
    "max_input_tokens": 128000,
    "max_output_tokens": 8192,
    "input_cost_per_token": 0,
    "output_cost_per_token": 0,
    "litellm_provider": "openai",
    "mode": "chat"
  }
}
```

token-এর সংখ্যাগুলো আন্দাজি মান। [/models](/models)-এ model-এর পাতা থেকে আসল context window আর max output দেখে বসান। cost শূন্যই রাখুন। Aider যে cost দেখায় সেটা এমনিতেও শুধু একটা আন্দাজ। আপনার আসল খরচ দেখবেন Dashboard-এ আর `node tokens.mjs usage`-এ।

## model বদলান

`openai/`-এর পরে অন্য একটা id দিন:

```bash
aider --model openai/<model id>
```

সঠিক id কপি করুন [/models](/models) থেকে অথবা `GET /v1/models` থেকে। ওই model-এর warning-ও বন্ধ করতে চাইলে metadata file-এ তার জন্য একটা মিলিয়ে entry যোগ করুন। এডিটিংয়ের কাজে কোন model ভালো, তার আলোচনা আছে [Choosing a model](/docs/choosing-a-model) পাতায়।

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

উপরের `aider --model ...` command-টা চালান। চালু হওয়ার সময় Aider দেখায় সে কোন model ব্যবহার করছে। ছোট একটা কিছু জিজ্ঞেস করুন ("What files are in this repo?") আর দেখুন সে উত্তর দিচ্ছে কিনা, আর request-টা Dashboard-এর Usage analytics-এ আসছে কিনা।

Aider-কে বাদ দিয়ে দেখতে চাইলে endpoint-টা সরাসরি পরীক্ষা করুন:

```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}'
```

## সমস্যা হলে

**Tokens-এর usage-এ request-ই আসছে না।** সম্ভবত `openai/` prefix বাদ পড়েছে। prefix ছাড়া Aider (LiteLLM-এর মাধ্যমে) id-এর প্রথম অংশ দেখে অন্য কোনো built-in provider বেছে নিতে পারে, আর request Tokens-এ না গিয়ে সেখানে চলে যায়। command-এ `openai/`-এর সাথে Tokens-এর পুরো id থাকতে হবে: `openai/deepseek/deepseek-v4.1-flash`।

**404 `model_not_found`।** `openai/`-এর পরের id কোনো Tokens model-এর সাথে মিলছে না। [/models](/models) থেকে আবার কপি করুন।

**প্রতিটা request-এ 404।** `OPENAI_API_BASE` শেষ হতে হবে `/v1` দিয়ে। এটা না থাকলে Tokens-এ ওই path-ই নেই।

**401 `invalid_api_key` বা `missing_api_key`।** `OPENAI_API_KEY` ফাঁকা, অথবা এখনো কোনো OpenAI key রয়ে গেছে। `echo $OPENAI_API_KEY` চালান (PowerShell-এ `$env:OPENAI_API_KEY`)। Tokens key শুরু হয় `tok_live_` দিয়ে।

**বড় repo-তে context error।** Aider token-এর সীমা রিপোর্ট করে, কিন্তু কখনো জোর করে মানায় না। chat-এ যে file-গুলো যোগ করছেন সেগুলো ছোট রাখুন, অথবা বড় window-ওয়ালা model নিন।

**চালু হওয়ার সময় "Model warnings"।** Aider যে id চেনে না তার জন্য এটা স্বাভাবিক। উপরের metadata file যোগ করুন।

402, 403 আর 429 error-এর জন্য [Troubleshooting](/docs/troubleshooting) দেখুন।

---
Page: https://tokens.bd/bn/docs/aider
