Queyntisen – Terminalde Yapay Zeka ile Kod Yazmanın Yeni Yolu
Birkaç ay önce sıfırdan bir terminal editörü yazdım. Adı Queyntisen. Python ile yazılmış, Vim’den esinlenmiş ama onu farklı kılan bir şey var: Büyük Dil Modelleri (LLM) ile doğal entegrasyon.
Düşünsene — kod yazıyorsun, bir yerde takıldın. Editörden çıkmadan, dosyanın tamamını modele gönderip düzeltilmiş halini anında alabiliyorsun. Queyntisen tam olarak bunu yapıyor.
Neden Kendi Editörünü Yazdın?
Aslında ihtiyaçtan doğdu. Vim kullanıyorum, VS Code kullanıyorum. Ama ikisi arasında gidip gelmek, hele ki AI asistanı için ayrı bir pencereyle uğraşmak can sıkıcıydı. “Keşke editörün içinde, bir tuşla modele sorabilsem ve cevabı yine editörde görebilsem” dedim. Sonra da oturup yazdım.
Özellikler
Modal Düzenleme (Vim Ruhu)
Normal modda gezinme ve komutlar, Insert modda yazma. Vim’den alışkın olduğun neredeyse her şey var:
hjklile gezinme (ok tuşları da çalışıyor)ddile satır sil/kesyyile satır kopyala (yank)pile yapıştıruveyaCtrl+Zile geri al — tam bir history stack ile/ile arama,n/bile sonraki/önceki eşleşme (dosya sonuna gelince başa sarar)
Bölünmüş Panel: Kod + AI Sohbet
Ctrl+W ile kod paneli ve AI sohbet paneli arasında geçiş yapıyorsun. Ekranın %70’i kod, %30’u sohbet. Sağ panele sorunu yaz, Enter’a bas — AI cevabı yapıştırsın.
AI Entegrasyonu Nasıl Çalışıyor?
İşin güzel yanı: AI işlemi arka planda çalışıyor. Editör donmuyor, sen yazmaya devam edebiliyorsun. Sistem şöyle işliyor:
- Chat paneline isteğini yazıyorsun (“Bu fonksiyonu async yap”, “Hata ayıklama ekle”, vs.)
- Dosyanın mevcut içeriği otomatik olarak modele bağlam (context) olarak gönderiliyor
- Model sadece kodu üretiyor (açıklama yok, markdown yok — sistem prompt’u öyle ayarladım)
- Dönen kod direkt editör buffer’ına uygulanıyor
Hem yerel modellerle (LM Studio, Ollama) hem de OpenAI API ile çalışıyor. Başlangıçta hangi modelin bağlı olduğunu otomatik algılıyor.
Konfigürasyon dosyası yok, sadece editor.py‘nin üstündeki iki değişken:
1
2
3
4
5
6
7
# Yerel LLM için (varsayılan)
API_KEY = "lm-studio"
BASE_URL = "http://localhost:1234/v1"
# OpenAI API için
API_KEY = os.getenv("OPENAI_API_KEY")
BASE_URL = "https://api.openai.com/v1"
Syntax Highlighting
Python anahtar kelimeleri mavi, string’ler sarı, yorum satırları yeşil, sayılar magenta. Sade, göz yormayan bir renk paleti.
Satır Numaralandırma
Vim kullanıcıları bilir — üç mod var:
:numara goreli— imlece olan uzaklığı gösterir (Vim’inrelativenumber):numara normal— gerçek satır numaraları:numara yok— numaraları kapat
Mouse Desteği
Fareyle tıklayıp imleci istediğin yere taşıyabiliyorsun. Satır sonuna clamping, margin hesaplaması — hepsi düşünüldü.
Akıllı Backspace ve Tab
Tab tuşu 4 boşluk ekliyor. Backspace ile silerken, eğer imlecin solunda tam 4 boşluk varsa hepsini birden siliyor. Küçük ama yazarken fark eden bir detay.
Kurulum
Tek komutla:
1
2
3
4
git clone https://github.com/fMert/Queyntisen.git
cd Queyntisen
chmod +x install.sh
./install.sh
Script senin için venv oluşturuyor, openai kütüphanesini yüklüyor, queyntisen komutunu PATH’e ekliyor. Shell’in .bashrc, .zshrc veya .profile dosyasına otomatik PATH ayarını yapıyor. Terminali kapat-aç, queyntisen dosya.py yaz, çalış.
Gereksinimler: Python 3.8+ ve openai kütüphanesi. O kadar.
Neler Eksik?
Bu bir “tamamlanmış ürün” değil. Deneysel bir proje. Şu an eksik olanlar:
- Görsel mod (Visual mode) — seçim yapıp toplu işlem
- Çoklu dosya desteği (buffer switching / tabs)
- Dil bilgisi farkındalığı olmayan renklendirme (şu an sadece regex bazlı)
- Sadece Python anahtar kelimelerini highlight’lıyor
- Chat geçmişi kaydedilmiyor
Ama çalışıyor. İş görüyor. Ben birkaç aydır kendi küçük script’lerim için kullanıyorum.
Neden “Queyntisen”?
Orta İngilizce (Middle English) bir kelime: queyntisen. Anlamı “süslenmek, güzel kıyafetlerle donanmak” (to dress up; to adorn with fine clothing). Etimolojisi: queyntise (“beceri, incelik, zarafet”) + -en (mastar eki).
Bir editörün kodunu “süslemesi”, AI ile daha yetkin hale getirmesi — isim tam oturuyor aslında. Kulağa hoş gelen, benzersiz bir kelime olması da bonus.
Kaynak Kodu
Proje GitHub’da açık kaynak, GPL v3 lisanslı. Tek dosya: editor.py (~870 satır). İncelemek, fork’lamak, katkı yapmak serbest.
