@halilertekin/claude-code-router-config 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,510 @@
1
+ # Claude Code Router - Tam Dokümantasyon
2
+
3
+ > **Versiyon**: 1.0.73
4
+ > **Tarih**: 2025-12-20
5
+ > **Amaç**: Tek Claude Code arayüzünden birden fazla AI provider'a intent-based routing
6
+
7
+ ---
8
+
9
+ ## İçindekiler
10
+
11
+ 1. [Genel Bakış](#genel-bakış)
12
+ 2. [Mimari](#mimari)
13
+ 3. [Desteklenen Provider'lar](#desteklenen-providerlar)
14
+ 4. [Routing Stratejisi](#routing-stratejisi)
15
+ 5. [Kurulum](#kurulum)
16
+ 6. [Konfigürasyon Detayları](#konfigürasyon-detayları)
17
+ 7. [Intent Router Mantığı](#intent-router-mantığı)
18
+ 8. [Kullanım Rehberi](#kullanım-rehberi)
19
+ 9. [Sorun Giderme](#sorun-giderme)
20
+ 10. [API Key Alma Rehberi](#api-key-alma-rehberi)
21
+
22
+ ---
23
+
24
+ ## Genel Bakış
25
+
26
+ Claude Code Router, Claude Code CLI'ı bir proxy üzerinden çalıştırarak istekleri farklı AI provider'lara yönlendirir. Bu sayede:
27
+
28
+ - **Maliyet optimizasyonu**: Basit işler ucuz modellere gider
29
+ - **Performans optimizasyonu**: Hızlı cevap gereken işler hızlı modellere gider
30
+ - **Yetenek optimizasyonu**: Her iş için en uygun model seçilir
31
+ - **Tek arayüz**: Tüm modellere Claude Code üzerinden erişim
32
+
33
+ ---
34
+
35
+ ## Mimari
36
+
37
+ ```
38
+ ┌─────────────────┐
39
+ │ Claude Code │
40
+ │ (CLI/UI) │
41
+ └────────┬────────┘
42
+ │ localhost:3456
43
+
44
+ ┌─────────────────┐
45
+ │ Claude Code │
46
+ │ Router │
47
+ │ (Proxy Server) │
48
+ └────────┬────────┘
49
+
50
+ ┌────┴────┐
51
+ ▼ ▼
52
+ ┌───────┐ ┌───────┐ ┌───────┐ ┌───────┐ ┌───────┐ ┌───────────┐
53
+ │OpenAI │ │Anthro │ │Gemini │ │ Qwen │ │ GLM │ │OpenRouter │
54
+ └───────┘ └───────┘ └───────┘ └───────┘ └───────┘ └───────────┘
55
+ ```
56
+
57
+ ### Akış
58
+
59
+ 1. Kullanıcı Claude Code'a istek gönderir
60
+ 2. İstek `localhost:3456`'ya (router) gider
61
+ 3. Router, `intent-router.js` ile intent analizi yapar
62
+ 4. İstek uygun provider'a yönlendirilir
63
+ 5. Cevap kullanıcıya döner
64
+
65
+ ---
66
+
67
+ ## Desteklenen Provider'lar
68
+
69
+ ### 1. OpenAI
70
+ | Özellik | Değer |
71
+ |---------|-------|
72
+ | **API URL** | `https://api.openai.com/v1/chat/completions` |
73
+ | **Modeller** | gpt-4o, gpt-4-turbo, gpt-4o-mini, o1, o1-mini |
74
+ | **Kullanım** | Coding, debugging, refactoring |
75
+ | **Maliyet** | Orta-Yüksek |
76
+ | **Env Var** | `OPENAI_API_KEY` |
77
+
78
+ ### 2. Anthropic (Claude)
79
+ | Özellik | Değer |
80
+ |---------|-------|
81
+ | **API URL** | `https://api.anthropic.com/v1/messages` |
82
+ | **Modeller** | claude-sonnet-4-latest, claude-3-5-sonnet-latest |
83
+ | **Kullanım** | Deep reasoning, architecture, analysis |
84
+ | **Maliyet** | Yüksek |
85
+ | **Env Var** | `ANTHROPIC_API_KEY` |
86
+ | **Transformer** | `Anthropic` (gerekli) |
87
+
88
+ ### 3. Google Gemini
89
+ | Özellik | Değer |
90
+ |---------|-------|
91
+ | **API URL** | `https://generativelanguage.googleapis.com/v1beta/openai/chat/completions` |
92
+ | **Modeller** | gemini-2.5-flash, gemini-2.5-pro, gemini-2.0-flash |
93
+ | **Kullanım** | Hızlı cevaplar, uzun context (1M token) |
94
+ | **Maliyet** | Düşük-Orta |
95
+ | **Env Var** | `GEMINI_API_KEY` |
96
+ | **Transformer** | `gemini` (gerekli) |
97
+
98
+ ### 4. Alibaba Qwen (DashScope)
99
+ | Özellik | Değer |
100
+ |---------|-------|
101
+ | **API URL** | `https://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions` |
102
+ | **Modeller** | qwen-plus, qwen-max, qwen3-coder-plus, qwen-turbo |
103
+ | **Kullanım** | Ucuz coding, basit işler |
104
+ | **Maliyet** | Çok Düşük |
105
+ | **Env Var** | `QWEN_API_KEY` |
106
+
107
+ ### 5. Zhipu GLM (Z.ai)
108
+ | Özellik | Değer |
109
+ |---------|-------|
110
+ | **API URL** | `https://api.z.ai/api/paas/v4/chat/completions` |
111
+ | **Modeller** | glm-4.6, glm-4.5, glm-4-plus |
112
+ | **Kullanım** | Çok dilli, Çince, çeviri |
113
+ | **Maliyet** | Düşük |
114
+ | **Env Var** | `GLM_API_KEY` |
115
+
116
+ ### 6. OpenRouter
117
+ | Özellik | Değer |
118
+ |---------|-------|
119
+ | **API URL** | `https://openrouter.ai/api/v1/chat/completions` |
120
+ | **Modeller** | Tüm modeller (Claude, GPT, Gemini, Llama, DeepSeek...) |
121
+ | **Kullanım** | Fallback, çeşitlilik |
122
+ | **Maliyet** | Değişken |
123
+ | **Env Var** | `OPENROUTER_API_KEY` |
124
+ | **Transformer** | `openrouter` (gerekli) |
125
+
126
+ ---
127
+
128
+ ## Routing Stratejisi
129
+
130
+ ### Otomatik Intent-Based Routing
131
+
132
+ | Intent | Tetikleyici Kelimeler | Provider | Model |
133
+ |--------|----------------------|----------|-------|
134
+ | **CODING** | implement, refactor, debug, fix, code, function, class, typescript, python, api, database | OpenAI | gpt-4o |
135
+ | **REASONING** | architect, design, analyze, plan, why, explain, compare, evaluate, best practice | Anthropic | claude-sonnet-4 |
136
+ | **FAST** | fast, quick, brief, summary, tldr, overview, hızlı, scan, check | Gemini | gemini-2.5-flash |
137
+ | **SIMPLE** | list, show, what is, simple, basic, help, format, rename, mkdir, ucuz, basit | Qwen | qwen-plus |
138
+ | **MULTILINGUAL** | translate, çevir, tercüme, chinese, türkçe, Çince karakterler | GLM | glm-4.6 |
139
+ | **HEAVY_REASONING** | complex algorithm, optimization, performance critical, prove, mathematical | OpenAI | o1 |
140
+
141
+ ### Built-in Router Ayarları
142
+
143
+ | Senaryo | Provider | Model | Açıklama |
144
+ |---------|----------|-------|----------|
145
+ | **default** | OpenAI | gpt-4o | Eşleşme yoksa |
146
+ | **background** | Qwen | qwen-turbo | Arka plan görevleri |
147
+ | **think** | Anthropic | claude-sonnet-4 | Düşünme/reasoning |
148
+ | **longContext** | Gemini | gemini-2.5-flash | >60K token |
149
+
150
+ ---
151
+
152
+ ## Kurulum
153
+
154
+ ### Gereksinimler
155
+ - Node.js 18+
156
+ - pnpm (tercih edilen) veya npm
157
+
158
+ ### Seçenek 1: Homebrew (Tavsiye Edilen)
159
+
160
+ ```bash
161
+ brew install halilertekin/tap/claude-code-router-config
162
+ ```
163
+
164
+ Homebrew kurulumu her şeyi otomatik yapar:
165
+ - @musistudio/claude-code-router kurar
166
+ - Konfigürasyon dosyalarını kopyalar
167
+ - ~/.env dosyasını şablonlarla oluşturur
168
+ - Sonraki adımları gösterir
169
+
170
+ ### Seçenek 2: NPM Paketi
171
+
172
+ ```bash
173
+ pnpm add -g @halilertekin/claude-code-router-config
174
+ ccr-setup
175
+ ```
176
+
177
+ ### Seçenek 3: Manuel Kurulum
178
+
179
+ #### Adım 1: Paket Kurulumu
180
+
181
+ ```bash
182
+ pnpm add -g @musistudio/claude-code-router
183
+ mkdir -p ~/.claude-code-router
184
+ ```
185
+
186
+ #### Adım 2: Environment Variables
187
+
188
+ `~/.zshrc` veya `~/.bashrc` dosyasına ekle:
189
+
190
+ ```bash
191
+ # ═══════════════════════════════════════════════════
192
+ # Claude Code Router - API Keys
193
+ # ═══════════════════════════════════════════════════
194
+
195
+ # OpenAI (GPT-4o, O1, Codex)
196
+ export OPENAI_API_KEY="sk-..."
197
+
198
+ # Anthropic (Claude)
199
+ export ANTHROPIC_API_KEY="sk-ant-..."
200
+
201
+ # Google Gemini
202
+ export GEMINI_API_KEY="AIza..."
203
+
204
+ # Alibaba Qwen (DashScope)
205
+ export QWEN_API_KEY="sk-..."
206
+
207
+ # Zhipu GLM (Z.ai)
208
+ export GLM_API_KEY="..."
209
+
210
+ # OpenRouter (fallback)
211
+ export OPENROUTER_API_KEY="sk-or-..."
212
+
213
+ # ═══════════════════════════════════════════════════
214
+ # Router Connection
215
+ # ═══════════════════════════════════════════════════
216
+ export ANTHROPIC_BASE_URL="http://127.0.0.1:3456"
217
+ export NO_PROXY="127.0.0.1"
218
+ ```
219
+
220
+ ### Adım 3: Shell'i Yenile
221
+
222
+ ```bash
223
+ source ~/.zshrc
224
+ ```
225
+
226
+ ### Adım 4: Başlat
227
+
228
+ ```bash
229
+ ccr code
230
+ ```
231
+
232
+ ---
233
+
234
+ ## Konfigürasyon Detayları
235
+
236
+ ### config.json Yapısı
237
+
238
+ ```json
239
+ {
240
+ "LOG": true, // Loglama aktif
241
+ "LOG_LEVEL": "info", // Log seviyesi: fatal|error|warn|info|debug|trace
242
+ "API_TIMEOUT_MS": 300000, // 5 dakika timeout
243
+ "CUSTOM_ROUTER_PATH": "$HOME/.claude-code-router/intent-router.js",
244
+
245
+ "Providers": [
246
+ {
247
+ "name": "provider_adi", // Benzersiz isim
248
+ "api_base_url": "https://...", // API endpoint
249
+ "api_key": "$ENV_VAR", // Env var referansı
250
+ "models": ["model1", "model2"], // Desteklenen modeller
251
+ "transformer": { "use": [] } // Gerekli transformer'lar
252
+ }
253
+ ],
254
+
255
+ "Router": {
256
+ "default": "provider,model", // Varsayılan
257
+ "background": "provider,model", // Arka plan görevleri
258
+ "think": "provider,model", // Reasoning görevleri
259
+ "longContext": "provider,model", // Uzun context
260
+ "longContextThreshold": 60000 // Token eşiği
261
+ }
262
+ }
263
+ ```
264
+
265
+ ### Transformer'lar
266
+
267
+ | Transformer | Kullanım |
268
+ |-------------|----------|
269
+ | `Anthropic` | Anthropic API formatı için |
270
+ | `gemini` | Google Gemini API formatı için |
271
+ | `openrouter` | OpenRouter API formatı için |
272
+ | `deepseek` | DeepSeek modelleri için |
273
+ | `maxtoken` | Max token limiti ayarı için |
274
+
275
+ ---
276
+
277
+ ## Intent Router Mantığı
278
+
279
+ ### Çalışma Prensibi
280
+
281
+ 1. İstek gelir
282
+ 2. Mesaj içeriği çıkarılır (user + system mesajları)
283
+ 3. Her intent için pattern eşleşmesi sayılır
284
+ 4. En yüksek skora sahip intent seçilir
285
+ 5. İlgili provider'a yönlendirilir
286
+
287
+ ### Pattern Öncelik Sırası
288
+
289
+ 1. **HEAVY_REASONING** - Karmaşık algoritmalar
290
+ 2. **CODING** - Kod yazma/düzeltme
291
+ 3. **REASONING** - Analiz/açıklama
292
+ 4. **MULTILINGUAL** - Çeviri
293
+ 5. **FAST** - Hızlı cevaplar
294
+ 6. **SIMPLE** - Basit işler
295
+
296
+ ### Özelleştirme
297
+
298
+ `intent-router.js` dosyasını düzenleyerek:
299
+ - Yeni intent'ler ekleyebilirsin
300
+ - Pattern'leri değiştirebilirsin
301
+ - Route'ları güncelleyebilirsin
302
+
303
+ ---
304
+
305
+ ## Kullanım Rehberi
306
+
307
+ ### Temel Komutlar
308
+
309
+ ```bash
310
+ # Router'ı başlat
311
+ ccr start
312
+
313
+ # Claude Code ile birlikte başlat
314
+ ccr code
315
+
316
+ # Durum kontrolü
317
+ ccr status
318
+
319
+ # Router'ı durdur
320
+ ccr stop
321
+
322
+ # Router'ı yeniden başlat
323
+ ccr restart
324
+
325
+ # Web UI aç
326
+ ccr ui
327
+
328
+ # Model seçim arayüzü
329
+ ccr model
330
+ ```
331
+
332
+ ### Runtime Model Değiştirme
333
+
334
+ Claude Code içinde `/model` komutu:
335
+
336
+ ```
337
+ /model openai,gpt-4o
338
+ /model openai,o1
339
+ /model anthropic,claude-sonnet-4-latest
340
+ /model gemini,gemini-2.5-flash
341
+ /model gemini,gemini-2.5-pro
342
+ /model qwen,qwen-plus
343
+ /model qwen,qwen3-coder-plus
344
+ /model glm,glm-4.6
345
+ /model openrouter,deepseek/deepseek-chat
346
+ ```
347
+
348
+ ### Örnek Kullanım Senaryoları
349
+
350
+ ```bash
351
+ # Coding → OpenAI gpt-4o
352
+ claude "Write a Python function to implement merge sort"
353
+
354
+ # Deep Analysis → Anthropic Claude
355
+ claude "Analyze the trade-offs between microservices and monolith architecture"
356
+
357
+ # Quick Summary → Gemini Flash
358
+ claude "Give me a quick summary of GraphQL vs REST"
359
+
360
+ # Simple Task → Qwen
361
+ claude "List all TypeScript files in src directory"
362
+
363
+ # Translation → GLM
364
+ claude "Translate this to Chinese: Hello, how are you?"
365
+
366
+ # Complex Algorithm → OpenAI O1
367
+ claude "Design an optimal caching algorithm for a distributed system"
368
+ ```
369
+
370
+ ### Logları İzleme
371
+
372
+ ```bash
373
+ # Tüm loglar
374
+ tail -f ~/.claude-code-router/logs/*.log
375
+
376
+ # Sadece router kararları
377
+ tail -f ~/.claude-code-router/logs/*.log | grep "Router"
378
+ ```
379
+
380
+ ---
381
+
382
+ ## Sorun Giderme
383
+
384
+ ### Router Başlamıyor
385
+
386
+ ```bash
387
+ # Port kullanımda mı kontrol et
388
+ lsof -i :3456
389
+
390
+ # Varsa kapat
391
+ kill -9 <PID>
392
+
393
+ # Tekrar başlat
394
+ ccr start
395
+ ```
396
+
397
+ ### API Hatası Alıyorum
398
+
399
+ 1. API key'in doğru mu kontrol et:
400
+ ```bash
401
+ echo $OPENAI_API_KEY
402
+ echo $ANTHROPIC_API_KEY
403
+ # ... diğerleri
404
+ ```
405
+
406
+ 2. Key'i test et:
407
+ ```bash
408
+ curl https://api.openai.com/v1/models \
409
+ -H "Authorization: Bearer $OPENAI_API_KEY"
410
+ ```
411
+
412
+ ### Model Bulunamıyor Hatası
413
+
414
+ `config.json`'daki model adının doğru olduğundan emin ol:
415
+ - OpenAI: `gpt-4o` (not: `gpt-4-o` değil)
416
+ - Anthropic: `claude-sonnet-4-latest`
417
+ - Gemini: `gemini-2.5-flash`
418
+
419
+ ### Routing Çalışmıyor
420
+
421
+ 1. Custom router'ın yüklendiğini kontrol et:
422
+ ```bash
423
+ cat ~/.claude-code-router/config.json | grep CUSTOM_ROUTER
424
+ ```
425
+
426
+ 2. Router dosyasının var olduğunu kontrol et:
427
+ ```bash
428
+ ls -la ~/.claude-code-router/intent-router.js
429
+ ```
430
+
431
+ 3. Syntax hatası var mı kontrol et:
432
+ ```bash
433
+ node -c ~/.claude-code-router/intent-router.js
434
+ ```
435
+
436
+ ---
437
+
438
+ ## API Key Alma Rehberi
439
+
440
+ ### OpenAI
441
+ 1. https://platform.openai.com/api-keys adresine git
442
+ 2. "Create new secret key" tıkla
443
+ 3. Key'i kopyala (`sk-...` ile başlar)
444
+
445
+ ### Anthropic
446
+ 1. https://console.anthropic.com/settings/keys adresine git
447
+ 2. "Create Key" tıkla
448
+ 3. Key'i kopyala (`sk-ant-...` ile başlar)
449
+
450
+ ### Google Gemini
451
+ 1. https://aistudio.google.com/apikey adresine git
452
+ 2. "Create API Key" tıkla
453
+ 3. Key'i kopyala (`AIza...` ile başlar)
454
+
455
+ ### Alibaba Qwen (DashScope)
456
+ 1. https://dashscope.console.aliyun.com/apiKey adresine git
457
+ 2. Aliyun hesabı oluştur (international)
458
+ 3. API key al
459
+
460
+ ### Zhipu GLM (Z.ai)
461
+ 1. https://open.bigmodel.cn/usercenter/apikeys adresine git
462
+ 2. Hesap oluştur
463
+ 3. API key al
464
+
465
+ ### OpenRouter
466
+ 1. https://openrouter.ai/keys adresine git
467
+ 2. GitHub/Google ile giriş yap
468
+ 3. "Create Key" tıkla
469
+ 4. Key'i kopyala (`sk-or-...` ile başlar)
470
+
471
+ ---
472
+
473
+ ## Dosya Yapısı
474
+
475
+ ```
476
+ ~/.claude-code-router/
477
+ ├── config.json # Ana konfigürasyon
478
+ ├── intent-router.js # Custom routing logic
479
+ ├── README.md # Kısa dokümantasyon
480
+ ├── FULL_DOCUMENTATION.md # Bu dosya
481
+ └── logs/ # Log dosyaları
482
+ └── *.log
483
+ ```
484
+
485
+ ---
486
+
487
+ ## Notlar
488
+
489
+ - Router her zaman `localhost:3456` üzerinde çalışır
490
+ - `ANTHROPIC_BASE_URL` Claude Code'un router'a bağlanmasını sağlar
491
+ - `NO_PROXY` sistem proxy'sinin router'ı atlamamasını sağlar
492
+ - Env var'lar `$VAR_NAME` formatında config.json'da kullanılabilir
493
+
494
+ ---
495
+
496
+ ## Atıf (Attribution)
497
+
498
+ Bu yapılandırma paketi [@musistudio/claude-code-router](https://github.com/musistudio/claude-code-router) için tasarlanmıştır. Bu, Claude Code'u birden fazla AI sağlayıcısıyla kullanmanızı sağlayan mükemmel bir araçtır.
499
+
500
+ Orijinal Claude Code Router projesi musistudio tarafından geliştirilmektedir ve bakımı yapılmaktadır. Bu paket, kullanıcıların hızla başlamasına yardımcı olmak için önceden yapılandırılmış routing mantığı ve sağlayıcı konfigürasyonları içermektedir.
501
+
502
+ ## Kaynaklar
503
+
504
+ - [GitHub - musistudio/claude-code-router](https://github.com/musistudio/claude-code-router)
505
+ - [npm - @musistudio/claude-code-router](https://www.npmjs.com/package/@musistudio/claude-code-router)
506
+ - [OpenAI API Docs](https://platform.openai.com/docs)
507
+ - [Anthropic API Docs](https://docs.anthropic.com)
508
+ - [Gemini API Docs](https://ai.google.dev/gemini-api/docs)
509
+ - [DashScope Docs](https://www.alibabacloud.com/help/en/model-studio)
510
+ - [Z.ai Docs](https://docs.z.ai)