OpenCode AI API Anahtarı Kurulumu — OpenAI Uyumlu Yapılandırma
APIMaster.ai’den özel API anahtarı ile OpenCode AI nasıl yapılandırılır. opencode.jsonc dosyasına OpenAI uyumlu sağlayıcı olarak APIMaster ekleyin ve görsel girişi (Vision) ile isteğe bağlı Reasoning katmanlarıyla Claude, GPT-5.5 ve DeepSeek’e erişin.
OpenCode Desktop, OpenCode (şu anda beta) için grafiksel istemcidir: yerel aracı oturumları, dosya düzenlemeleri ve kabuk yürütmeleri. APIMaster.ai, OpenAI ile uyumludur — Ayarlar → Sağlayıcılar → Özel sağlayıcı altına ekleyin.
Önce API Anahtarınızı alın. Aşağıda
your_apimaster_keyyer tutucusunu kullanın; ekran görüntüleri gerçek anahtarları maskeler.
Ön koşullar
- OpenCode Desktop, opencode.ai/download adresinden yüklenmiş olmalıdır.
- Windows:
opencode-desktop-win-x64.exe - macOS:
brew install --cask opencode-desktopveya.dmg - Linux:
.deb/.rpm/ AppImage
- Windows:
- Konsoldan APIMaster API Anahtarı.
Adım 1 — Sağlayıcıları açın
- OpenCode Desktop'ı başlatın ve bir çalışma alanı açın.
- Dişli çark simgesine (sol alt köşe) tıklayın.
- Kenar çubuğunda Sağlayıcılar'ı seçin.
- Özel sağlayıcı bölümüne gidin (Temel URL ile OpenAI uyumlu bir sağlayıcı ekleyin).
- + Bağlan'a tıklayın.

Adım 2 — Özel sağlayıcı formu
| Alan | Değer |
|---|---|
| Sağlayıcı Kimliği | apimaster |
| Görünen ad | APIMaster.ai |
| Temel URL | https://apimaster.ai/v1 |
| API anahtarı | APIMaster anahtarınız |

Başlıklar kısmını boş bırakın; yalnızca başlıklar üzerinden kimlik doğrulama yapmıyorsanız.
Adım 3 — Modelleri ekleyin ve Gönderin
Bir sonraki ekranda modelleri eşleyin (sol = OpenCode'daki etiket, sağ = APIMaster'a gönderilen model kimliği — genellikle aynıdır):
| Sol | Sağ |
|---|---|
gpt-5.4 |
gpt-5.4 |
claude-sonnet-4-6 |
claude-sonnet-4-6 |
- Daha fazla satır için + Model ekle'ye tıklayın.
- Gönder'e tıklayın.

Kimlikleri marketten alın. Aracı sohbeti için yalnızca görsel oluşturma modellerinden (ör. gpt-image-2) kaçının.
Görsel tanıma (Vision) mı gerekiyor?
gpt-5.5,claude-sonnet-4-6,claude-opus-4-7,claude-opus-4-8veclaude-haiku-4-5görsel girişini destekler, ancak OpenCode'un ek bir yetenek bildirimine ihtiyacı vardır — bkz. GPT ve Claude için görsel girişini etkinleştirme.
Adım 4 — Bir model seçin
- Bir oturum başlatın veya açın.
- Giriş alanının altındaki model açılır menüsünü açın.
- APIMaster.ai altında bir model seçin (ör.
claude-sonnet-4-6).

Adım 5 — Test edin
Merhaba veya küçük bir kodlama görevi gönderin. Normal bir Asistan yanıtı (dosya düzenlemeleri / kabuk) APIMaster'ın bağlı olduğu anlamına gelir.

Gelişmiş: opencode.jsonc ve Reasoning
Yukarıdaki UI akışı hızlı bir başlangıç için yeterlidir. Aynı model kimliği için Reasoning / düşünme çabası katmanlarını (low, high, max, …) yapılandırmak için opencode.jsonc dosyasını düzenleyin.
Yapılandırma dosyası konumu
| İşletim Sistemi | Yol |
|---|---|
| macOS / Linux | ~/.config/opencode/opencode.jsonc |
| Windows | C:\Users\<kullanıcı_adı>\.config\opencode\opencode.jsonc |
Dosya yoksa oluşturun. Kaydettikten sonra OpenCode Desktop'ı yeniden başlatın veya yeni bir oturum başlatın.
API Anahtarı (jsonc içine koymayın)
API Anahtarınızı opencode.jsonc içinde saklamayın.
Bunun yerine kullanın:
- Terminalde
/connectveya - Ayarlar → Sağlayıcılar → Sağlayıcıyı Bağla (yukarıdaki 1–2. adımlarla aynı).
Gizli bilgileri OpenCode'un kimlik doğrulama deposunda tutun; jsonc yalnızca sağlayıcıyı, modelleri ve Reasoning varyantlarını tanımlar.
APIMaster sağlayıcısı jsonc içinde
Sağlayıcı kimliği: apimaster. npm paketi: @ai-sdk/openai-compatible.
baseURL şöyle olmalıdır:
https://apimaster.ai/v1
Değil https://apimaster.ai/ — OpenCode sonuna /chat/completions ekler. /v1 olmadan https://apimaster.ai/chat/completions alırsınız → 404 Bulunamadı.
Ayrıca
https://api.apimaster.ai/v1de değil —api.önekli ana bilgisayar, testlerde TLS / bağlantı hatalarına neden olabilir. Doğru ana bilgisayarhttps://apimaster.ai/v1'dir.
Reasoning varyantlarıyla tam örnek — indirin ve OpenCode'un yapılandırmasının üzerine yazın:
- opencode.jsonc dosyasını indirin
- Üzerine yazın (veya şuraya kaydedin):
- macOS / Linux:
~/.config/opencode/opencode.jsonc - Windows:
C:\Users\<kullanıcı_adı>\.config\opencode\opencode.jsonc
- macOS / Linux:
- API Anahtarını
/connectveya UI aracılığıyla yapılandırın (asla jsonc içinde değil). - OpenCode Desktop'ı yeniden başlatın veya yeni bir oturum başlatın.
Üzerine yazmadan önce mevcut dosyanızı yedekleyin veya yalnızca
provider.apimasterbloğunu birleştirin.
Minimal şekil:
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"apimaster": {
"name": "APIMaster.ai",
"npm": "@ai-sdk/openai-compatible",
"options": { "baseURL": "https://apimaster.ai/v1" },
"models": {
"gpt-5.5": {
"name": "gpt-5.5",
"attachment": true,
"modalities": {
"input": ["text", "image"],
"output": ["text"]
},
"variants": {
"low": { "reasoningEffort": "low" },
"high": { "reasoningEffort": "high" }
}
}
}
}
}
}
Yukarıdaki
gpt-5.5üzerindekiattachmentvemodalitiesalanları görsel girişini (Vision) etkinleştirir — bkz. GPT ve Claude için görsel girişini etkinleştirme. Yalnızca metin sohbetine ihtiyacınız varsa bunları atlayın.
Reasoning ilkeleri
variants= UI'da bir model kimliği için birden çok Reasoning katmanı.- OpenAI uyumlu API'ler için OpenCode,
reasoningEffort→ istek gövdesindereasoning_effortolarak eşler. - Varyant adları gerçek parametreyle eşleşmelidir (
high→"reasoningEffort": "high"). - Her model farklı katmanları destekler — resmi belgelere göre yapılandırın; gizli yeniden eşleme yoktur.
Modele göre Reasoning katmanları
| Model | Reasoning varyantları | Notlar |
|---|---|---|
gpt-5.4 |
low, medium, high, xhigh |
GPT reasoning |
gpt-5.5 |
low, medium, high, xhigh |
GPT reasoning |
deepseek-v4-flash |
high, max |
DeepSeek düşünme (önerilen) |
deepseek-v4-pro |
high, max |
DeepSeek düşünme (önerilen) |
claude-sonnet-4-6 |
low, medium, high, max |
Claude Sonnet çaba |
claude-opus-4-7 |
low, medium, high, xhigh, max |
Claude Opus çaba |
claude-opus-4-8 |
low, medium, high, xhigh, max |
Claude Opus çaba |
claude-haiku-4-5 |
yok | Onaylanmamış çaba katmanı yok |
minimax-m3 |
yok | Onaylanmamış çaba katmanı yok |
Tam dosya için opencode.jsonc dosyasına bakın.
OpenCode'da Reasoning değiştirme
opencode.jsoncdosyasını kaydedin, ardından yeniden başlatın veya yeni oturum açın.- Model / Reasoning açılır menüsünü kullanın (ör.
gpt-5.4 / high). - Yapınızda destekleniyorsa:
Ctrl + Shift + DReasoning katmanlarında gezinir.
GPT ve Claude için görsel girişini etkinleştirme
gpt-5.5, claude-sonnet-4-6, claude-opus-4-7, claude-opus-4-8 ve claude-haiku-4-5 gibi APIMaster.ai modelleri görsel girişini / Vision'ı destekler — tanıma, açıklama, OCR veya bir görselden kodlama için ekran görüntülerini, fotoğrafları, grafikleri okur.
Bir modelin görselleri desteklemesi ≠ OpenCode'un görseli göndermesi. APIMaster.ai modelinin kendisi görüntüyü desteklese bile,
opencode.jsonciçinde yeteneği bildirmeniz gerekir. Aksi takdirde OpenCode, görseli çok modlu giriş olarak göndermeyebilir — yalnızca ek / dosya adını isteme koyar ve model "geçerli model görsel girişini desteklemiyor" gibi bir yanıt verir.
Bildirilecek iki alan
Görsellerle kullanmak istediğiniz her model için şunu ekleyin:
"attachment": true,
"modalities": {
"input": ["text", "image"],
"output": ["text"]
}
attachment: true, OpenCode'a bu modelin ekleri kabul ettiğini söyler.modalities.inputiçinde"image"bulunması, OpenCode'a bu modelin görsel girişini desteklediğini söyler, böylece OpenCode görseli çok modluimage_urliçeriğine dönüştürür.
Tam örnek (GPT ve Claude)
opencode.jsonc dosyasını indirin (alanlar zaten dahil) veya aşağıdaki provider.apimaster bloğunu mevcut yapılandırmanızla birleştirin:
{
"$schema": "https://opencode.ai/config.json",
"disabled_providers": [],
"provider": {
"apimaster": {
"name": "APIMaster.ai",
"npm": "@ai-sdk/openai-compatible",
"options": {
"baseURL": "https://apimaster.ai/v1"
},
"models": {
"gpt-5.5": {
"name": "gpt-5.5",
"attachment": true,
"modalities": {
"input": ["text", "image"],
"output": ["text"]
},
"variants": {
"low": { "reasoningEffort": "low" },
"medium": { "reasoningEffort": "medium" },
"high": { "reasoningEffort": "high" },
"xhigh": { "reasoningEffort": "xhigh" }
}
},
"claude-sonnet-4-6": {
"name": "claude-sonnet-4-6",
"attachment": true,
"modalities": {
"input": ["text", "image"],
"output": ["text"]
},
"variants": {
"low": { "reasoningEffort": "low" },
"medium": { "reasoningEffort": "medium" },
"high": { "reasoningEffort": "high" },
"max": { "reasoningEffort": "max" }
}
},
"claude-opus-4-7": {
"name": "claude-opus-4-7",
"attachment": true,
"modalities": {
"input": ["text", "image"],
"output": ["text"]
},
"variants": {
"low": { "reasoningEffort": "low" },
"medium": { "reasoningEffort": "medium" },
"high": { "reasoningEffort": "high" },
"xhigh": { "reasoningEffort": "xhigh" },
"max": { "reasoningEffort": "max" }
}
},
"claude-opus-4-8": {
"name": "claude-opus-4-8",
"attachment": true,
"modalities": {
"input": ["text", "image"],
"output": ["text"]
},
"variants": {
"low": { "reasoningEffort": "low" },
"medium": { "reasoningEffort": "medium" },
"high": { "reasoningEffort": "high" },
"xhigh": { "reasoningEffort": "xhigh" },
"max": { "reasoningEffort": "max" }
}
},
"claude-haiku-4-5": {
"name": "claude-haiku-4-5",
"attachment": true,
"modalities": {
"input": ["text", "image"],
"output": ["text"]
}
}
}
}
}
}
Notlar:
- Görsel girişini yalnızca
gpt-5.5için etkinleştirmek istiyorsanız,attachmentvemodalities'i yalnızcagpt-5.5'e ekleyin; diğerlerini değiştirmeden bırakın. - Yalnızca Claude'u etkinleştirmek için bu alanları yalnızca Claude modellerine ekleyin.
- Her modelin mevcut Reasoning varyantlarını (
low/medium/high/xhigh/max) koruyun — görsel alanları ile Reasoning çakışmaz. opencode.jsoncdosyasını düzenledikten sonra OpenCode'dan tamamen çıkın ve yeniden başlatın, ya da en azından yapılandırmanın yeniden yüklenmesi için yeni bir oturum başlatın.- API Anahtarını asla bu dosyaya koymayın — bunu
/connectveya UI aracılığıyla yapılandırın (aşağıdaki Güvenlik bölümüne bakın).
Görsel kaynağı: yerel yükleme / base64 tercih edin
- Önerilen: OpenCode'da yerel bir PNG / JPG yükleyin. İdeal olarak OpenCode, bunu APIMaster'a göndermeden önce bir base64 veri URL'sine (
data:image/png;base64,...) dönüştürür — bu, doğrulanmış çalışan yoldur. - Herkese açık bir görsel URL'sini doğrudan geçmek başarısız olabilir. APIMaster / yukarı akış, ağ, biçim, boyut, MIME veya sıcak bağlantı koruması nedeniyle herkese açık bir görseli indiremeyebilir ve şunu döndürebilir:
Bu durumda, model tarafının herkese açık bir URL'yi indirmesine güvenmek yerine bir base64 veri URL'si veya yerel yükleme kullanın.Error while downloading file. Upstream status code: 400.
Görsel tanımanın çalıştığını test edin
Seçenek A — OpenCode'da test edin
- Model açılır menüsünde
apimaster/gpt-5.5veyaapimaster/claude-sonnet-4-6'ya geçin. - Bir PNG / JPG görseli yükleyin.
- Şunu yazın:
Describe the main content of this image.
- Doğru yapılandırmayla model görsel içeriğini açıklamalıdır.
- Model yalnızca bir dosya / ek adından bahsediyorsa veya "image input not supported" yanıtı veriyorsa, OpenCode büyük olasılıkla görsel içeriğini göndermiyordur — modelin
attachmentvemodalitiesalanlarını kontrol edin ve OpenCode'u yeniden başlatın.
Seçenek B — Doğrudan API üzerinden test edin
Bir APIMaster model sorununu bir OpenCode adaptör sorunundan ayırmak için kullanışlıdır. Gerçek bir anahtarı asla sabit kodlamayın — bir ortam değişkeni kullanın.
Linux / macOS:
export APIMASTER_API_KEY="your APIMaster API key"
curl https://apimaster.ai/v1/chat/completions \
-H "Authorization: Bearer $APIMASTER_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-5.5",
"messages": [
{
"role": "user",
"content": [
{ "type": "text", "text": "Describe this image." },
{
"type": "image_url",
"image_url": {
"url": "data:image/png;base64,YOUR_IMAGE_BASE64"
}
}
]
}
],
"max_tokens": 1000
}'
Claude'u aynı şekilde test etmek için model'i claude-sonnet-4-6 olarak değiştirin (görsel tanıma ile HTTP 200 doğrulandı).
Windows PowerShell:
$env:APIMASTER_API_KEY = "your APIMaster API key"
# Convert a local image to base64, put it into image_url.url as data:image/png;base64,...
# Then call https://apimaster.ai/v1/chat/completions with the same JSON body.
Görseli açıklayan bir 200 yanıtı, görsel girişinin APIMaster tarafında çalıştığı anlamına gelir; OpenCode hâlâ başarısız oluyorsa, sorun OpenCode'un
attachment/modalitiesyapılandırmasında veya eksik bir yeniden başlatmadadır.
Sorun giderme
UI kurulumu
| Sorun | Çözüm |
|---|---|
| 401 | Anahtarı kontrol edin; ifşa olduysa döndürün |
| Model bulunamadı | Temel URL https://apimaster.ai/v1 olmalıdır; model kimliği marketle eşleşmelidir |
| APIMaster modelleri yok | Ayarlar'da sağlayıcıyı düzenleyin → eşlemeler ekleyin → Gönder |
| Yavaş / zaman aşımı | Başka bir model deneyin; API Anahtarı Test Aracı kullanın |
Reasoning / jsonc
DeepSeek için neden yalnızca high ve max?
DeepSeek için resmi OpenAI uyumlu düşünme çabası high ve max'tır. Öngörülemeyen şekilde yeniden eşlenen low / medium / xhigh kullanmaktan kaçının.
Claude Sonnet için neden max, xhigh değil?
Sonnet'in en üst katmanı max'tır; xhigh Opus içindir (claude-opus-4-7 / claude-opus-4-8).
Haiku veya MiniMax M3 için neden varyant yok?
Belgelenmiş reasoningEffort değerleri olmadan varyantları atlayın — model yine de çalışır; UI yalnızca Reasoning alt katmanlarını göstermez.
Hala 400 alıyorum?
baseURL=https://apimaster.ai/v1(site kökü değil).- Model kimliği yazımı marketle eşleşiyor.
- Anahtar
/connectveya UI aracılığıyla yapılandırıldı. - Geçici olarak
variantskısmını kaldırın — düz istekler çalışıyorsa, seçilenreasoning_effortbu model için desteklenmiyor olabilir.
Görsel girişi / Vision
OpenCode neden "the current model does not support image input" diyor?
- APIMaster.ai'nin
gpt-5.5'i ve birkaç Claude modeli görsel girişini destekler; bu mesaj genellikle OpenCode'un görseli çok modlu giriş olarak göndermediği anlamına gelir. opencode.jsonciçindeki modelin şuna sahip olduğunu kontrol edin:"attachment": true, "modalities": { "input": ["text", "image"], "output": ["text"] }- Düzenledikten sonra OpenCode'u yeniden başlattığınızı doğrulayın.
baseURL'ninhttps://apimaster.ai/v1olduğunu doğrulayın.- APIMaster API Anahtarının geçerli olduğunu doğrulayın.
- Herkese açık bir görsel URL'si başarısız olursa, bir base64 veri URL'si veya yerel yükleme kullanın.
Model neden görseli değil de yalnızca ek adını görüyor?
- Genellikle OpenCode, eki okuyup görsel girişine dönüştürmemiştir — yalnızca dosya / ek adını isteme koymuştur.
attachment: truevemodalities.input: ["text", "image"]'i etkinleştirin ve görsel girişini destekleyen bir model kullanın.
Herkese açık bir görsel URL'si neden hata veriyor?
- APIMaster veya yukarı akış, herkese açık bir görseli indirirken ağ, biçim, dosya boyutu, MIME, sıcak bağlantı koruması veya proxy ile sınırlandırılabilir.
Error while downloading file. Upstream status code: 400.durumunda, bir base64 veri URL'sine geçin.
attachment ekledikten sonra hâlâ çalışmıyor mu?
- OpenCode'dan tamamen çıkın ve yeniden başlatın.
- Test etmek için yeni bir oturum başlatın.
- Oturumun etkin modelinin görsel alanlarıyla yapılandırdığınız model olduğunu doğrulayın.
- API Anahtarının geçerli olduğunu doğrulayın.
- OpenCode günlüklerinde 401 / 400 / unsupported image / invalid content type hatalarını kontrol edin.
- Bir APIMaster model sorununu bir OpenCode adaptör sorunundan ayırmak için base64 görselle Seçenek B — Doğrudan API üzerinden test edin'i kullanın.
Güvenlik
- APIMaster API Anahtarını
opencode.jsonciçine koymayın; bu dosya yalnızca sağlayıcıyı, modelleri, görsel yeteneklerini ve Reasoning'i tutar. - Anahtarı sohbete, ekran görüntülerine, sorunlara (issues), herkese açık belgelere veya kod depolarına yapıştırmayın.
- Ekran görüntülerinde veya günlüklerde görünen anahtarları döndürün — konsolda iptal edip yeniden oluşturun, ardından OpenCode'daki sağlayıcıyı güncelleyin.
- API Anahtarını yönetmek için OpenCode'un
/connectakışını, ortam değişkenlerini veya yerel kimlik bilgisi depolamasını tercih edin. - OpenCode dosyaları okuyabilir/yazabilir ve kabuk komutları çalıştırabilir — yalnızca güvenilir çalışma alanları kullanın.
Kontrol listesi
- OpenCode Desktop yüklendi
- Özel sağlayıcı bağlandı veya
opencode.jsonciçindeapimaster - Temel URL /
baseURL=https://apimaster.ai/v1(https://apimaster.ai/değil) - API Anahtarı
/connectveya UI aracılığıyla (jsonc içinde değil) - En az bir sohbet modeli eşlendi
- (İsteğe bağlı) Reasoning varyantları resmi katmanlarla eşleşiyor
- Test mesajı başarılı
Görsel girişi kontrol listesi
-
baseURLhttps://apimaster.ai/v1(https://api.apimaster.ai/v1değil ) - Vision destekli bir model kullanılıyor, ör.
gpt-5.5veya Vision destekli bir Claude modeli - Modelde
attachment: truevar - Modelin
modalities.inputalanı"image"içeriyor -
opencode.jsoncdüzenlendikten sonra OpenCode yeniden başlatıldı - API Anahtarı geçerli
- Test görseli yaygın bir biçimde (PNG / JPG)
- Herkese açık bir görsel URL'si başarısız olursa, bir base64 veri URL'si denendi
Özet
- Anahtarlar:
baseURL(https://apimaster.ai/v1), model kimliği, API Anahtarı (/connectveya UI), isteğe bağlı Reasoning varyantları. - Varyant adları = gerçek
reasoning_effortdeğerleri. - Katmanları modele göre yapılandırın; desteklenmiyorsa varyantları atlayın (Haiku, MiniMax M3).