Zed میں custom OpenAI-compatible provider شامل کریں۔
Updated 2026-07-29
Zed custom providers کو براہ راست settings.json سے پڑھتا ہے۔ api_url کو https://api.apisrouter.com/v1 پر set کر کے ایک language_models.openai_compatible block declare کریں، وہ model ids فہرست کریں جو آپ چاہتے ہیں، اور ہر ایک agent panel کے model picker میں ایک واحد key کے تحت ظاہر ہو جاتی ہے۔
فوری جواب: settings.json میں ایک block۔
Zed custom OpenAI-compatible providers کو native طور پر سپورٹ کرتا ہے۔ settings.json میں language_models.openai_compatible کے تحت ایک provider entry شامل کریں، api_url کو https://api.apisrouter.com/v1 پر set کریں، اور available_models کے تحت وہ ہر model declare کریں جو آپ چاہتے ہیں، اس کے name اور context size کے ساتھ۔ Models فوراً agent panel کے model dropdown میں نظر آ جاتے ہیں۔ API key جان بوجھ کر settings.json میں نہیں جاتی۔ Zed اسے system keychain میں store کرتا ہے جب آپ اسے provider settings UI سے داخل کریں، یا اسے آپ کی provider key سے derive شدہ environment variable سے پڑھتا ہے: apisrouter نام کا provider APISROUTER_API_KEY پڑھتا ہے۔ Environment variables keychain values پر ترجیح رکھتے ہیں۔
{
"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 custom providers اور models کیسے resolve کرتا ہے۔
Zed (GitHub پر zed-industries، تقریباً 87K stars) ایک high-performance editor ہے جس کا agent panel منصوبہ بناتا ہے، files edit کرتا ہے، اور tools چلاتا ہے۔ اس کا openai_compatible provider type معیاری /v1/chat/completions protocol بولتا ہے، جو بالکل وہی ہے جو ایک multi-vendor gateway سرو کرتا ہے، تو editor اور endpoint کے درمیان کوئی plugin یا extension نہیں بیٹھتا۔ آپ کا چنا ہوا provider key ("apisrouter" اوپر) دوہرا کام کرتا ہے۔ یہ agent panel settings میں provider کا نام رکھتا ہے، اور یہ وہ environment variable بھی بناتا ہے جسے Zed key کے لیے چیک کرتا ہے، upper-snake-cased اور آخر میں _API_KEY کے ساتھ۔ یہ naming rule کچھ بھی debug کرنے سے پہلے اندرونی کر لینے کے قابل ہے: provider کا نام بدلیں اور متوقع variable name بھی اس کے ساتھ بدل جاتا ہے۔ available_models ایک allowlist ہے۔ Zed خود سے کسی custom endpoint کے models شمار نہیں کر سکتا، تو صرف وہی ids منتخب کے قابل بنتی ہیں جو آپ declare کریں، ہر ایک version suffix سمیت ایک exact string۔ جب api_url کے پیچھے موجود endpoint Claude، GPT، Gemini، اور Kimi ids ساتھ ساتھ سرو کرے، تو ایک provider block agent panel picker کو ایک key کے پیچھے cross-vendor switchboard بنا دیتا ہے۔ ایک scope نوٹ: Zed کا edit predictions feature اپنے مخصوص models استعمال کرتا ہے اور الگ سے configure ہوتا ہے؛ ایک custom provider agent panel اور inline assistant کو طاقت دیتا ہے، edit predictions کو نہیں۔
مکمل سیٹ اپ: models، context sizes، اور capabilities۔
ہر available_models entry نام سے زیادہ لیتی ہے۔ max_tokens model کی context window declare کرتا ہے، اور max_output_tokens generation length کو محدود کرتا ہے؛ Zed لمبے agent threads کو منظم کرنے کے لیے یہی figures استعمال کرتا ہے، تو ایک لمبے-context model کو چھوٹی max_tokens کے ساتھ declare کرنا خاموشی سے model کی headroom ضائع کر دیتا ہے۔ capabilities object Zed کو بتاتا ہے model کیا سپورٹ کرتا ہے: tools کو true پر set کریں کسی بھی ایسی چیز کے لیے جس سے آپ agent panel چلانے کا ارادہ رکھتے ہیں، اور images کو صرف ان models کے لیے enable کریں جو واقعی image input قبول کرتے ہیں۔ key کے لیے، ایک desktop editor پر بھروسے مند راستہ provider settings UI ہے، جو value کو system keychain میں store کرتا ہے۔ environment-variable راستہ بھی کام کرتا ہے، ایک caveat کے ساتھ جو debugging سیکشن میں cover ہوتا ہے: dock سے لانچ ہونے والی GUI applications آپ کی 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 کے لیے models چننا۔
چونکہ ہر declared model اسی picker میں بیٹھتا ہے، عملی workflow benchmarks کی بجائے حقیقی کام پر موازنہ ہے: مختلف دنوں پر دو candidates سے ایک جیسی قسم کا task چلائیں اور per-key usage log کو ہر ایک کی قیمت بتانے دیں۔ Zed میں model تبدیل کرنا ایک dropdown انتخاب ہے، تو experiment کی لاگت صفر setup ہے۔
- Agent panel اصل engineering اٹھاتا ہے: files پڑھنا، multi-step edits کی منصوبہ بندی، لمبے threads پر tools چلانا۔ ایک frontier coding model (claude-sonnet-4-6، claude-opus-4-7، gpt-5.5) اس slot میں موزوں ہے۔
- kimi-k2.7-code جیسی coding-tuned ids declare کرنے کے قابل ہیں چاہے وہ آپ کی default نہ ہوں؛ refactor-heavy session کے لیے سوئچ کرنا ایک picker انتخاب ہے، config edit نہیں۔
- gemini-3.1-pro-preview جیسے لمبے-context models اپنی جگہ کماتے ہیں جب threads معمول کے مطابق بڑی files یا پورے module کا context ایک ہی گفتگو میں کھینچیں۔
- Inline assist agent threads سے مختصر عمر رکھتا ہے، تو ایک تیز mid-tier id single-shot transformations کو ایک-لائن rewrites پر frontier tokens جلائے بغیر تیز رکھتی ہے۔
استعمال کے مطابق ادائیگی · سرکاری قیمت سے کم
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 custom providers سے مخصوص failure modes۔
key settings.json میں ہے اور کچھ کام نہیں کرتا۔ Zed design کے مطابق settings.json سے API keys نہیں پڑھتا۔ provider settings UI میں key داخل کریں، یا derived environment variable export کریں؛ JSON میں paste کی گئی key نظر انداز ہو جاتی ہے۔ environment variable set ہے مگر Zed اب بھی key مانگتا ہے۔ variable کا نام provider key سے derive ہوتا ہے، upper-snake-cased اور آخر میں _API_KEY کے ساتھ، تو apisrouter نام کے provider کو OPENAI_API_KEY نہیں، APISROUTER_API_KEY چاہیے۔ اور macOS پر، dock سے لانچ ہونے والا app آپ کی shell profile کبھی source نہیں کرتا، تو profile exports اس کے لیے invisible ہیں۔ zed command کے ساتھ terminal سے Zed لانچ کریں، یا keychain راستہ استعمال کریں اور مسئلہ سرے سے نظر انداز کریں۔ picker سے کوئی model غائب ہے۔ available_models ایک allowlist ہے؛ کوئی id جو آپ نے فرض کی مگر کبھی declare نہ کی وہ بس موجود نہیں۔ Ids exact strings ہیں جن میں version suffixes شامل ہیں، اور gateway کی /v1/models فہرست وہ authoritative spelling ہے جہاں سے copy کریں۔ Agent tools استعمال نہیں کر سکتا۔ اگر کسی model کے capabilities block میں tools false ہو، تو Zed اس کے ساتھ tool use پیش نہیں کرے گا۔ capabilities کو اس سے میچ کریں جو model واقعی سپورٹ کرتا ہے۔ بغیر /v1 والا api_url۔ client آپ کے دیے گئے base پر /chat/completions جیسے route paths append کرتا ہے، تو https://api.apisrouter.com/v1 درست ہے اور صرف host نہیں۔ کسی اور طرح سے صحیح block پر 404-شکل کی failure تقریباً ہمیشہ یہی ہوتی ہے۔
Zed کو gateway کے ذریعے کون route کرتا ہے۔
- وہ developers جو editor میں رہتے ہیں اور فی-vendor علیحدہ provider credentials رکھنے کی بجائے ایک ہی agent panel picker میں Claude، GPT، اور Kimi چاہتے ہیں۔
- وہ engineers جو حقیقی edits پر coding models کا موازنہ کرتے ہیں۔ ہر candidate ایک declared entry اور ایک dropdown انتخاب ہے؛ فی-experiment نئے accounts کی ضرورت نہیں۔
- وہ teams جو ایک secret پر standardize کرتی ہیں۔ onboarding docs میں ایک واحد APISROUTER_API_KEY فی-vendor key checklist کی جگہ لے لیتی ہے، اور per-key usage ظاہر کرتا ہے ہر seat کیا خرچ کرتی ہے۔
- وہ users جو ایک frontier agent model کو کسی مختلف vendor کے تیز inline-assist model کے ساتھ pair کرتے ہیں، جو single-vendor configs ظاہر نہیں کر سکتیں۔
- وہ developers جن کے پاس کسی مخصوص vendor کی billing تک رسائی نہیں۔ Top-up پر مبنی رسائی بغیر کارڈ کی شرط کے فی-provider sign-up کا انحصار ختم کر دیتی ہے۔
Endpoint verify کریں اور پہلا thread debug کریں۔
کوئی agent thread شروع کرنے سے پہلے gateway جو سرو کرتا ہے وہ فہرست کریں۔ /v1/models سے واپس آنے والی ids بالکل وہی strings ہیں جو آپ کی available_models entries کو استعمال کرنی چاہئیں۔ پہلے-thread کی failures مستقل ہیں۔ 401 کا مطلب ہے Zed نے جو key resolve کی وہ غلط یا غائب ہے: provider settings میں keychain entry چیک کریں، یا confirm کریں کہ derived environment variable آپ کے terminal کی بجائے Zed process کو نظر آتی ہے۔ gateway کی طرف سے model-not-found error کا مطلب ہے declared name کسی served id سے میچ نہیں کرتا، version suffix سمیت۔ اگر provider block settings میں بالکل ظاہر نہ ہو، تو JSON validate کریں؛ settings.json comments برداشت کرتا ہے مگر structural errors نہیں۔ جب requests چلنے لگیں تو APIsRouter console فی-request model، token counts، اور spend دکھاتا ہے۔ Agent threads لمبے-context، many-turn workloads ہیں، اور یہ دیکھنا کہ کون سے threads اور کون سے models tokens کھاتے ہیں یہی طریقہ ہے یہ فیصلہ کرنے کا کہ آپ کا default model اپنا slot کما رہا ہے یا نہیں۔
curl -s https://api.apisrouter.com/v1/models \
-H "Authorization: Bearer $APISROUTER_API_KEY" | head -50عمومی سوالات
کیا Zed ایک ہی custom provider کے ذریعے Claude، GPT، اور Kimi models استعمال کر سکتا ہے؟
جی ہاں۔ ایک custom provider ایک api_url جمع ایک available_models allowlist ہے۔ جب endpoint متعدد vendors سرو کرے، فی-id ایک entry declare کریں اور ہر declared model اسی provider اور key کے تحت agent panel picker میں نظر آتا ہے، فی-thread سوئچ کے قابل۔
Zed custom provider کے لیے API key کہاں جاتی ہے؟
settings.json میں نہیں۔ اسے provider settings UI میں داخل کریں، جو اسے system keychain میں store کرتی ہے، یا اپنی provider key سے derived environment variable export کریں: apisrouter نام کا provider APISROUTER_API_KEY پڑھتا ہے۔ Environment variables keychain values پر ترجیح رکھتے ہیں۔
Zed میری shell profile میں export کی گئی API key کیوں نظر انداز کرتا ہے؟
Dock سے لانچ ہونے والی GUI apps آپ کی shell profile کبھی source نہیں کرتیں، تو export ان کے لیے invisible ہے۔ zed command کے ساتھ terminal سے Zed لانچ کریں تاکہ یہ variable inherit کرے، یا settings UI استعمال کریں اور keychain کو key رکھنے دیں۔
میرا model agent panel picker سے کیوں غائب ہے؟
Custom-provider models کو واضح طور پر declare ہونا ضروری ہے؛ Zed کسی custom endpoint کے models شمار نہیں کر سکتا۔ چیک کریں available_models میں exact id string موجود ہے، version suffixes سمیت، اور یاد سے ٹائپ کرنے کی بجائے gateway کے /v1/models response سے ids copy کریں۔
available_models میں max_tokens اور max_output_tokens کیا کنٹرول کرتے ہیں؟
max_tokens model کی context window declare کرتا ہے اور max_output_tokens generation length محدود کرتا ہے۔ Zed انہیں لمبے agent threads منظم کرنے کے لیے استعمال کرتا ہے، تو max_tokens کو وہ set کریں جو model واقعی سپورٹ کرتا ہے؛ اسے کم بتانا model کے پاس موجود context ضائع کر دیتا ہے۔
کیا custom provider Zed کے edit predictions بدلتا ہے؟
نہیں۔ Edit predictions Zed کے اپنے مخصوص models پر چلتے ہیں اور الگ سے configure ہوتے ہیں۔ ایک custom OpenAI-compatible provider agent panel اور inline assistant کو طاقت دیتا ہے، جہاں /v1/chat/completions traffic جاتا ہے۔