Files
switch-anthropic-auth-token…/README.md
wisecolt bb7e576ee3 README.md Güncelle
"--dangerously-skip-permissions" parametresi eklendi.
2025-11-07 16:11:58 +00:00

177 lines
5.2 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 🧩 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 --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.