Claude Code’u DeepSeek ile Kullanmak: Mevcut Kurulumu Bozmadan Geçiş Rehberi
Claude Code’u DeepSeek modelleriyle denemek istedim — ama çalışan Anthropic kurulumumu bozmadan. Çoğu rehber “export et gitsin" diyor; o…
Claude Code’u DeepSeek ile Kullanmak: Mevcut Kurulumu Bozmadan Geçiş Rehberi
Claude Code’u DeepSeek modelleriyle denemek istedim — ama çalışan Anthropic kurulumumu bozmadan. Çoğu rehber “
exportet gitsin" diyor; o yol normalclaude'unu da DeepSeek'e bağlıyor. İşte kuruluma sıfır dokunan, macOS / Linux / Windows'ta çalışan yol.

🎯 Problem
Senaryo: Claude Code’u hem Anthropic’in modelleriyle (günlük iş) hem de DeepSeek’in modelleriyle (deneme/alternatif) aynı makinede kullanmak istiyorsun.
Sorun: DeepSeek için gereken ortam değişkenlerini export ile kalıcı tanımlarsan, normal claude komutun da DeepSeek'e gider. Yani bir modeli kazanırken çalışan kurulumunu kaybedersin. İstediğin bu değil.
✅ Çözüm: İzole Bir Wrapper
Ortam değişkenlerini yalnızca tek bir komut çalışma süresince geçerli kılacak bir wrapper tanımlayacağız. Sonuç:
claude→ eskisi gibi Anthropic API ile çalışırclaude-ds→ DeepSeek API ile çalışır- Hiçbir yapılandırma dosyasına dokunulmaz
Çözüm hem macOS / Linux (zsh) hem de Windows (PowerShell) için aşağıda mevcut.
📋 Ön Koşullar
- Claude Code kurulu —
npm install -g @anthropic-ai/claude-code✅ - DeepSeek API Key — platform.deepseek.com/api_keys adresinden al
🔧 Kurulum — macOS / Linux (zsh)
Adım 1: ~/.zshrc dosyana fonksiyonu ekle
***~/.zshrcnedir?~/.zshrc(tilde + slash + zshrc), macOS ve Linux'ta varsayılan kabuk olan Z shell (zsh)* için kişisel yapılandırma dosyasıdır. Her yeni terminal penceresi veya sekmesi açıldığında zsh bu dosyayı otomatik okur ve içindeki komutları çalıştırır.~karakteri mevcut kullanıcının ev dizinini (/Users/kullanici-adin/) temsil eder. Bu dosyaya yazdığın alias'lar, fonksiyonlar, PATH tanımları ve ortam değişkenleri tüm terminal oturumlarında kalıcı olarak kullanılabilir hale gelir.
# ──────────────────────────────────────────────
# DeepSeek-backed Claude Code wrapper
# Normal "claude" komutunu etkilemez.
# Kullanım: claude-ds
# ──────────────────────────────────────────────
claude-ds() {
ANTHROPIC_BASE_URL="https://api.deepseek.com/anthropic" \
ANTHROPIC_AUTH_TOKEN="sk-your-deepseek-api-key" \
ANTHROPIC_MODEL="deepseek-v4-pro" \
ANTHROPIC_DEFAULT_OPUS_MODEL="deepseek-v4-pro" \
ANTHROPIC_DEFAULT_SONNET_MODEL="deepseek-v4-pro" \
ANTHROPIC_DEFAULT_HAIKU_MODEL="deepseek-v4-flash" \
CLAUDE_CODE_SUBAGENT_MODEL="deepseek-v4-flash" \
CLAUDE_CODE_EFFORT_LEVEL="max" \
claude "$@"
}
⚠️
sk-your-deepseek-api-keykısmını kendi API key'inle değiştir.
Adım 2: Değişikliği aktif et
source ~/.zshrc
Adım 3: Kullanmaya başla
# Proje dizinine git
cd ~/my-project
# DeepSeek ile Claude Code başlat
claude-ds
🪟 Kurulum — Windows (PowerShell)
Windows’ta .zshrc yok; karşılığı PowerShell profili ($PROFILE). Mantık birebir aynı: bir claude-ds fonksiyonu tanımlıyoruz ve ortam değişkenlerini sadece o komut süresince geçerli kılıyoruz.
Adım 1: $PROFILE nedir ve nasıl açılır?
***$PROFILEnedir?*$PROFILE, PowerShell'in her açılışta otomatik okuduğu kişisel başlangıç betiğidir — yani macOS/Linux'taki~/.zshrc'nin Windows karşılığı. İçine yazdığın fonksiyonlar ve alias'lar tüm PowerShell oturumlarında kullanılabilir olur. Dosya geneldeBelgeler\PowerShell\Microsoft.PowerShell_profile.ps1altında bulunur ve ilk kullanımda mevcut olmayabilir.
Profili (yoksa oluşturup) düzenlemek için:
# Profil dosyası yoksa oluştur
if (!(Test-Path $PROFILE)) { New-Item -ItemType File -Path $PROFILE -Force }
# Düzenlemek için aç
notepad $PROFILE
Adım 2: Fonksiyonu profile ekle
👉 [GIST EMBED] — EK-2'deki claude-ds.ps1'i yeni bir GitHub Gist'e koy, linkini buraya yapıştır. (Bu talimat satırını yayından önce sil.)
⚠️
sk-your-deepseek-api-keykısmını kendi API key'inle değiştir.
🔍 Neden
try / finally? zsh'teANAHTAR=değer komutyazımı değişkenleri yalnızca o komuta hapseder. PowerShell'de ise$env:ile atadığın değişken tüm oturum boyunca kalıcıdır. Bu yüzden Windows tarafında izolasyonufinallybloğunda değişkenleri silerek elle sağlıyoruz — böylececlaude-dsbitince normalclaudeyine Anthropic'e gider. Atlarsan o oturumdaclaudeda DeepSeek'e gider; tam kaçındığımız şey.
Adım 3: Profili yeniden yükle
. $PROFILE
“running scripts is disabled” hatası alırsan, bir kez şunu çalıştır:
Set-ExecutionPolicy -Scope CurrentUser RemoteSigned
Adım 4: Kullanmaya başla
cd $HOME\my-project
claude-ds
🧠 Nasıl Çalışıyor?
İster zsh fonksiyonu ister PowerShell fonksiyonu olsun, fikir aynı: ortam değişkenlerini sadece claude-ds komutunun ömrü boyunca geçerli kılmak. Bu değişkenler:
- Sadece o komut ve alt süreçleri için geçerlidir
- Shell oturumuna bulaşmaz (zsh’te otomatik; PowerShell’de
finallyile) - Diğer terminal sekmelerini etkilemez
.claude.jsonveyasettings.jsongibi yapılandırma dosyalarına dokunmaz
🖼️ [GÖRSEL] — EK-3'teki akış diyagramını PNG yapıp buraya yükle. Alt yazı: “claude → Anthropic API, claude-ds → DeepSeek API." (Bu talimat satırını yayından önce sil.)
📊 Ortam Değişkenleri Referansı
**ANTHROPIC_BASE_URL** =https://api.deepseek.com/anthropic— DeepSeek'in Anthropic-uyumlu API endpoint'i**ANTHROPIC_AUTH_TOKEN** =sk-...— DeepSeek API key'in**ANTHROPIC_MODEL** =deepseek-v4-pro— Ana model**ANTHROPIC_DEFAULT_OPUS_MODEL** =deepseek-v4-pro— Opus istekleri için model**ANTHROPIC_DEFAULT_SONNET_MODEL** =deepseek-v4-pro— Sonnet istekleri için model**ANTHROPIC_DEFAULT_HAIKU_MODEL** =deepseek-v4-flash— Haiku istekleri için model (hafif)**CLAUDE_CODE_SUBAGENT_MODEL** =deepseek-v4-pro— Sub-agent'lar için model**CLAUDE_CODE_EFFORT_LEVEL** =max— Maksimum çaba seviyesi
🔄 Alternatif Yöntemler (Neden Önermiyorum?)
export ile kalıcı tanımlama ❌
# BUNU YAPMA — normal claude'u da bozar
export ANTHROPIC_BASE_URL="https://api.deepseek.com/anthropic"
Tüm claude çağrıların DeepSeek'e gider; geri dönmek için env var'ları tek tek silmen gerekir. Baştaki problemi geri getiriyorsun.
Proje bazlı .env dosyası ⚠️
Claude Code, proje dizinindeki .env dosyasını okur. Sadece belirli bir projede DeepSeek kullanacaksan iş görür, ama:
- Projeler arası geçişte kafa karıştırır
.env'i yanlışlıkla commit etme riski var (içinde API key)
Ayrı bir wrapper script ✅
# ~/.local/bin/claude-ds
#!/bin/zsh
export ANTHROPIC_BASE_URL="https://api.deepseek.com/anthropic"
# ... diğer env var'lar
exec claude "$@"
Bu da çalışır, ama shell/PowerShell fonksiyonu kadar pratik değil — ekstra dosya, ekstra PATH derdi.
🌐 DeepSeek Claude Code’da Web Arama
DeepSeek API’si, Claude Code içindeki Web Search özelliğini doğal olarak destekler. Model, sorunun web araması gerektirdiğine karar verirse, Web Search aracını DeepSeek API üzerinden çağırır ve sonuçları özetler.
⚠️ Web Search ek LLM API istekleri oluşturur, yani ek token maliyeti demek.
🗺️ Model Eşleme (Model Mapping)
DeepSeek, Claude model isimlerini otomatik eşler:
**claude-opus-*** →deepseek-v4-pro**claude-sonnet-*** →deepseek-v4-pro**claude-haiku-*** →deepseek-v4-flash
ℹ️ Bu liste DeepSeek’in otomatik eşlemesi. Fonksiyonda
ANTHROPIC_DEFAULT_SONNET_MODELgibi değişkenleri açıkça verirsen bu varsayılanları ezersin — örneğin bu rehberde Sonnet isteklerini bilinçli olarakdeepseek-v4-pro'ya yönlendiriyoruz.
🎉 Sonuç
Tek bir fonksiyon — zsh ya da PowerShell — ve çalışan kurulumuna sıfır dokunarak DeepSeek’i yanına almış oldun. claude Anthropic'te, claude-ds DeepSeek'te; ikisi arasında saniyede geçiyorsun.
Asıl mesele “hangi model daha iyi” değil, kontrolün kimde olduğu. Hangi işi hangi modele koşacağına sen karar ver — ölç, kıyasla, sana uyanı tut. Kurulumun zaten olduğu yerde duruyor, bozulacak bir şey yok.
Bu rehber DeepSeek API Dokümantasyonu temel alınarak hazırlanmıştır.
메타데이터
- post_id
- cc03e7dc874b
- slug
- claude-codeu-deepseek-ile-kullanmak-mevcut-kurulumu-bozmadan-geçiş-rehberi-cc03e7dc874b
- url
- https://medium.com/@rbinar/claude-codeu-deepseek-ile-kullanmak-mevcut-kurulumu-bozmadan-ge%C3%A7i%C5%9F-rehberi-cc03e7dc874b
- canonical_url
- https://medium.com/@rbinar/claude-codeu-deepseek-ile-kullanmak-mevcut-kurulumu-bozmadan-ge%C3%A7i%C5%9F-rehberi-cc03e7dc874b
- author_url
- https://medium.com/@rbinar
- status
- ok
- fetched_at
- 2026-06-20 20:29:01