Zed में एक custom OpenAI-compatible provider add करें।
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 चाहते हैं वे list करें, और उनमें से हर एक एक single key के नीचे agent panel के model picker में दिखता है।
Quick answer: settings.json में एक block।
Zed natively custom OpenAI-compatible providers support करता है। settings.json में language_models.openai_compatible के नीचे एक provider entry add करें, api_url को https://api.apisrouter.com/v1 पर set करें, और available_models के नीचे हर model जो आप चाहते हैं उसे उसके name और context size के साथ declare करें। Models तुरंत agent panel के model dropdown में दिखते हैं। API key जानबूझकर settings.json में नहीं जाती। जब आप इसे provider settings UI के through enter करते हैं तो Zed इसे system keychain में store करता है, या आपकी provider key से derived एक environment variable से पढ़ता है: apisrouter नाम का एक provider APISROUTER_API_KEY पढ़ता है। Environment variables keychain values से 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 custom providers और models कैसे resolve करता है।
Zed (GitHub पर zed-industries, लगभग 87K stars) एक high-performance editor है जिसमें एक agent panel है जो plan करता है, files edit करता है, और tools चलाता है। इसका openai_compatible provider type standard /v1/chat/completions protocol बोलता है, जो बिल्कुल वही है जो एक multi-vendor gateway serve करता है, तो editor और endpoint के बीच कोई plugin या extension नहीं बैठता। आप जो provider key चुनते हैं (ऊपर "apisrouter") double duty करती है। यह agent panel settings में provider को नाम देती है, और यह environment variable generate करती है जिसे Zed key के लिए check करता है, upper-snake-cased और _API_KEY suffix के साथ। यह naming rule किसी भी चीज़ debug करने से पहले internalize करने लायक है: provider का नाम बदलें और expected variable name उसके साथ बदल जाता है। available_models एक allowlist है। Zed खुद से एक custom endpoint enumerate नहीं कर सकता, तो सिर्फ आपके declared ids selectable बनते हैं, हर एक exact string version suffix सहित। जब api_url के पीछे का endpoint Claude, GPT, Gemini, और Kimi ids side by side serve करता है, एक provider block agent panel picker को एक cross-vendor switchboard बना देता है एक key के पीछे। एक scope note: Zed का edit predictions feature अपने dedicated models use करता है और अलग से configure होता है; एक custom provider agent panel और inline assistant power करता है, edit predictions नहीं।
पूरा setup: models, context sizes, और capabilities।
हर available_models entry सिर्फ एक name से ज़्यादा लेती है। max_tokens model की context window declare करता है, और max_output_tokens generation length cap करता है; Zed लंबे agent threads manage करने के लिए इन figures use करता है, तो एक long-context model को छोटे max_tokens के साथ declare करना चुपचाप model के headroom को waste कर देता है। capabilities object Zed को बताता है कि model क्या support करता है: जो कुछ भी आप agent panel के साथ drive करने का plan करते हैं उसके लिए tools को true set करें, और images सिर्फ उन models के लिए enable करें जो genuinely image input accept करते हैं। Key के लिए, एक desktop editor पर reliable path provider settings UI है, जो value को system keychain में store करती है। Environment-variable path भी काम करता है, debugging section में covered एक caveat के साथ: dock से launched 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 same picker में बैठता है, practical workflow benchmarks की बजाय real work पर comparison है: अलग-अलग दिनों दो candidates के through same kind का task run करें और per-key usage log हर एक को price करने दें। Zed में एक model change एक dropdown selection है, तो experiment की cost zero setup है।
- Agent panel real engineering carry करता है: files पढ़ना, multi-step edits plan करना, लंबे threads पर tools चलाना। एक frontier coding model (claude-sonnet-4-6, claude-opus-4-7, gpt-5.5) इस slot में belong करता है।
- kimi-k2.7-code जैसी coding-tuned ids declare करने लायक हैं भले ही वे आपका default न हों; एक refactor-heavy session के लिए switch करना एक picker selection है, config edit नहीं।
- gemini-3.1-pro-preview जैसे long-context models तब अपनी जगह कमाते हैं जब threads regularly large files या पूरे-module context को एक conversation में खींचते हैं।
- Inline assist agent threads से कम लंबा होता है, तो एक fast mid-tier id single-shot transformations को snappy रखता है बिना one-line rewrites पर frontier tokens burn किए।
जितना उपयोग उतना भुगतान · आधिकारिक मूल्य से कम
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 के लिए specific failure modes।
Key settings.json में है और कुछ काम नहीं करता। Zed design से settings.json से API keys नहीं पढ़ता। Key को provider settings UI में enter करें, या derived environment variable export करें; JSON में paste की गई key ignore हो जाती है। Environment variable set है लेकिन Zed फिर भी key मांगता है। Variable name provider key से derived होता है, upper-snake-cased और _API_KEY appended के साथ, तो apisrouter नाम के provider को OPENAI_API_KEY नहीं APISROUTER_API_KEY चाहिए। और macOS पर, dock से launched एक app कभी आपकी shell profile source नहीं करता, तो profile exports इसे invisible होते हैं। zed command के साथ एक terminal से Zed launch करें, या keychain path use करके problem को पूरी तरह skip करें। एक model picker से missing है। available_models एक allowlist है; एक id जो आपने assume किया लेकिन कभी declare नहीं किया वह बस exist नहीं करता। Ids exact strings हैं version suffixes सहित, और gateway की /v1/models listing copy करने के लिए authoritative spelling है। Agent tools use नहीं कर सकता। अगर किसी model के capabilities block में tools false कहता है, Zed उसके साथ tool use offer नहीं करेगा। Capabilities को वह declare करें जो model actually support करता है। api_url बिना /v1 के। Client आपके दिए base पर /chat/completions जैसे route paths append करता है, तो https://api.apisrouter.com/v1 सही है और bare host नहीं। एक otherwise correct block पर 404-shaped failure लगभग हमेशा यही है।
कौन Zed को एक gateway के through route करता है।
- Developers जो editor में रहते हैं और Claude, GPT, और Kimi एक agent panel picker में चाहते हैं, प्रति vendor अलग provider credentials maintain करने की बजाय।
- Engineers जो real edits पर coding models compare करते हैं। हर candidate एक declared entry और एक dropdown selection है; प्रति experiment नए accounts नहीं।
- Teams जो एक secret standardize करती हैं। Onboarding docs में एक APISROUTER_API_KEY प्रति-vendor key checklist replace करती है, और per-key usage दिखाता है हर seat क्या spend करती है।
- Users जो एक अलग vendor से एक frontier agent model को एक fast inline-assist model के साथ pair करते हैं, जो single-vendor configs express नहीं कर सकते।
- Developers जिनके पास किसी given vendor की billing तक access नहीं है। बिना card requirement वाला top-up based access प्रति provider sign-up dependency हटा देता है।
Endpoint verify करें और पहले thread को debug करें।
एक agent thread शुरू करने से पहले, gateway जो serve करता है वह list करें। /v1/models से return होने वाली ids exactly वही strings हैं जो आपकी available_models entries को use करनी चाहिए। पहले-thread failures consistent हैं। एक 401 का मतलब है Zed ने जो key resolve की वह गलत या absent है: provider settings में keychain entry check करें, या confirm करें कि derived environment variable सिर्फ आपकी terminal को नहीं बल्कि Zed process को visible है। Gateway से एक model-not-found error का मतलब है एक declared name एक served id से match नहीं करती, version suffix सहित। अगर provider block settings में बिल्कुल नहीं दिखता, तो JSON validate करें; settings.json comments tolerate करता है लेकिन structural errors नहीं। एक बार requests flow होने लगें, APIsRouter console प्रति-request model, token counts, और spend दिखाता है। Agent threads long-context, many-turn workloads हैं, और यह देखना कि कौन से threads और कौन से models tokens consume करते हैं, यह decide करने का तरीका है कि आपका default model अपनी slot के लायक है या नहीं।
curl -s https://api.apisrouter.com/v1/models \
-H "Authorization: Bearer $APISROUTER_API_KEY" | head -50अक्सर पूछे जाने वाले प्रश्न
क्या Zed एक custom provider के through Claude, GPT, और Kimi models use कर सकता है?
हां। एक custom provider एक api_url plus एक available_models allowlist है। जब endpoint multiple vendors serve करता है, प्रति id एक entry declare करें और हर declared model same provider और key के नीचे agent panel picker में दिखता है, प्रति thread switchable।
Zed custom provider के लिए API key कहां जाती है?
settings.json में नहीं। इसे provider settings UI में enter करें, जो इसे system keychain में store करती है, या अपनी provider key से derived environment variable export करें: apisrouter नाम का एक provider APISROUTER_API_KEY पढ़ता है। Environment variables keychain values से precedence लेते हैं।
Zed मेरी shell profile में export की गई API key को क्यों ignore करता है?
Dock से launched GUI apps कभी आपकी shell profile source नहीं करते, तो export उन्हें invisible होता है। zed command के साथ एक terminal से Zed launch करें ताकि यह variable inherit करे, या settings UI use करें और keychain को key hold करने दें।
मेरा model agent panel picker से क्यों missing है?
Custom-provider models को explicitly declare करना ज़रूरी है; Zed एक custom endpoint enumerate नहीं कर सकता। Check करें कि available_models में exact id string है, version suffixes सहित, और memory से type करने की बजाय gateway की /v1/models response से ids copy करें।
available_models में max_tokens और max_output_tokens क्या control करते हैं?
max_tokens model की context window declare करता है और max_output_tokens generation length cap करता है। Zed इन्हें लंबे agent threads manage करने के लिए use करता है, तो max_tokens को वह set करें जो model genuinely support करता है; इसे understate करना model के पास genuinely मौजूद context waste कर देता है।
क्या एक custom provider Zed के edit predictions बदल देता है?
नहीं। Edit predictions Zed के अपने dedicated models पर चलते हैं और अलग से configure होते हैं। एक custom OpenAI-compatible provider agent panel और inline assistant power करता है, जहां /v1/chat/completions traffic जाता है।