# Xcode-কে Tokens-এর সাথে যুক্ত করুন

> Xcode-এর Intelligence settings-এ Tokens-কে internet-hosted chat provider হিসেবে যোগ করুন। URL দিন /v1 ছাড়া, key বসান, আর chat-এর model picker থেকে model বেছে নিন।

Xcode 26 আর তার পরের version-এ নিজে যোগ করা provider-এর model-এর সাথে chat করা যায়। Apple-এর শর্ত, provider-কে Chat Completions API support করতে হবে, Tokens যা করে। Tokens যোগ করতে হয় **Xcode > Settings > Intelligence**-এ **Internet Hosted** chat provider হিসেবে, তারপর Xcode আপনার key যেসব model call করতে পারে, সেগুলোর তালিকা দেখায়।

এই গাইড মিলিয়ে দেখা হয়েছে Apple-এর "Setting up coding intelligence" পেজ (Xcode documentation, 2026) আর custom provider নিয়ে Apple Developer Forums-এর কয়েকটা thread দিয়ে, অক্টোবর 2026-এ। Apple-এর পেজে Xcode-এর কোনো version-এর নাম নেই। documentation দেখে যাচাই করা হয়েছে, আসল key দিয়ে শুরু থেকে শেষ পর্যন্ত চালিয়ে দেখা হয়নি।

## শুরুর আগে

- Mac-এ Xcode 26 বা তার পরের version। 26.3 বা তার পরেরটা নিন, কারণ এক forum thread জানাচ্ছে Xcode 26.2 বন্ধ করলে যোগ করা provider ভুলে যেত, আর 26.3-এ সেটা ঠিক হয়েছে।
- একটা Tokens key। spend cap আর allow-list-এর কথা আছে [API keys](/docs/api-keys) পেজে।
- System Settings-এ Apple Intelligence চালু থাকতে হবে। Apple-এর পেজ এটা বলে না, কিন্তু অন্য provider-দের গাইডে Xcode-এ যেকোনো model provider-এর জন্য এটাকে শর্ত হিসেবে লেখা আছে।

## Tokens যোগ করুন

1. **Xcode > Settings** বেছে নিয়ে sidebar থেকে **Intelligence** নিন।
2. **Chat**-এর নিচে **Add a Chat Provider**-এ ক্লিক করুন (কিছু গাইডে এর নাম **Add a Model Provider**)।
3. **Internet Hosted** বেছে নিন।
4. dialog পূরণ করে **Add**-এ ক্লিক করুন:

| Field              | কী লিখবেন                                                         |
| ------------------ | ----------------------------------------------------------------- |
| **URL**            | `https://tokens.bd`, gateway-র root, `/v1` ছাড়া             |
| **API Key**        | আপনার Tokens key, `tok_live_your_key`                             |
| **API Key Header** | ফাঁকা রাখুন (নিচে দেখুন)                                          |
| **Description**    | নিজের জন্য একটা label, যেমন `Tokens`                              |

### URL-এ /v1 নেই কেন

Apple-এর পেজ বলছে, Xcode আশা করে provider `{Model provider URL}/v1/models` আর `{Model provider URL}/v1/chat/completions` support করবে। মানে আপনি দেবেন শুধু root URL, আর `/v1` ও endpoint Xcode নিজে জুড়ে নেয়। Tokens-এর সেই root হলো `https://tokens.bd`, যাতে Xcode call করে `https://tokens.bd/v1/models` আর `https://tokens.bd/v1/chat/completions`।

`https://tokens.bd/v1` দেবেন না। ওটার শেষে আগেই `/v1` আছে, তাই Xcode doubled `/v1/v1/models` path-এ request করবে, আর Tokens তার জবাবে দেবে 404 `unsupported_endpoint`। `/chat/completions` দিয়ে শেষ হওয়া URL-এর বেলাতেও একই কথা।

### API key header

Apple-এর পেজে **API Key Header** field-এর কোনো বিবরণ নেই। Vercel আর OpenRouter-এর গাইড, দুটোই Xcode 26-এর জন্য লেখা, বলছে এটা ফাঁকা রাখলে Xcode স্ট্যান্ডার্ড `Authorization` header পাঠায়। Tokens পড়ে `Authorization: Bearer <key>`। Tokens key নেয় `x-api-key` header-এও, তাই header-এর নাম দিতেই হলে `x-api-key` দিন আর key-র জায়গায় শুধু key-টা রাখুন। key-র ঘরে `Bearer` শব্দটা লিখবেন না, শুধু তখন ছাড়া যখন header-কে `Authorization` set করেছেন, যেমনটা OpenRouter-এর গাইড করেছে।

### Key কোথায় থাকে

Xcode key কীভাবে জমা রাখে, তা Apple documentation-এ বলেনি। তাই এই গাইড দাবি করছে না যে সেটা macOS Keychain-এ থাকে। key শুধু এই dialog-এই দিন। project file, scheme, `.xcconfig` বা commit হয়ে যাওয়া কোনো script-এ রাখবেন না। Xcode-এর জন্য আলাদা key বানান, তার নিজের মাসিক spend cap সহ, যাতে বাকি কিছুতে হাত না দিয়েই সেটা revoke করা যায়।

## Model বেছে নিন

provider যোগ করার পর Intelligence settings-এ তার row-তে ক্লিক করুন। Xcode provider-এর model list থেকে **Models** table ভরে দেয়। যেসব model ব্যবহার করবেন সেগুলো favorite করে রাখুন, তাহলে picker-এর ওপরে থাকবে। project window থেকে chat খুলে message field-এর picker থেকে model বেছে নিন।

Tokens-এর model id-তে সবসময় একটা slash থাকে, যেমন `deepseek/deepseek-v4.1-flash`। Xcode id টাইপ করতে বলে না, list থেকে নেয়। Vercel-এর গাইডে slash-ওয়ালা id চলতে দেখা গেছে, কিন্তু id-র format Apple documentation-এ নেই। list-এ থাকে শুধু সেই model-গুলো, যা key call করতে পারে: allow-list দেওয়া key, বা কোনো active plan ও Wallet ব্যালান্স ছাড়া অ্যাকাউন্টে list ছোট বা ফাঁকা দেখাবে। বাছাইয়ে সাহায্য পাবেন [Choosing a model](/docs/choosing-a-model) পেজে।

Apple-এর পেজে context window, output limit বা tool calling-এর কোনো setting নেই। Xcode পাঠায় model id আর কথোপকথন, আর model-এর সীমা বলতে Tokens ও upstream যা চাপায় সেটাই। অনেক file জড়িত chat-এর জন্য বড় context window-ওয়ালা model নিন, সীমা দেখতে [catalog](/models) দেখুন।

## Custom provider কোথায় কোথায় কাজ করে

| Xcode-এর অংশ                                                         | Tokens ব্যবহার হয়?                                                           |
| -------------------------------------------------------------------- | ----------------------------------------------------------------------------- |
| **Chat**-এর নিচে যোগ করা provider দিয়ে chat                          | হ্যাঁ                                                                         |
| **Agents** অংশের agent (Claude Agent, Codex)                         | না। Apple বলছে প্রতিটা agent আলাদা করে চালু করে sign in করতে হয়               |
| Xcode-এ ChatGPT, Claude Sonnet ও Opus (Apple-এর built-in option)     | না। ওরা নিজের অ্যাকাউন্ট ব্যবহার করে                                           |
| Agent Client Protocol দিয়ে যোগ করা agent                            | custom provider-এর ক্ষেত্রে Apple documentation-এ নেই। প্রতিটা agent-এর নিজের settings আছে |

Apple জানাচ্ছে, Intelligence settings-এ যে agent বা model set করেছেন, সে request সামলাতে আপনার project file আর অন্যান্য তথ্য দেখতে পারে। Tokens provider দিয়ে যাওয়া request-এ সেই project context-ও থাকে, তাই এমন key আর model ব্যবহার করুন, যাকে আপনার code-এর ওপর ভরসা করা যায়।

আপনার Tokens key দিয়ে agentic coding চালাতে চাইলে এমন tool নিন যার নিজের endpoint setting আছে, যেমন Xcode-এর পাশে terminal-এ [Claude Code](/docs/claude-code), আর Xcode-কে দিয়ে শুধু chat করান।

Mac যদি কোনো organization ম্যানেজ করে, তাহলে MDM profile `CodingAssistantAllowExternalIntegrations`-কে `false` করে coding assistant বন্ধ করে দিতে পারে। Intelligence settings না পেলে বা lock করা থাকলে আপনার Mac administrator-কে জিজ্ঞেস করুন।

## ঠিকমতো চলছে কিনা যাচাই করুন

provider যোগ করার আগেই key আর Xcode যে দুটো path ব্যবহার করে সেগুলো পরীক্ষা করুন:

```bash
export TOKENS_API_KEY=tok_live_your_key
curl -s https://tokens.bd/v1/models -H "Authorization: Bearer $TOKENS_API_KEY"
curl -s 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"}]}'
```

প্রথম call-এ model-এর list আসতে হবে। তারপর provider যোগ করুন, model table ভরা পর্যন্ত অপেক্ষা করুন, একটা model বেছে chat-এ prompt পাঠান। Request-টা আপনার Dashboard-এর usage analytics-এ দেখা যাবে।

## সমস্যা হলে

**"Provider is not valid - Models could not be fetched with the provided account details."** Xcode `https://tokens.bd/v1/models` থেকে model list আনতে পারেনি। এই ক্রমে দেখুন: URL-এ `/v1` নেই, শেষে বাড়তি কোনো path নেই, বানানে ভুল নেই; key পুরোটা বসেছে; ওপরের `curl` call list ফেরত দিচ্ছে। Apple-এর engineer বলেছেন Xcode শুধু `/v1` path prefix support করে, যা Tokens-এ আছে।

**401 `invalid_api_key` বা `missing_api_key`।** key ভুল, ফাঁকা, বা rotate করা হয়েছে (rotate করলে পুরনো secret সাথে সাথে বন্ধ হয়ে যায়)। custom header দিলে সেটা key লেখার ধরনের সাথে মিলছে কিনা দেখুন (ওপরে আছে)। provider edit করুন বা আবার যোগ করুন।

**404 `unsupported_endpoint`।** path ভুল, সাধারণত `/v1` দুবার বসেছে। URL থেকে `/v1` সরিয়ে দিন।

**404 `model_not_found`।** model id অচেনা বা inactive। list থেকে আবার model বেছে নিন, কারণ catalog বদলাতে পারে।

**model table ফাঁকা।** key কোনো model call করতে পারছে না। list ফাঁকা থাকলে সাধারণত কোনো active plan ও Wallet ব্যালান্স নেই, অথবা allow-list সব model বাদ দিয়ে রেখেছে। [billing](/dashboard/billing)-এ গিয়ে plan নিন বা টাকা যোগ করুন।

**402 `insufficient_credits`, 403 `monthly_spend_cap_exceeded` বা 429 `rate_limited`।** টাকা যোগ করুন, key-র cap বাড়ান, নয়তো `Retry-After` পর্যন্ত অপেক্ষা করুন।

**Xcode restart করার পর provider নেই।** Apple-এর forum এটা জানিয়েছে Xcode 26.2-এর জন্য। 26.3 বা তার পরের version-এ update করুন।

সব code-এর তালিকা আছে [Errors](/docs/errors) পেজে, আর request-এর format আছে [Chat Completions](/docs/chat-completions)-এ।

সূত্র: Apple, [Setting up coding intelligence](https://developer.apple.com/documentation/xcode/setting-up-coding-intelligence); Apple Developer Forums-এর thread [816031](https://developer.apple.com/forums/thread/816031) আর [810665](https://developer.apple.com/forums/thread/810665); Apple যে field-এর বিবরণ দেয়নি তার জন্য Vercel-এর [Xcode গাইড](https://vercel.com/docs/ai-gateway/ecosystem/framework-integrations/xcode) আর OpenRouter-এর [Xcode গাইড](https://openrouter.ai/docs/community/xcode)। অক্টোবর 2026-এ দেখা।

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