README.md

This commit is contained in:
2025-11-07 15:28:52 +00:00
parent e4f49aae5e
commit 9dd5f477b1

176
README.md Normal file
View File

@@ -0,0 +1,176 @@
# 🧩 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` | APInin 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
```
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.