README.md
This commit is contained in:
176
README.md
Normal file
176
README.md
Normal 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` | 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
|
||||||
|
```
|
||||||
|
|
||||||
|
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.
|
||||||
Reference in New Issue
Block a user