FisherSelim AI — VS Code Eklentisi
FisherSelim AI'ı editörünüzden kullanın: kod
seçip soru sorun, dosya açıklatın, hata metnini analiz ettirin, önerilen
kodu diff görünümüyle onaylayıp uygulayın — hepsi aynı model routing ve
kredi sistemiyle (backend'deki POST /api/agent/complete üzerinden).
Yanıtlar markdown + syntax highlighting ile render edilir, sohbet
geçmişiniz projeye özel olarak saklanır, ve panelin üstünden erişebildiğiniz
modeller arasında geçiş yapabilirsiniz.
Kurulum
Marketplace'ten
FisherSelim AI - VS Code Marketplace
adresinden "Install" butonuna basarak kurabilirsiniz.
.vsix dosyasından manuel kurulum
Paketi oluşturun (veya elinizde hazır bir .vsix varsa 2. adıma geçin):
cd vscode-extension
npm install
npm run package # fisherselim-ai-0.1.0.vsix uretir
VS Code'da: Komut Paleti (Ctrl+Shift+P / Cmd+Shift+P) →
"Extensions: Install from VSIX..." → üretilen .vsix dosyasını seçin.
Alternatif olarak terminalden:
code --install-extension fisherselim-ai-0.1.0.vsix
Giriş yapma (auth)
API anahtarınız VS Code SecretStorage'da tutulur — CLI'daki
~/.fisherselim/config.json gibi düz metin bir dosyaya asla yazılmaz.
- Komut Paleti → "FisherSelim: Login".
- Açılan kutuya API anahtarınızı (
fsk_...) girin — ai.fisherselim.com
hesabınızdan POST /api/keys ile oluşturabilirsiniz.
- Anahtar sunucuya karşı doğrulanır; başarılıysa bir bildirim görürsünüz.
- Çıkış yapmak için Komut Paleti → "FisherSelim: Logout".
Özellikler ve kullanım akışı
Ekran görüntüsü yerine ne olacağını adım adım anlatıyoruz:
1. Sohbet paneli
Activity bar'da (sol kenar çubuğu) bir "FisherSelim AI" simgesi
belirir. Tıkladığınızda "Sohbet" adlı bir panel açılır:
- Üst çubukta erişebildiğiniz modelleri listeleyen bir açılır menü
(planınızda olmayan modeller listede görünür ama seçilemez/gri
gösterilir), sohbetin başlığı, geçmiş sohbetleri açan bir 🕘 butonu
ve bir "Yeni sohbet" butonu vardır.
- Mesaj listesinde yanıtlar markdown olarak (başlık, liste, kalın/italik,
tablo) ve kod blokları syntax highlighting ile render edilir; her kod
bloğunun sağ üstünde "Kopyala" ve "Uygula" butonları bulunur
(bkz. aşağıdaki ilgili bölümler).
- Alttaki kutuya yazıp Enter'a basın (Shift+Enter yeni satır ekler) —
sorunuz bir "kullanıcı" balonu olarak görünür, yanıt token'lar geldikçe
gerçek zamanlı olarak bir "asistan" balonunda büyür. Yanıt bitince,
kullanılan kredi varsa altında küçük bir not olarak görünür.
Model seçiminiz ve sohbet geçmişiniz kalıcıdır — VS Code'u kapatıp
açtığınızda kaybolmaz (bkz. "Sohbet geçmişi" ve "Ayarlar" bölümleri).
2. Seçili kod hakkında soru — FisherSelim: Ask about selection
Editörde bir kod parçası seçin, ardından Komut Paleti'nden bu komutu
çalıştırın (veya seçiliyken sağ tık menüsünde de görünür). Açılan kutuya
ne sormak istediğinizi yazın (varsayılan: "Bu kodu açıkla ve olası
sorunları belirt."). Sohbet paneli otomatik açılır, sorunuz + seçtiğiniz
kod bağlam olarak eklenip gönderilir, yanıt panelde akar.
3. Dosyayı açıklat — FisherSelim: Explain this file
Komut Paleti'nden çalıştırın; aktif dosyanın tamamı bağlam olarak alınır
("Bu dosyanın ne yaptığını özetle ve önemli noktalara dikkat çek." sorusuyla),
sohbet panelinde yanıt akar. Çok büyük dosyalarda içerik kısaltılır (mesaj
sonunda "kısaltıldı" notu görünür).
4. Hata metnini analiz ettir — FisherSelim: Debug this error
Sadece metin bazlı bir analizdir; VS Code'un debugger'ına (breakpoint,
adım adım çalıştırma vb.) hiç dokunulmaz. Komutu çalıştırdığınızda sırasıyla:
- Editörde seçili bir metin varsa (örneğin bir log dosyasındaki hata
satırları) onu kullanır,
- yoksa, entegre terminalde çalıştırdığınız son başarısız (çıkış kodu
0'dan farklı) komutun çıktısını (VS Code'un Terminal Shell Integration
özelliğiyle otomatik yakalanır) kullanır,
- hiçbiri yoksa, hata metnini yapıştırmanız için bir kutu açar.
Bulunan/yapıştırılan metin, "Bu hatayı analiz et: olası kök nedenini ve
çözümünü açıkla." sorusuyla sohbet paneline gönderilir.
5. Kod önerisini uygulama — kod bloğundaki "Uygula" butonu
Bir yanıttaki kod bloğunun yanındaki "Uygula" butonuna basınca:
- Aktif bir editör yoksa net bir uyarı görürsünüz, hiçbir şey yazılmaz.
- Editörde seçili metin varsa onun yerine, yoksa imleç konumuna
eklenecek hali hesaplanır (henüz dosyaya yazılmadan).
- VS Code'un yerleşik diff görünümüyle "önce/sonra" gösterilir.
- Bir bildirimde açıkça onayınız istenir ("Uygula" / "Vazgeç").
- Sadece "Uygula"ya basarsanız değişiklik gerçek dosyaya yazılır
(
workspace.applyEdit). Onaylamadan hiçbir zaman otomatik yazma olmaz.
6. Görsel ekleme (backend henüz desteklemiyor)
Input kutusunun yanındaki 📎 butonuyla bir görsel seçebilir, veya
kutuya doğrudan bir görsel yapıştırabilirsiniz — küçük bir önizleme
görünür. Ancak: backend'in agent/complete hattı şu an görsel/vision
girdisi desteklemiyor (bu, server/index.js'teki tamamen ayrı bir
/api/upload + Ollama vision pipeline'ı — sohbet mesajlarıyla aynı
sözleşmeyi paylaşmıyor). Bu yüzden önizlemenin altında açık bir uyarı
gösterilir ve mesajı gönderdiğinizde görsel yok sayılır, sadece
yazdığınız metin gider — sahte bir "gönderildi" görüntüsü verilmez.
7. Sohbet geçmişi
Sohbetiniz workspace'e özel olarak saklanır (farklı projelerde ayrı
geçmişler tutulur — bkz. src/chatHistoryStore.ts'teki gerekçe).
"Yeni sohbet" butonu mevcut sohbeti geçmişe kaydedip sıfırdan başlar;
🕘 butonu geçmiş sohbetlerinizi (en son güncellenen üstte) bir liste
olarak açar, birine tıklayınca o sohbet panelde geri yüklenir.
8. Durum çubuğu
VS Code'un durum çubuğunda (altta) "FisherSelim: <plan adınız>"
görünür (giriş yapılmamışsa "giriş yapılmadı" — tıklayınca giriş akışını
başlatır). Giriş yapılmışken tıklayınca plan adınızı, kalan kredinizi ve
aylık hakkınızı gösteren bir bildirim açılır (Komut Paleti'nden
"FisherSelim: Show Balance" ile de çalıştırılabilir) — CLI'nin
fisherselim balance komutuyla aynı GET /api/agent/balance
mantığını kullanır.
Ayarlar
VS Code Ayarları'nda FisherSelim AI başlığı altında:
fisherselim.baseUrl — API sunucu adresi (varsayılan: https://ai.fisherselim.com).
fisherselim.model — sohbet panelinde henüz bir model seçmediğinizde
kullanılacak varsayılan model (varsayılan: ollama-free; seçenekler:
ollama-free, llama-fast, ds-flash, lufer, deepseek, gpt5,
claude, gemini, claude-opus). Panelin üstündeki açılır menüden
seçtiğiniz model bunu geçersiz kılar ve ayrıca hatırlanır (kişisel
tercihiniz olarak, tüm workspace'ler arasında geçerli).
Geliştirme
cd vscode-extension
npm install
npm run typecheck
npm run build # dist/extension.js (esbuild)
npm run package # dist + vsce package -> .vsix
F5 ile ("Run Extension") VS Code'da bir "Extension Development Host"
penceresi açıp canlı test edebilirsiniz — bkz. .vscode/launch.json.
Daha fazla ayrıntı için ../packages/fisherselim-client/README.md ve
repo kökündeki CONTRIBUTING.md.
Bundle boyutu (Faz 6 — markdown/highlight)
dist/webview.js, markdown render (marked) + syntax highlighting
(highlight.js/lib/core + 19 dil) + tüm panel mantığını içerir:
production (minified) derlemede ~150 KB (~48 KB gzip). Bu, shiki
(TextMate grammar + WASM oniguruma tabanlı, tipik olarak 1-3 MB+) yerine
highlight.js seçilmesinin doğrudan sonucu — bkz. Faz 6 PR açıklaması.
Marketplace durumu
Bu eklenti Marketplace'te
yayında. Yeni bir sürüm yayınlamak (vsce publish, Personal Access Token
gerektirir) elle yapılan, otomatikleştirilmemiş bir adımdır.