
Yan Menü → Geliştirici, Memo'yu yerel, Anthropic-uyumlu bir uç noktaya dönüştürüyor. Claude Code'u (ya da sadece Anthropic'in Messages API'sini konuşan başka bir aracı) buna yönlendir — Memo, o isteğin arkasında gerçekte ne varsa onu çalıştırır: yerel modelin ya da zaten yapılandırdığın herhangi bir harici sağlayıcı — Claude Code ise her zamanki gibi çalışmaya devam eder.
v3.9.0'da yeni: gateway artık OpenAI-uyumlu şekli de konuşuyor — POST /v1/chat/completions ve GET /v1/models, birebir aynı auth/yönlendirme/hafıza hattından — yani yalnızca OpenAI-tarzı base URL anlayan araçlar da çalışıyor. Çağıran aracın gönderdiklerinin üzerine eklemeli uygulanacak yapılandırılabilir bir sistem prompt'u ayarlanabiliyor ve tek tıklamayla ortam, doğrudan Claude Code CLI'nin kendi ayar dosyasına yazılabiliyor — eski değerler yedeklenip bağlantı kesildiğinde birebir geri yükleniyor.
Memo'nun yan menüsünden Geliştirici'yi aç. Ekranın üstünde kopyalanabilir bir Base URL görürsün — varsayılan olarak bu http://localhost:8090, Memo'nun backend'inin dinlediği portla eşleşiyor. Backend'in portunu değiştirdiysen bu da ona göre değişir.
Claude Code hedef sunucusunu ortam değişkenlerinden okuyor. claude'u çalıştırmadan önce şunları ayarla:
# bash / zsh
export ANTHROPIC_BASE_URL="http://localhost:8090"
export ANTHROPIC_API_KEY="not-needed"
export ANTHROPIC_MODEL="local/qwen2.5"
# fish
set -x ANTHROPIC_BASE_URL "http://localhost:8090"
set -x ANTHROPIC_API_KEY "not-needed"
set -x ANTHROPIC_MODEL "local/qwen2.5"
ANTHROPIC_API_KEY, Geliştirici ekranındaki API Anahtarı Gerektir anahtarı kapalıyken (varsayılan) herhangi bir boş-olmayan metin olabilir — Memo bunu kontrol etmiyor, ama Claude Code'un kendi SDK'sı bir şey ayarlanmadan başlamayı reddediyor. API Anahtarı Gerektir'i açarsan, bunun yerine Geliştirici ekranında gösterilen gerçek token'ı kullan (Uzaktan Erişim'in kullandığı aynı token) — Claude Code bunu otomatik olarak x-api-key başlığıyla gönderiyor.
[!IMPORTANT]
v4.5.0 güvenlik düzeltmesi. Önceki bir sürüm bu Anthropic-uyumlu endpoint için anahtar-zorunluluğu boşluğunu kapatmıştı; bu sürüm aynı boşluğu OpenAI-uyumlu kardeşi için de kapattı (GET /v1/models,POST /v1/chat/completions). "API Anahtarı Gerektir" kapalı bırakıldığında (varsayılanı) ve uzaktan erişim açıkken, o endpoint önceden portla erişebilen herhangi bir şey tarafından, hiçbir kimlik bilgisi olmadan erişilebiliyordu. İki endpoint de artık bu makinenin kendi loopback arayüzünde gerçekten olmayan her çağıran için anahtarı aynı şekilde zorunlu kılıyor.
tip/model-id ile bir model seçMemo'nun ağ geçidi isteğin model alanını <tip>/<model-id> olarak okuyor:
| Değer | Neye yönlendiriyor |
|---|---|
local/qwen2.5 |
Memo'da o an yüklü olan yerel llama.cpp modeli — qwen2.5 kısmı sadece bir etiket, gerçek model o anda çalışan her ne ise odur |
openai/gpt-4o |
Ayarlar → API Sağlayıcıları altındaki etkin OpenAI sağlayıcın, gpt-4o modeliyle |
custom/<model-id> |
Kendi yapılandırdığın etkin custom sağlayıcı (LM Studio, vLLM gibi kendi OpenAI-uyumlu uç noktan) |
Geliştirici ekranı, o an geçerli olan her tip/model-id kombinasyonunu kopyalanabilir girdiler olarak listeliyor — hangi yerel modelin yüklü olduğuna ve hangi sağlayıcıların etkin olduğuna göre değişiyor. claude'u başlatmadan önce birini ANTHROPIC_MODEL olarak ayarla, ya da oturum ortasında Claude Code'un kendi /model komutuyla değiştir, örn. /model openai/gpt-4o.
claude'u her zamanki gibi çalıştır. Arayüzünde hiçbir şey değişmiyor — dosya okuma/yazma, shell komutları çalıştırma, çok turlu araç-kullanımlı konuşmaların hepsi gerçek Anthropic API'sine karşı çalıştığı gibi çalışıyor, çünkü ağ geçidi Anthropic'in wire formatının tam, çift yönlü bir çevirisini yapıyor (bir araç çağrısının argümanlarının Anthropic tarafında gerçek bir JSON nesnesi, OpenAI tarafında ise JSON-kodlanmış bir string olması gibi ince bir detay dahil).
Tek gerçek sınırlama: çözümlenen model ollama sağlayıcı tipine aitse araç çağırma henüz çalışmıyor — Memo'daki alttaki implementasyonu henüz araç tanımlarını hiç desteklemiyor. Ona yönlendirilen araç-tanımlı bir istek, araçları sessizce yok saymak yerine açık bir hata döndürüyor. (gemini ve claude eskiden bu kısa listedeydi — ikisi de bir önceki sürümde gerçek tool-calling kazandı ve artık doğru şekilde round-trip ediyor.)
Geliştirici ekranının altında, ağ geçidinden geçen her isteğin canlı bir günlüğü var, ekran açıkken birkaç saniyede bir yenileniyor — zaman, çözümlenen model, streaming/araç kullanılıp kullanılmadığı, süre, ve istek/cevap önizlemesi. İlk Claude Code isteğinin gerçekten ulaşıp ulaşmadığını ve tam olarak hangi modele çözümlendiğini görmenin en hızlı yolu bu.
Bu ekrandaki iki ayar varsayılan olarak kapalı: API Anahtarı Gerektir (yukarıda) ve Hafızayı Kullan. Hafıza entegrasyonunu açmak, ağ geçidi isteklerini modele gönderilmeden önce Memo'nun kendi RAG hafızasından ilgili gerçeklerle zenginleştiriyor — ama Claude Code üzerinden bu şekilde çalıştırılan bir kodlama oturumu, hafıza açık olsa bile Memo'nun kendi sohbet geçmişinde asla görünür bir sohbet oluşturmuyor. Ağ geçidi trafiği ile sıradan sohbetlerin bilinçli olarak birbirine karışmaması sağlanıyor.