GitHub Copilot CLI হলো GitHub-এর terminal coding agent, চালু হয় copilot command দিয়ে। এর bring-your-own-key (BYOK) mode-এ GitHub-এর নিজের model-এর বদলে আপনার পছন্দের provider ব্যবহার হয়। Tokens-এর সাথে এটা ডিফল্ট openai provider type-ই নেয়, আর OpenAI Chat Completions request পাঠায় https://tokens.bd/v1-এ।
এই পাতা terminal agent-এর জন্য। VS Code-এর ভেতরের Copilot Chat চাইলে দেখুন GitHub Copilot in VS Code। দুটোর setup আলাদা:
| Copilot CLI (এই পাতা) | VS Code-এর Copilot | |
|---|---|---|
| কোথায় setup করবেন | copilot-এর পড়া environment variable | VS Code-এর chatLanguageModels.json |
| Model বাছা | COPILOT_MODEL বা --model | Copilot Chat-এর model picker |
| কতটুকু জুড়ে চলে | পুরো CLI session | শুধু chat আর utility কাজ; inline suggestion GitHub-এই থাকে |
Documentation দেখে যাচাই করা
GitHub-এর Copilot CLI-র BYOK reference দেখে লেখা, October 2026-এ যাচাই করা। ওই পাতায় Copilot CLI-র কোনো version লেখা নেই; GitHub BYOK-র ঘোষণা দিয়েছিল 7 April 2026 তারিখের একটা changelog entry-তে। Copilot CLI-কে Tokens-এর সাথে শুরু থেকে শেষ পর্যন্ত চালিয়ে আমরা দেখিনি। আপনার install করা version-এ copilot help providers চালিয়ে এই পাতার সাথে মিলিয়ে নিন।
যা যা লাগবে#
- একটা Tokens key। শুধু Copilot CLI-র জন্য আলাদা key বানান, মাসিক spend cap দিয়ে (API keys)।
- /models থেকে model id। উদাহরণগুলোতে
deepseek/deepseek-v4.1-flashব্যবহার করা হয়েছে। - Copilot CLI install করা। GitHub-এর docs-এ যে উপায়গুলো আছে:
npm install -g @github/copilot(Node.js 22 বা তার পরের version), Windows-এwinget install GitHub.Copilot,brew install --cask copilot-cli, আর macOS ও Linux-এcurl -fsSL https://gh.io/copilot-install | bash। Windows-এ GitHub-এর শর্ত হলো PowerShell 6 বা তার পরের version। - tool calling আর streaming, দুটোই support করে এমন model। কোনোটা না থাকলে Copilot CLI error দেয়। GitHub-এর পরামর্শ: context window 128K token বা তার বেশি হোক।
Setup করুন#
COPILOT_PROVIDER_BASE_URL সেট থাকলেই Copilot CLI BYOK চালু করে। base URL, key আর model সেট করে copilot চালু করুন:
export TOKENS_API_KEY="tok_live_your_key"
export COPILOT_PROVIDER_BASE_URL="https://tokens.bd/v1"
export COPILOT_PROVIDER_API_KEY="$TOKENS_API_KEY"
export COPILOT_MODEL="deepseek/deepseek-v4.1-flash"
copilot$env:TOKENS_API_KEY = "tok_live_your_key"
$env:COPILOT_PROVIDER_BASE_URL = "https://tokens.bd/v1"
$env:COPILOT_PROVIDER_API_KEY = $env:TOKENS_API_KEY
$env:COPILOT_MODEL = "deepseek/deepseek-v4.1-flash"
copilotPowerShell-এর লাইনগুলো শুধু ওই window-র জন্য। key রাখুন shell profile বা কোনো secrets manager-এ, repository-র ভেতরের file-এ নয়।
| Variable | Tokens-এর জন্য মান |
|---|---|
COPILOT_PROVIDER_BASE_URL | https://tokens.bd/v1। এটা লাগবেই। শেষে /v1 আছে, GitHub-এর পাতার OpenAI উদাহরণের মতোই। |
COPILOT_PROVIDER_TYPE | সেট করবেন না। ডিফল্ট হলো openai। Tokens-এর জন্য azure বা anthropic দেবেন না। |
COPILOT_PROVIDER_API_KEY | আপনার Tokens key। |
COPILOT_MODEL | Tokens-এর model id, নয়তো copilot-কে --model <id> দিন। এটা লাগবেই। |
Tokens-এ credential বলতে শুধু key-ই লাগে। COPILOT_PROVIDER_BEARER_TOKEN ব্যবহার করতে চাইলেও চলবে, কারণ Tokens Authorization: Bearer নেয়। তবে API key-র variable-টাই সহজ।
Token সীমা#
Copilot CLI পরিচিত model-এর নাম ধরে তার context সীমা খুঁজে নেয়। Tokens-এর id তার কাছে পরিচিত নাম নয়, তাই সীমাগুলো নিজে সেট করে দিন:
export COPILOT_PROVIDER_MAX_PROMPT_TOKENS=120000
export COPILOT_PROVIDER_MAX_OUTPUT_TOKENS=8192সংখ্যাগুলো placeholder। আসল context window আর max output /models-এ ওই model-এর পাতা থেকে copy করে বসান, আর context window-র ভেতরে output-এর জন্য জায়গা ছেড়ে রাখুন। CLI যে নামে খুঁজবে আর provider-কে যে নামে পাঠানো হবে, সেটা আলাদা হলে COPILOT_PROVIDER_MODEL_ID আর COPILOT_PROVIDER_WIRE_MODEL কাজে লাগে। Tokens-এ এ দুটোর কোনোটাই লাগে না, কারণ COPILOT_MODEL-এ যে id দিয়েছেন, Tokens ঠিক সেটাই চায়।
Wire API setting#
GitHub-এর পাতায় COPILOT_PROVIDER_WIRE_API-ও আছে, কিন্তু কোন কোন মান চলে তা লেখা নেই। এটা সেট না করেই রাখুন। Tokens Chat Completions আর Responses API, দুটোই বোঝে, তাই ডিফল্টে কাজ চলবে। অন্য কিছু guide-এ নির্দিষ্ট কিছু model-এর জন্য এটা responses করতে বলা হয়। সেটা করে দেখতে চাইলে আগে নিচের যাচাইটা চালিয়ে নিন।
ঠিকমতো চলছে কি না দেখুন#
আগে Copilot CLI-র বাইরে key আর model পরীক্ষা করুন:
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", "max_tokens": 16, "messages": [{"role": "user", "content": "Reply with OK"}]}'তারপর একটা prompt দিয়ে Copilot CLI চালান:
copilot -p "Reply with OK"ছোট একটা উত্তর আসার কথা, আর request-টা আপনার Dashboard-এর usage analytics-এ দেখা যাবে। tool calling পরীক্ষা করতে কোনো project-এ copilot চালু করে একটা file পড়তে বলুন। model উত্তর দেয় কিন্তু আপনার file-এ হাত দেয় না, এমন হলে সম্ভবত সে tool calling ভালো পারে না; দেখুন Tool calling।
Model বাছাই#
এমন model নিন যার tool calling ভরসাযোগ্য আর context লম্বা। তুলনা পাবেন Choosing a model-এ, আর /models catalog-এ প্রতিটা model-এর context ও output সীমা দেখা যায়। একটা session-এর জন্য model বদলাতে copilot --model <id> দিন, নয়তো COPILOT_MODEL পাল্টে দিন। একসাথে একটা provider configuration-ই চালু থাকে।
সীমা আর যা জানা দরকার#
- খরচ। agent বারবার ঘুরে ঘুরে কাজ করে: একটা prompt থেকে অনেক request হয়ে যেতে পারে, আর প্রতিটায় বাড়তে থাকা পুরো conversation যায়। মাসিক spend cap দেওয়া key ব্যবহার করুন (API keys) আর Dashboard-এ usage দেখে রাখুন।
- GitHub sign-in। GitHub-এর ঘোষণা অনুযায়ী BYOK mode-এ GitHub-এ sign in করা ঐচ্ছিক। sign in করলে GitHub-এর কিছু feature যোগ হয়, যেমন
/delegate, GitHub code search আর GitHub MCP server। GitHub-এর install পাতায় আগের শর্ত হিসেবে সক্রিয় Copilot সাবস্ক্রিপশনের কথা আছে। BYOK-র পাতায় কোন plan-এ BYOK চলে তা লেখা নেই। নিশ্চিত না হলে যিনি আপনার Copilot plan দেখেন, তাঁকে জিজ্ঞেস করুন। - Organization policy। আপনার organization বা enterprise Copilot CLI বন্ধ করে রাখলে BYOK দিয়েও এটা চালানো যাবে না।
- তবু GitHub-এ কী যায়। GitHub-এর পাতায় এর কোনো তালিকা নেই। তবে সেখানে লেখা আছে
COPILOT_OFFLINE=trueদিলে Copilot CLI GitHub-এর server-এ যোগাযোগ করা বন্ধ করে। এতে Tokens local হয়ে যায় না: আপনার prompt আর code-এর context তখনোhttps://tokens.bd/v1-এই যায়। - Slash-ওয়ালা model id। Tokens-এর id দেখতে
provider/model-এর মতো। slash-ওয়ালা id নিয়ে GitHub-এর পাতায় কিছু বলা নেই।COPILOT_MODELreject হলে আগে ওপরেরcurlদিয়ে id-টা পরীক্ষা করুন। - Session। variable সেট করা shell থেকেই
copilotচালু করুন। অন্য জায়গা থেকে শুরু করা session ওগুলো দেখতে পায় না।
সমস্যা হলে#
Copilot CLI এখনো GitHub-এর model-ই ব্যবহার করছে। যে shell থেকে copilot চালু করেছেন, সেখানে COPILOT_PROVIDER_BASE_URL সেট নেই। echo $COPILOT_PROVIDER_BASE_URL চালিয়ে দেখুন (PowerShell-এ $env:COPILOT_PROVIDER_BASE_URL)।
401 missing_api_key বা invalid_api_key। COPILOT_PROVIDER_API_KEY ফাঁকা, নয়তো অন্য কোনো provider-এর key বসে আছে। Tokens key শুরু হয় tok_live_ দিয়ে। দেখুন Errors।
404 model_not_found। COPILOT_MODEL Tokens-এর হুবহু id নয়। /models বা GET https://tokens.bd/v1/models থেকে copy করুন।
404 unsupported_endpoint। base URL-এ /v1 নেই, নয়তো বাড়তি path আছে। https://tokens.bd/v1 হুবহু ব্যবহার করুন।
tool calling বা streaming নিয়ে error। model এ দুটোর একটা support করে না। যে model করে, সেটা বেছে নিন (Streaming, Tool calling)।
403 monthly_spend_cap_exceeded বা 402 insufficient_credits। key-র cap অথবা আপনার ব্যালান্স শেষ। cap বাড়ান, নয়তো billing-এ গিয়ে টাকা যোগ করুন।
429 rate_limited বা concurrency_limit। agent আপনার সীমার চেয়ে দ্রুত request পাঠিয়েছে। Retry-After পর্যন্ত অপেক্ষা করুন; দেখুন Rate limits।
সব code-এর তালিকা Errors-এ। অন্য সমস্যার জন্য Troubleshooting।