Tambahkan provider OpenAI-compatible kustom ke Zed.

Updated 2026-07-29

Zed membaca provider kustom langsung dari settings.json. Deklarasikan blok language_models.openai_compatible dengan api_url diatur ke https://api.apisrouter.com/v1, daftarkan id model yang Anda inginkan, dan setiap satu muncul di picker model panel agent di bawah satu key.

Jawaban singkat: satu blok di settings.json.

Zed mendukung provider OpenAI-compatible kustom secara native. Tambahkan entri provider di bawah language_models.openai_compatible di settings.json, atur api_url ke https://api.apisrouter.com/v1, dan deklarasikan setiap model yang Anda inginkan di bawah available_models dengan nama dan ukuran context-nya. Model-model itu langsung muncul di dropdown model panel agent. API key sengaja tidak masuk ke settings.json. Zed menyimpannya di keychain sistem saat Anda memasukkannya melalui UI pengaturan provider, atau membacanya dari environment variable yang diturunkan dari key provider Anda: provider bernama apisrouter membaca APISROUTER_API_KEY. Environment variable diprioritaskan di atas nilai keychain.

{
  "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
          }
        ]
      }
    }
  }
}

Bagaimana Zed me-resolve provider dan model kustom.

Zed (zed-industries di GitHub, sekitar 87K bintang) adalah editor performa tinggi dengan panel agent yang merencanakan, mengedit file, dan menjalankan tool. Tipe provider openai_compatible-nya berbicara protokol /v1/chat/completions standar, yang persis dilayani gateway multi-vendor, jadi tidak ada plugin atau ekstensi yang duduk antara editor dan endpoint. Key provider yang Anda pilih ("apisrouter" di atas) berfungsi ganda. Ia menamai provider di pengaturan panel agent, dan ia menghasilkan environment variable yang dicek Zed untuk key-nya, upper-snake-case dengan suffix _API_KEY. Aturan penamaan itu layak diinternalisasi sebelum debug apa pun: ganti nama provider dan nama variabel yang diharapkan berubah bersamanya. available_models adalah allowlist. Zed tidak bisa mengenumerasi endpoint kustom sendiri, jadi hanya id yang Anda deklarasikan yang bisa dipilih, masing-masing string persis termasuk suffix versi apa pun. Saat endpoint di balik api_url melayani id Claude, GPT, Gemini, dan Kimi berdampingan, satu blok provider mengubah picker panel agent menjadi switchboard lintas-vendor di balik satu key. Satu catatan cakupan: fitur edit predictions Zed menggunakan model khususnya sendiri dan dikonfigurasi terpisah; provider kustom menghidupkan panel agent dan inline assistant, bukan edit predictions.

Setup lengkap: model, ukuran context, dan kapabilitas.

Setiap entri available_models menerima lebih dari sekadar nama. max_tokens mendeklarasikan context window model, dan max_output_tokens membatasi panjang generasi; Zed menggunakan angka ini untuk mengelola thread agent panjang, jadi mendeklarasikan model long-context dengan max_tokens kecil diam-diam membuang headroom yang dimiliki model. Objek capabilities memberi tahu Zed apa yang didukung model: atur tools ke true untuk apa pun yang Anda rencanakan jalankan dengan panel agent, dan aktifkan images hanya untuk model yang benar-benar menerima input gambar. Untuk key-nya, jalur yang bisa diandalkan pada editor desktop adalah UI pengaturan provider, yang menyimpan nilai di keychain sistem. Jalur environment-variable juga berfungsi, dengan satu peringatan yang dibahas di bagian debugging: aplikasi GUI yang diluncurkan dari dock tidak mewarisi shell profile Anda.

{
  "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 }
        ]
      }
    }
  }
}

Memilih model untuk panel agent.

Karena setiap model terdeklarasi duduk di picker yang sama, alur kerja praktisnya adalah perbandingan pada kerja nyata alih-alih benchmark: jalankan jenis tugas yang sama melalui dua kandidat pada hari berbeda dan biarkan log penggunaan per-key memberi harga masing-masing. Perubahan model di Zed adalah pilihan dropdown, jadi biaya eksperimennya nol setup.

  • Panel agent mengangkut engineering sungguhan: membaca file, merencanakan edit multi-langkah, menjalankan tool sepanjang thread panjang. Model coding frontier (claude-sonnet-4-6, claude-opus-4-7, gpt-5.5) tergolong di slot ini.
  • Id yang disetel untuk coding seperti kimi-k2.7-code layak dideklarasikan meski bukan default Anda; beralih untuk sesi refactor-heavy adalah satu pilihan picker, bukan edit konfigurasi.
  • Model long-context seperti gemini-3.1-pro-preview mendapat tempatnya saat thread rutin menarik file besar atau context seluruh modul ke satu percakapan.
  • Inline assist berumur lebih pendek dari thread agent, jadi id mid-tier yang cepat menjaga transformasi single-shot tetap sigap tanpa membakar token frontier untuk penulisan ulang satu baris.

Bayar sesuai pemakaian · di bawah harga resmi

Selected models are priced below official list prices. Exact input, output, cache, and per-request prices are shown for each model.

ModelHarga ResmiHarga Kami
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

Mode kegagalan spesifik provider kustom Zed.

Key-nya ada di settings.json dan tidak ada yang berfungsi. Zed sengaja tidak membaca API key dari settings.json. Masukkan key di UI pengaturan provider, atau export environment variable yang diturunkan; key yang ditempel ke JSON diabaikan. Environment variable-nya sudah diatur tapi Zed masih meminta key. Nama variabel diturunkan dari key provider, upper-snake-case dengan _API_KEY ditambahkan, jadi provider bernama apisrouter butuh APISROUTER_API_KEY, bukan OPENAI_API_KEY. Dan di macOS, aplikasi yang diluncurkan dari dock tidak pernah men-source shell profile Anda, jadi export profile tidak terlihat olehnya. Luncurkan Zed dari terminal dengan perintah zed, atau gunakan jalur keychain dan lewati masalahnya sama sekali. Sebuah model hilang dari picker. available_models adalah allowlist; id yang Anda asumsikan tapi tidak pernah dideklarasikan sederhananya tidak ada. Id adalah string persis termasuk suffix versi, dan listing /v1/models gateway adalah ejaan otoritatif untuk disalin. Agent tidak bisa menggunakan tool. Jika blok capabilities model mengatakan tools adalah false, Zed tidak akan menawarkan penggunaan tool dengannya. Deklarasikan capabilities agar cocok dengan apa yang benar-benar didukung model. api_url tanpa /v1. Client menambahkan path route seperti /chat/completions ke base yang Anda berikan, jadi https://api.apisrouter.com/v1 benar dan host telanjang tidak. Kegagalan berbentuk-404 pada blok yang sebaliknya benar hampir selalu ini.

Siapa yang merutekan Zed melalui gateway.

  • Developer yang hidup di editor dan ingin Claude, GPT, dan Kimi di satu picker panel agent alih-alih memelihara kredensial provider terpisah per vendor.
  • Engineer yang membandingkan model coding pada edit nyata. Setiap kandidat adalah satu entri terdeklarasi dan satu pilihan dropdown; tanpa akun baru per eksperimen.
  • Tim yang menstandarkan satu secret. Satu APISROUTER_API_KEY di dokumen onboarding menggantikan checklist key per vendor, dan penggunaan per-key menunjukkan apa yang dibelanjakan setiap seat.
  • Pengguna yang memasangkan model agent frontier dengan model inline-assist cepat dari vendor berbeda, yang tidak bisa diekspresikan konfigurasi vendor tunggal.
  • Developer tanpa akses ke billing vendor tertentu. Akses berbasis top-up tanpa syarat kartu menghilangkan ketergantungan sign-up per provider.

Verifikasi endpoint dan debug thread pertama.

Sebelum memulai thread agent, daftar apa yang dilayani gateway. Id yang dikembalikan /v1/models adalah persis string yang harus digunakan entri available_models Anda. Kegagalan thread pertama konsisten. 401 berarti key yang di-resolve Zed salah atau tidak ada: cek entri keychain di pengaturan provider, atau konfirmasi environment variable yang diturunkan terlihat oleh proses Zed alih-alih hanya terminal Anda. Error model-not-found dari gateway berarti nama terdeklarasi tidak cocok dengan id yang dilayani, termasuk suffix versi. Jika blok provider tidak muncul sama sekali di pengaturan, validasi JSON-nya; settings.json mentolerir komentar tapi tidak error struktural. Setelah request mengalir, konsol APIsRouter menunjukkan model per request, hitungan token, dan pengeluaran. Thread agent adalah beban kerja context-panjang, banyak-giliran, dan melihat thread mana dan model mana yang menghabiskan token adalah cara Anda memutuskan apakah model default Anda sepadan dengan slotnya.

curl -s https://api.apisrouter.com/v1/models \
  -H "Authorization: Bearer $APISROUTER_API_KEY" | head -50

Pertanyaan umum

Bisakah Zed menggunakan model Claude, GPT, dan Kimi melalui satu provider kustom?

Ya. Provider kustom adalah api_url plus allowlist available_models. Saat endpoint melayani beberapa vendor, deklarasikan satu entri per id dan setiap model terdeklarasi muncul di picker panel agent di bawah provider dan key yang sama, bisa ditukar per thread.

Di mana API key untuk provider kustom Zed ditaruh?

Bukan di settings.json. Masukkan di UI pengaturan provider, yang menyimpannya di keychain sistem, atau export environment variable yang diturunkan dari key provider Anda: provider bernama apisrouter membaca APISROUTER_API_KEY. Environment variable diprioritaskan di atas nilai keychain.

Mengapa Zed mengabaikan API key yang saya export di shell profile saya?

Aplikasi GUI yang diluncurkan dari dock tidak pernah men-source shell profile Anda, jadi export-nya tidak terlihat olehnya. Luncurkan Zed dari terminal dengan perintah zed agar ia mewarisi variabelnya, atau gunakan UI pengaturan dan biarkan keychain menyimpan key.

Mengapa model saya hilang dari picker panel agent?

Model provider kustom harus dideklarasikan secara eksplisit; Zed tidak bisa mengenumerasi endpoint kustom. Cek available_models berisi string id yang persis, termasuk suffix versi, dan salin id dari respons /v1/models gateway alih-alih mengetiknya dari ingatan.

Apa yang dikontrol max_tokens dan max_output_tokens di available_models?

max_tokens mendeklarasikan context window model dan max_output_tokens membatasi panjang generasi. Zed menggunakan ini untuk mengelola thread agent panjang, jadi atur max_tokens ke apa yang benar-benar didukung model; mengurangi nilainya membuang context yang sebenarnya dimiliki model.

Apakah provider kustom mengubah edit predictions Zed?

Tidak. Edit predictions berjalan di model khusus Zed sendiri dan dikonfigurasi terpisah. Provider OpenAI-compatible kustom menghidupkan panel agent dan inline assistant, yang merupakan tempat traffic /v1/chat/completions pergi.