Zed-এ একটা কাস্টম OpenAI-compatible provider যোগ করুন।
Updated 2026-07-29
Zed সরাসরি settings.json থেকে কাস্টম provider পড়ে। api_url-কে https://api.apisrouter.com/v1-এ সেট করে একটা language_models.openai_compatible block declare করুন, আপনি যে model id চান তা list করুন, এবং প্রতিটাই এক key-এর নিচে agent panel model picker-এ দেখা যায়।
দ্রুত উত্তর: settings.json-এ এক block।
Zed natively কাস্টম OpenAI-compatible provider সাপোর্ট করে। settings.json-এ language_models.openai_compatible-এর নিচে একটা provider entry যোগ করুন, api_url-কে https://api.apisrouter.com/v1-এ সেট করুন, এবং available_models-এর নিচে আপনি যে প্রতিটা model চান তা এর name এবং context size সহ declare করুন। model গুলো সাথে সাথে agent panel model dropdown-এ দেখা যায়। API key ইচ্ছাকৃতভাবে settings.json-এ যায় না। আপনি provider settings UI দিয়ে enter করলে Zed এটা system keychain-এ রাখে, অথবা আপনার provider key থেকে derived একটা environment variable থেকে পড়ে: apisrouter নামের একটা provider APISROUTER_API_KEY পড়ে। Environment variable keychain value-এর চেয়ে precedence পায়।
{
"language_models": {
"openai_compatible": {
"apisrouter": {
"api_url": "https://api.apisrouter.com/v1",
"available_models": [
{
"name": "claude-sonnet-4-6",
"display_name": "Claude Sonnet 4.6",
"max_tokens": 200000
}
]
}
}
}
}Zed কীভাবে কাস্টম provider এবং model resolve করে।
Zed (GitHub-এ zed-industries, প্রায় 87K star) একটা high-performance editor যার একটা agent panel plan করে, file edit করে, এবং tool চালায়। এর openai_compatible provider type standard /v1/chat/completions protocol বলে, যা ঠিক একটা multi-vendor gateway যা serve করে, তাই editor এবং endpoint-এর মাঝে কোনো plugin বা extension বসে না। আপনি যে provider key বেছেছেন (উপরে "apisrouter") দ্বিগুণ কাজ করে। এটা agent panel settings-এ provider-এর নাম দেয়, এবং এটা environment variable তৈরি করে যা Zed key-এর জন্য check করে, upper-snake-cased এবং একটা _API_KEY suffix সহ। কিছু debug করার আগে সেই naming rule internalize করার যোগ্য: provider rename করুন এবং expected variable name-ও তার সাথে বদলায়। available_models একটা allowlist। Zed নিজে থেকে একটা কাস্টম endpoint enumerate করতে পারে না, তাই শুধু আপনি declare করা id-ই selectable হয়, প্রতিটা একটা exact string যেকোনো version suffix সহ। api_url-এর পেছনের endpoint পাশাপাশি Claude, GPT, Gemini, এবং Kimi id serve করলে, এক provider block agent panel picker-কে এক key-এর পেছনে একটা cross-vendor switchboard বানিয়ে দেয়। একটা scope note: Zed-এর edit predictions feature এর নিজস্ব dedicated model ব্যবহার করে এবং আলাদাভাবে configure হয়; একটা কাস্টম provider agent panel এবং inline assistant চালায়, edit prediction নয়।
সম্পূর্ণ সেটআপ: model, context size, এবং capability।
প্রতিটা available_models entry শুধু একটা name-এর বেশি নেয়। max_tokens model-এর context window declare করে, এবং max_output_tokens generation length cap করে; Zed লম্বা agent thread manage করতে এই figure ব্যবহার করে, তাই একটা ছোট max_tokens সহ একটা long-context model declare করলে নীরবে model-এর headroom নষ্ট হয়। capabilities object Zed-কে বলে model কী সাপোর্ট করে: আপনি agent panel চালাতে চান এমন যেকোনো কিছুর জন্য tools-কে true সেট করুন, এবং শুধু genuinely image input accept করে এমন model-এ images enable করুন। key-এর জন্য, একটা desktop editor-এ reliable path হলো provider settings UI, যা value system keychain-এ store করে। environment-variable path-ও কাজ করে, debugging section-এ cover করা একটা caveat সহ: dock থেকে launch করা GUI application আপনার shell profile inherit করে না।
{
"language_models": {
"openai_compatible": {
"apisrouter": {
"api_url": "https://api.apisrouter.com/v1",
"available_models": [
{
"name": "claude-sonnet-4-6",
"display_name": "Claude Sonnet 4.6",
"max_tokens": 200000,
"max_output_tokens": 64000,
"capabilities": { "tools": true, "images": false }
},
{
"name": "claude-opus-4-7",
"display_name": "Claude Opus 4.7",
"max_tokens": 200000,
"capabilities": { "tools": true }
},
{ "name": "gpt-5.5", "display_name": "GPT-5.5", "max_tokens": 200000 },
{ "name": "kimi-k2.7-code", "display_name": "Kimi K2.7 Code", "max_tokens": 200000 }
]
}
}
}
}Agent panel-এর জন্য model বেছে নেওয়া।
প্রতিটা declared model যেহেতু একই picker-এ বসে থাকে, practical workflow হলো benchmark-এর বদলে real কাজে comparison: ভিন্ন দিনে দুটো candidate-এর মধ্য দিয়ে একই ধরনের task চালান এবং per-key usage log প্রতিটার দাম বলে দিক। Zed-এ একটা model change একটা dropdown selection, তাই experiment-এর cost হলো zero setup।
- agent panel real engineering বহন করে: file পড়া, multi-step edit plan করা, লম্বা thread জুড়ে tool চালানো। একটা frontier coding model (claude-sonnet-4-6, claude-opus-4-7, gpt-5.5)-এর জায়গা এই slot-এ।
- kimi-k2.7-code-এর মতো coding-tuned id declare করার যোগ্য এমনকি সেগুলো আপনার default না হলেও; একটা refactor-heavy session-এর জন্য switch করা একটা picker selection, config edit নয়।
- gemini-3.1-pro-preview-এর মতো long-context model তখন নিজের জায়গা অর্জন করে যখন thread নিয়মিত বড় file বা পুরো-module context একটা single conversation-এ টেনে আনে।
- Inline assist agent thread-এর চেয়ে ছোট-জীবনকালের, তাই একটা fast mid-tier id one-line rewrite-এ frontier token না পুড়িয়ে single-shot transformation-কে snappy রাখে।
ব্যবহার অনুযায়ী পেমেন্ট · অফিশিয়াল মূল্যের নিচে
Selected models are priced below official list prices. Exact input, output, cache, and per-request prices are shown for each model.
| মডেল | অফিশিয়াল মূল্য | আমাদের মূল্য |
|---|---|---|
| Claude Sonnet 4.6 | $3.00 / $15.00 per M | $2.40 / $12.00 per M |
| Claude Opus 4.7 | $5.00 / $25.00 per M | $4.00 / $20.00 per M |
| GPT-5.5 | $5.00 / $30.00 per M | $4.00 / $24.00 per M |
| Kimi K2.7 Code | $0.95 / $4.00 per M | $1.00 / $4.00 per M |
| Gemini 3.1 Pro Preview | $2.00 / $12.00 per M | $1.60 / $9.60 per M |
Zed কাস্টম provider-specific failure mode।
key settings.json-এ আছে এবং কিছুই কাজ করছে না। Zed design অনুযায়ী settings.json থেকে API key পড়ে না। provider settings UI-তে key enter করুন, অথবা derived environment variable export করুন; JSON-এ paste করা একটা key ignore হয়। environment variable সেট আছে কিন্তু Zed তবুও একটা key চাইছে। variable name provider key থেকে derived, upper-snake-cased এবং _API_KEY appended, তাই apisrouter নামের একটা provider-এর দরকার APISROUTER_API_KEY, OPENAI_API_KEY নয়। এবং macOS-এ, dock থেকে launch করা একটা app কখনো আপনার shell profile source করে না, তাই profile export তার কাছে invisible। একটা terminal থেকে zed command দিয়ে Zed launch করুন, অথবা keychain path ব্যবহার করে সমস্যাটা সম্পূর্ণ এড়িয়ে যান। Picker থেকে একটা model অনুপস্থিত। available_models একটা allowlist; আপনি ধরে নিয়েছেন কিন্তু কখনো declare করেননি এমন একটা id শুধু বিদ্যমান নেই। Id গুলো exact string version suffix সহ, এবং gateway-র /v1/models listing হলো copy করার authoritative spelling। Agent tool ব্যবহার করতে পারছে না। একটা model-এর capabilities block যদি tools-কে false বলে, Zed তার সাথে tool use offer করবে না। model আসলে যা সাপোর্ট করে তার সাথে মেলাতে capabilities declare করুন। /v1 ছাড়া api_url। client আপনার দেওয়া base-এ /chat/completions-এর মতো route path append করে, তাই https://api.apisrouter.com/v1 সঠিক এবং bare host নয়। অন্যথায়-সঠিক একটা block-এ একটা 404-shaped failure প্রায় সবসময়ই এটাই।
কারা একটা gateway দিয়ে Zed route করে।
- Developer যারা editor-এ থাকেন এবং প্রতি vendor-এ আলাদা provider credential maintain না করে এক agent panel picker-এ Claude, GPT, এবং Kimi চান।
- Engineer যারা real edit-এ coding model তুলনা করেন। প্রতিটা candidate একটা declared entry এবং একটা dropdown selection; প্রতি experiment-এ কোনো নতুন account নেই।
- Team যারা এক secret standardize করে। onboarding docs-এ একটা single APISROUTER_API_KEY একটা per-vendor key checklist-এর জায়গা নেয়, এবং per-key usage দেখায় প্রতিটা seat কী খরচ করছে।
- ব্যবহারকারী যারা একটা frontier agent model-এর সাথে ভিন্ন vendor-এর একটা fast inline-assist model pair করেন, যা single-vendor config প্রকাশ করতে পারে না।
- Developer যাদের কোনো নির্দিষ্ট vendor-এর billing-এ access নেই। কোনো card requirement ছাড়া Top-up based access প্রতি provider sign-up dependency সরিয়ে দেয়।
Endpoint verify করুন এবং প্রথম thread debug করুন।
একটা agent thread শুরু করার আগে, gateway যা serve করে তা list করুন। /v1/models দ্বারা ফেরত আসা id গুলো ঠিক সেই string যা আপনার available_models entry-কে ব্যবহার করতে হবে। First-thread failure consistent। একটা 401 মানে Zed যে key resolve করেছে তা ভুল বা অনুপস্থিত: provider settings-এ keychain entry check করুন, অথবা confirm করুন derived environment variable শুধু আপনার terminal-এর জন্য নয়, Zed process-এর কাছেও visible। gateway থেকে একটা model-not-found error মানে একটা declared name একটা served id-এর সাথে মেলে না, version suffix সহ। provider block settings-এ একদমই না দেখালে, JSON validate করুন; settings.json comment tolerate করে কিন্তু structural error নয়। Request চলতে শুরু করলে, APIsRouter console per-request model, token count, এবং spend দেখায়। Agent thread হলো long-context, many-turn workload, এবং কোন thread এবং কোন model token খরচ করছে তা দেখাই বলে দেয় আপনার default model তার slot-এর দাম উসুল করছে কিনা।
curl -s https://api.apisrouter.com/v1/models \
-H "Authorization: Bearer $APISROUTER_API_KEY" | head -50সাধারণ প্রশ্ন
Zed কি এক কাস্টম provider দিয়ে Claude, GPT, এবং Kimi মডেল ব্যবহার করতে পারে?
হ্যাঁ। একটা কাস্টম provider একটা api_url প্লাস একটা available_models allowlist। endpoint একাধিক vendor serve করলে, প্রতি id একটা entry declare করুন এবং প্রতিটা declared model একই provider ও key-এর নিচে agent panel picker-এ দেখা যায়, প্রতি thread-এ switchable।
একটা Zed কাস্টম provider-এর জন্য API key কোথায় যায়?
settings.json-এ নয়। provider settings UI-তে এটা enter করুন, যা এটা system keychain-এ store করে, অথবা আপনার provider key থেকে derived environment variable export করুন: apisrouter নামের একটা provider APISROUTER_API_KEY পড়ে। Environment variable keychain value-এর চেয়ে precedence পায়।
আমি আমার shell profile-এ যে API key export করেছি তা Zed কেন ignore করে?
dock থেকে launch করা GUI app কখনো আপনার shell profile source করে না, তাই export তাদের কাছে invisible। variable inherit করতে একটা terminal থেকে zed command দিয়ে Zed launch করুন, অথবা settings UI ব্যবহার করুন এবং keychain-কে key ধরে রাখতে দিন।
আমার model কেন agent panel picker-এ দেখা যাচ্ছে না?
কাস্টম-provider model অবশ্যই explicitly declare করতে হবে; Zed একটা কাস্টম endpoint enumerate করতে পারে না। available_models-এ exact id string আছে কিনা check করুন, version suffix সহ, এবং memory থেকে টাইপ না করে gateway-র /v1/models response থেকে id copy করুন।
available_models-এ max_tokens এবং max_output_tokens কী নিয়ন্ত্রণ করে?
max_tokens model-এর context window declare করে এবং max_output_tokens generation length cap করে। Zed লম্বা agent thread manage করতে এগুলো ব্যবহার করে, তাই max_tokens-কে model genuinely যা সাপোর্ট করে তাতে সেট করুন; কম বললে model-এর আসলে থাকা context নষ্ট হয়।
একটা কাস্টম provider কি Zed-এর edit prediction বদলায়?
না। Edit prediction Zed-এর নিজস্ব dedicated model-এ চলে এবং আলাদাভাবে configure হয়। একটা কাস্টম OpenAI-compatible provider agent panel এবং inline assistant চালায়, যেখানে /v1/chat/completions traffic যায়।