tarihinde yayınlandı Yorum yapın

Airoxy: Claude Subscription’ınızı API Olarak Kullanın

Claude’un aylık aboneliğiniz var ama API erişiminiz yok mu? Ya da birden fazla OAuth token’ınız var ve bunları verimli şekilde kullanmak mı istiyorsunuz? Airoxy tam olarak bu sorunu çözmek için geliştirdiğim açık kaynaklı bir Anthropic API proxy sunucusu.

Airoxy Nedir?

Airoxy, Claude API isteklerini şeffaf bir şekilde Anthropic’e ileten, arada token rotasyonu, maliyet takibi ve loglama yapan bir proxy katmanıdır. Laravel Octane + FrankenPHP üzerine inşa edilmiştir ve yüksek eşzamanlılık (concurrency) için optimize edilmiştir.

En önemli özelliği: Claude Pro/Team/Enterprise aboneliğinizin OAuth token’larını kullanarak, normal API gibi istek atmanızı sağlar. Yani API kredisi satın almadan, mevcut aboneliğinizle API erişimi elde edersiniz.

Client ──► Airoxy ──► Anthropic
          (auth)    (round-robin)

İstemci tarafında tek yapmanız gereken base URL’i ve x-api-key header’ını değiştirmek — başka hiçbir kod değişikliği gerekmez.

Neden Airoxy?

  • Abonelik ile API kullanımı: Claude subscription’ınızın OAuth token’larını API gibi kullanın
  • Token rotasyonu: Birden fazla token ekleyin, Airoxy bunları round-robin ile otomatik döndürsün
  • Rate limit yönetimi: 429/529 hatasında otomatik olarak sonraki token’a geçiş
  • Maliyet takibi: Her istek için tahmini maliyet hesaplama
  • Tam şeffaflık: İstek gövdesi byte-for-byte iletilir, Airoxy sadece model ve stream alanlarını okur
  • Gerçek zamanlı streaming: SSE (Server-Sent Events) desteği ile sıfır tamponlama

Kurulum

Airoxy’nin kurulumu tek komutla yapılır. Ubuntu sunucunuzda şu komutu çalıştırmanız yeterli:

curl -fsSL https://raw.githubusercontent.com/oralunal/airoxy/main/install.sh | sudo bash

Bu script otomatik olarak şunları yapar:

  • PHP 8.5+ kurulumu (Ondrej PPA üzerinden)
  • Git kurulumu
  • Gerekli PHP eklentileri (curl, mbstring, sqlite3, openssl, tokenizer, xml)
  • Composer kurulumu
  • Supervisor kurulumu ve yapılandırması
  • Repo’yu /var/www/airoxy dizinine klonlama
  • Bağımlılıkların yüklenmesi
  • SQLite veritabanı oluşturma ve migration’ları çalıştırma
  • FrankenPHP kurulumu (Laravel Octane ile)
  • Dosya izinlerinin ayarlanması
  • Global airoxy komutunun oluşturulması
  • Logrotate yapılandırması

Tek gereksinim: Ubuntu. Geri kalan her şey otomatik kurulur.

Hızlı Başlangıç

Kurulum tamamlandıktan sonra 4 adımda hazırsınız:

# 1. Claude OAuth token'ınızı ekleyin
airoxy token:add sk-ant-oat01-xxx sk-ant-ort01-xxx --name="Token 1"

# 2. Ya da Claude Code credential dosyasından otomatik import edin
airoxy token:auto

# 3. İstemciniz için bir API anahtarı oluşturun
airoxy api-key:add --name="Uygulamam"
# => ak-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx (sadece bir kez gösterilir)

Artık istemciniz http://localhost:3800/v1/messages adresine istek atabilir.

Claude Subscription Token’ları Nasıl Çalışır?

Airoxy’nin en güçlü özelliği, Claude aboneliğinizin OAuth token’larını kullanabilmesidir. İşte akış:

  1. Claude Code veya Claude.ai’dan OAuth token’ınızı (sk-ant-oat01-*) ve refresh token’ınızı (sk-ant-ort01-*) alırsınız
  2. airoxy token:auto komutuyla ~/.claude/.credentials.json dosyasından otomatik import edebilirsiniz
  3. Airoxy bu token’ları kullanırken gerekli header’ları otomatik ekler:
    • Authorization: Bearer formatında kimlik doğrulama
    • anthropic-beta flag’leri
    • OAuth için gerekli user-agent ve x-app header’ları
  4. OAuth token’ları için gerekli olan Claude Code sistem prompt’u otomatik enjekte edilir
  5. Token’lar her 6 saatte bir otomatik yenilenir (OAuth2 refresh flow)
  6. Claude Code sizden önce refresh token sürecini çalıştırabilir. Bu nedenle Claude Code’da yeni /login yapmanız tavsiye edilir.

Yani siz sadece token’ı bir kez eklersiniz, gerisini Airoxy halleder.

Tüm Komutlar

Servis Yönetimi

KomutAçıklama
sudo airoxy startServisleri başlat
sudo airoxy stopServisleri durdur
sudo airoxy restartServisleri yeniden başlat
airoxy statusServis durumunu göster

Access Token Yönetimi (Anthropic OAuth)

Airoxy’nin Anthropic’e istek atarken kullandığı token’lar. Birden fazla token ekleyerek round-robin rotasyon yapabilirsiniz.

KomutAçıklama
airoxy token:add {token} {refresh_token} --name= --expires-in=28800Manuel token ekleme
airoxy token:autoClaude Code credential’larından otomatik import
airoxy token:auto --dry-runImport edilecekleri önizle
airoxy token:listTüm token’ları listele (maskelenmiş)
airoxy token:remove {id}Token sil
airoxy token:refreshTüm token’ları yenile
airoxy token:refresh --id=1Belirli bir token’ı yenile

API Key Yönetimi (İstemci Kimlik Doğrulama)

İstemcilerin Airoxy’ye bağlanırken kullandığı anahtarlar. Otomatik üretilir (ak- ön ekiyle).

KomutAçıklama
airoxy api-key:add --name="Uygulamam"Yeni API anahtarı oluştur (bir kez gösterilir)
airoxy api-key:listTüm anahtarları listele (maskelenmiş)
airoxy api-key:remove {id}Anahtar sil
airoxy api-key:toggle {id}Aktif/pasif yap

Log ve İstatistik

KomutAçıklama
airoxy logsSon 50 istek logunu göster
airoxy logs --limit=100Son 100 log
airoxy logs --todayBugünkü loglar
airoxy logs --date=2026-04-06Belirli bir tarihin logları
airoxy logs --token={id}Belirli bir token’a göre filtrele
airoxy statsGenel istatistikler
airoxy stats --todayBugünkü istatistikler
airoxy stats --monthBu ayki istatistikler

Sistem Yönetimi

KomutAçıklama
sudo airoxy updateSon kodu çek, bağımlılıkları güncelle, migrate et, yeniden başlat
sudo airoxy doctorSistem sağlık kontrolü ve otomatik düzeltme
sudo airoxy uninstallAiroxy’yi tamamen kaldır (onay ile)

Özellikler Detaylı

Şeffaf Proxy

Airoxy, istek gövdesini olduğu gibi Anthropic’e iletir. Tools, thinking, metadata gibi tüm Anthropic parametreleri şeffaf bir şekilde geçer. Airoxy sadece loglama için model ve stream alanlarını okur — geri kalanına dokunmaz.

Gerçek Zamanlı SSE Streaming

Streaming istekler için native cURL CURLOPT_WRITEFUNCTION callback’i kullanılır. Bu sayede her SSE chunk’ı anında istemciye iletilir — tamponlama (buffering) sıfırdır. Claude Code gibi streaming gerektiren uygulamalar sorunsuz çalışır.

Round-Robin Token Rotasyonu

Birden fazla access token eklediğinizde, Airoxy her istekte en az kullanılan (LRU – Least Recently Used) token’ı seçer. Eğer bir token rate limit (429) veya overloaded (529) hatası alırsa, otomatik olarak sonraki token’a geçiş yapar. Tüm token’lar tükenene kadar denemeye devam eder.

OAuth2 Token Yenileme

OAuth token’ları varsayılan olarak her 6 saatte bir otomatik yenilenir. Yenileme süresi .env dosyasından ayarlanabilir. Ard arda 3 başarısız yenileme denemesinden sonra token otomatik olarak devre dışı bırakılır.

Maliyet Tahmini

Her istek için input token, output token, cache oluşturma ve cache okuma token’larına göre maliyet hesaplanır. Desteklenen tüm Claude modelleri için fiyatlandırma tablosu config/airoxy.php içinde tanımlıdır:

ModelInput (1M token)Output (1M token)
claude-opus-4-6$15.00$75.00
claude-sonnet-4-6$3.00$15.00
claude-haiku-4-5$0.80$4.00
claude-opus-4-5$15.00$75.00
claude-sonnet-4-5$3.00$15.00
claude-opus-4-1$15.00$75.00
claude-opus-4-0$15.00$75.00
claude-sonnet-4-0$3.00$15.00
claude-3-haiku$0.25$1.25

Log Saklama ve İstatistikler

Detaylı istek logları varsayılan olarak 3 gün saklanır. Loglar silinmeden önce günlük istatistiklere (daily stats) dönüştürülür ve bu istatistikler kalıcı olarak saklanır. Böylece uzun vadeli kullanım trendlerinizi her zaman görebilirsiniz.

Zamanlanmış görevler:

  • Token yenileme: Her 6 saatte bir
  • İstatistik toplama: Her gün saat 01:00’de
  • Log temizleme: Her gün saat 01:30’da

Doctor Komutu

airoxy doctor komutu sisteminizi 16 farklı kontrolle tarar ve sorunları otomatik düzeltir:

  • PHP sürümü (8.5+)
  • PHP eklentileri (curl, mbstring, sqlite3, openssl, tokenizer, xml)
  • Composer kurulumu
  • Supervisor kurulumu ve yapılandırması
  • .env dosyası ve APP_KEY
  • SQLite veritabanı varlığı ve izinleri
  • Bekleyen migration’lar
  • FrankenPHP kurulumu
  • Dosya sahipliği (www-data)
  • Airoxy ve scheduler süreç durumu
  • Global alias
  • Logrotate yapılandırması

Yapılandırma

/var/www/airoxy/.env dosyasını düzenleyerek ayarları değiştirebilirsiniz:

AIROXY_HOST=0.0.0.0              # Dinleme adresi
AIROXY_PORT=3800                  # Dinleme portu
AIROXY_TOKEN_REFRESH_INTERVAL=360 # Token yenileme aralığı (dakika)
AIROXY_LOG_RETENTION_DAYS=3       # Detaylı log saklama süresi (gün)

Kullanım Örneği

Standart istek:

curl http://sunucu-ip:3800/v1/messages 
  -H "content-type: application/json" 
  -H "x-api-key: ak-your-api-key-here" 
  -H "anthropic-version: 2023-06-01" 
  -d '{
    "model": "claude-sonnet-4-6",
    "max_tokens": 1024,
    "messages": [{"role": "user", "content": "Merhaba!"}]
  }'

Streaming istek:

curl -N http://sunucu-ip:3800/v1/messages 
  -H "content-type: application/json" 
  -H "x-api-key: ak-your-api-key-here" 
  -H "anthropic-version: 2023-06-01" 
  -d '{
    "model": "claude-sonnet-4-6",
    "max_tokens": 1024,
    "stream": true,
    "messages": [{"role": "user", "content": "Merhaba!"}]
  }'

Laravel AI SDK ile kullanım — sadece environment variable’ları ayarlayın:

ANTHROPIC_BASE_URL=http://sunucu-ip:3800
ANTHROPIC_API_KEY=ak-your-api-key-here

Mimari

Airoxy şu teknoloji yığını üzerine inşa edilmiştir:

  • Sunucu: Laravel Octane + FrankenPHP (yüksek performanslı, kalıcı worker’lar)
  • Veritabanı: SQLite (hafif, kurulum gerektirmez)
  • Süreç Yönetimi: Supervisor (otomatik yeniden başlatma)
  • Log Rotasyonu: Logrotate (aylık, sıkıştırılmış, 3 ay saklama)
  • Framework: Laravel 13, PHP 8.5
airoxy/
  app/Services/
    ProxyService.php          # Çekirdek proxy mantığı (stream + non-stream)
    StreamHandler.php         # SSE chunk ayrıştırma, token sayma
    AccessTokenRotator.php    # Round-robin token seçimi
    TokenRefresher.php        # OAuth2 token yenileme
    CostCalculator.php        # Maliyet hesaplama
  app/Http/
    Middleware/AuthenticateToken.php  # API key doğrulama
    Controllers/ProxyController.php  # İstek yönlendirici
  app/Console/Commands/              # Tüm CLI komutları
  config/airoxy.php                  # Fiyatlandırma, OAuth2 ayarları

Sağlık Kontrolü

Airoxy’nin çalışıp çalışmadığını kontrol etmek için:

GET http://sunucu-ip:3800/health

Kimlik doğrulama gerektirmez.

Sonuç

Airoxy, Claude aboneliğinizi bir API sunucusuna dönüştürmenin en kolay yoludur. Tek komutla kurulur, birden fazla token’ı otomatik döndürür, maliyetleri takip eder ve gerçek zamanlı streaming destekler.

Projenin kaynak kodu açıktır ve GitHub’da mevcuttur:

GitHub: github.com/oralunal/airoxy

Lisans: MIT

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir