# 🧩 switch_api_key — Claude API Key Switcher for macOS `switch_api_key`, proje dizininde bulunan `.env` dosyasını okuyarak **Claude API anahtarları arasında geçiş** yapmanızı sağlayan bir Bash betiğidir. Her çalıştırıldığında aktif anahtarı değiştirir, gerekli ortam değişkenlerini yükler, eski `claude` CLI oturumlarını kapatır ve yeni ayarlarla CLI’ı yeniden başlatır. Bu sayede, örneğin **LITE** ve **PRO** API anahtarlarını tek komutla değiştirebilir, her biriyle farklı kota veya model ayarlarını test edebilirsiniz. --- ## ⚙️ Özellikler - 🔁 **Tek komutla API anahtarlarını değiştirir** - 🧠 **Claude CLI’ı otomatik olarak yeniden başlatır** - 📦 **.env dosyasından ayarları okur ve günceller** - 🌐 **Base URL ve model değerlerini otomatik export eder** - 🚫 **Auth çakışmalarını otomatik temizler** (`ANTHROPIC_AUTH_TOKEN` değişkeni varsa kaldırılır) --- ## 📂 .env Dosyası Yapısı Proje dizininde `.env` dosyanız şu formatta olmalıdır: ```bash # === Claude API Config === API_KEY_LITE=LITE_KEY_BURAYA API_KEY_PRO=PRO_KEY_BURAYA ACTIVE_KEY=lite # === Anthropic API Settings === ANTHROPIC_BASE_URL="https://api.z.ai/api/anthropic" ANTHROPIC_MODEL="glm-4.6" ``` | Değişken | Açıklama | |-----------|-----------| | `API_KEY_LITE` | LITE planına ait Claude API anahtarı | | `API_KEY_PRO` | PRO planına ait Claude API anahtarı | | `ACTIVE_KEY` | Şu anda aktif olan anahtar (`lite` veya `pro`) | | `ANTHROPIC_BASE_URL` | API’nin taban URL adresi | | `ANTHROPIC_MODEL` | Kullanılacak model ismi | --- ## 🧩 Kurulum 1. Betik dosyasını oluştur: ```bash sudo nano /usr/local/bin/switch_api_key ``` 2. Aşağıdaki kodu yapıştır: ```bash #!/bin/bash ENV_FILE=".env" GREEN="\033[0;32m" YELLOW="\033[0;33m" CYAN="\033[0;36m" RESET="\033[0m" # 0️⃣ AUTH TOKEN ÇAKIŞMASINI ENGELLE if [[ -n "$ANTHROPIC_AUTH_TOKEN" ]]; then echo -e "${YELLOW}⚠️ ANTHROPIC_AUTH_TOKEN tespit edildi. Kaldırılıyor...${RESET}" unset ANTHROPIC_AUTH_TOKEN sleep 1 fi # 1️⃣ .env kontrolü if [[ ! -f "$ENV_FILE" ]]; then echo -e "${YELLOW}⚠️ Bu dizinde .env dosyası bulunamadı.${RESET}" exit 1 fi # 2️⃣ .env dosyasını yükle set -a; source "$ENV_FILE"; set +a echo "----------------------------------------" echo -e "${CYAN}🔍 Mevcut aktif key: $ACTIVE_KEY${RESET}" # 3️⃣ Aktif anahtarı değiştir if [[ "$ACTIVE_KEY" == "lite" ]]; then export ANTHROPIC_API_KEY="$API_KEY_PRO" NEW_DESC="Claude Code PRO api key" NEW_ACTIVE="pro" else export ANTHROPIC_API_KEY="$API_KEY_LITE" NEW_DESC="Claude Code LITE api key" NEW_ACTIVE="lite" fi # 4️⃣ Ortam değişkenlerini yükle export ANTHROPIC_BASE_URL=$ANTHROPIC_BASE_URL export ANTHROPIC_MODEL=$ANTHROPIC_MODEL # 5️⃣ .env güncelle sed -i '' "s/^ACTIVE_KEY=.*/ACTIVE_KEY=$NEW_ACTIVE/" "$ENV_FILE" echo -e "${YELLOW}🧩 Yeni key seçildi:${RESET} $NEW_DESC" echo -e "${CYAN}🔁 .env dosyası güncellendi (ACTIVE_KEY=$NEW_ACTIVE)${RESET}" # 6️⃣ Claude süreçlerini kapat echo -e "${YELLOW}💀 Çalışan Claude CLI süreçleri kapatılıyor...${RESET}" pkill -f "claude" 2>/dev/null sleep 3 # 7️⃣ Bilgilendirme tail4="${ANTHROPIC_API_KEY: -4}" echo -e "${GREEN}✅ Yeni key aktif:${RESET} $NEW_DESC" echo -e "${CYAN}🔑 Son 4 hane: ****${tail4}${RESET}" echo -e "${CYAN}🌐 Base URL:${RESET} $ANTHROPIC_BASE_URL" echo -e "${CYAN}🧠 Model:${RESET} $ANTHROPIC_MODEL" echo -e "${CYAN}⏳ Son kontroller yapılıyor...${RESET}" sleep 3 # 8️⃣ Claude CLI başlat echo -e "${GREEN}🚀 Yeni key ile Claude CLI başlatılıyor...${RESET}" echo "----------------------------------------" exec claude --dangerously-skip-permissions ``` 3. Çalıştırılabilir hale getir: ```bash sudo chmod +x /usr/local/bin/switch_api_key ``` --- ## 🚀 Kullanım Proje dizininde `.env` dosyası mevcutken sadece şu komutu çalıştır: ```bash switch_api_key ``` ### 🔁 Betik ne yapar? 1. `.env` dosyasını okur 2. `ANTHROPIC_AUTH_TOKEN` varsa **unset** eder (çakışmayı önler) 3. Aktif API anahtarını tespit eder (`lite` ↔ `pro`) 4. Diğer anahtara geçer 5. `.env` dosyasındaki `ACTIVE_KEY` satırını günceller 6. Base URL ve modeli `export` eder 7. Çalışan `claude` CLI süreçlerini kapatır 8. 3 saniye bekler 9. Yeni anahtar ve ayarlarla `claude` CLI’ı başlatır --- ## 🧠 Örnek Çalışma Çıktısı ```bash ---------------------------------------- 🔍 Mevcut aktif key: lite 🧩 Yeni key seçildi: Claude Code PRO api key 🔁 .env dosyası güncellendi (ACTIVE_KEY=pro) 💀 Çalışan Claude CLI süreçleri kapatılıyor... ✅ Yeni key aktif: Claude Code PRO api key 🔑 Anahtar son 4 hane: ****7e8a 🌐 Base URL: https://api.z.ai/api/anthropic 🧠 Model: glm-4.6 🚀 Claude CLI yeni key ve ayarlarla başlatılıyor... ---------------------------------------- ``` --- ## 💡 İpucu Her projenin kendi `.env` dosyası olabilir. Betik, **bulunduğun dizindeki** `.env` dosyasını baz alır. Farklı projeler farklı API anahtarları ve modellerle izole çalışabilir.