14 puan yazan GN⁺ 2025-07-02 | 2 yorum | WhatsApp'ta paylaş
  • Spegel, HTML web sayfalarını LLM istemlerine dönüştürerek bunları terminalde Markdown biçiminde gösteren bir tarayıcıdır
  • Kullanıcı istemine dayanarak sayfayı gerçek zamanlı olarak kişiselleştirilmiş şekilde dönüştürebilir; böylece yalnızca önemli bilgileri kısa ve öz gösterecek şekilde ayarlanabilir
  • Temel çalışma mantığı HTML tarama → LLM istem işleme → Markdown dönüşümü ve çıktı şeklindedir
  • Textual tabanlı TUI ile sezgisel ve hafif bir terminal arayüzü sunar; görünüm ve istemler yapılandırma dosyasıyla kolayca yönetilebilir ve anlık olarak değiştirilebilir
  • Lynx, Links2, Browsh gibi mevcut terminal tarayıcılarından farklı olarak LLM kullanan kullanıcıya özel içerik optimizasyonuna odaklanır
  • pip install spegel ile kolayca kurulabilir; açık kaynaklıdır ve çeşitli deneyler ile genişletmeler için uygundur

Proje genel bakışı ve özellikler

  • Spegel, terminalde çalışan bir tür web tarayıcısıdır; HTML'yi LLM'e ileterek kullanıcı tanımlı istemlerle sayfayı yeniden yapılandırır
  • Çıktı Markdown'a dönüştürülür ve Textual tabanlı terminal arayüzünde sezgisel biçimde gösterilir
  • JS desteklemez ve yalnızca GET isteklerini işleyen minimalist bir tasarıma sahiptir
  • LLM istem özelleştirmesiyle çeşitli dönüşüm görünümlerini destekler (ör. tarif özeti, temel aksiyonların vurgulanması)

Kişiselleştirme ve kullanım örnekleri

  • İstemler ve görünümler kullanıcı ayarlarıyla (~/.spegel.toml) serbestçe yönetilebilir
  • Örnekler:
    • Bir tariften yalnızca malzemeleri ve temel adımları çıkarma
    • Karmaşık açıklamaları ELI5 tarzında basitçe dönüştürme
    • Gerekirse birden fazla görünümü aynı anda kaydedip hızla geçiş yapabilme

Çalışma şekli

  • Spegel, HTML'yi alır ve yapılandırma dosyasındaki istemle birlikte LLM'e gönderir
  • LLM sonucunu Markdown'a dönüştürür ve Textual aracılığıyla terminalde render eder
  • İstemler ve görünümler gezinme sırasında bile gerçek zamanlı olarak ayarlanabilir
  • Sonuçları satır satır akıtır; Markdown biçimlendirme hatalarını önlemek için tamponlama uygulanır

Mevcut terminal tarayıcılarından farkı

  • Lynx, Links2, Browsh gibi araçlar yalnızca HTML yapısını terminalde gösterir
  • Spegel ise LLM tabanlı dönüşümle gereksiz bilgileri kaldırıp optimize edilmiş görünümler sunmaya odaklanır
  • Modern web siteleri CSS ve JS'ye yüksek derecede bağımlı olduğu için terminal ortamında karmaşık görünür; Spegel yalnızca temel içeriği çıkararak odaklanmayı ve erişilebilirliği iyileştirir

Kurulum ve kullanım

  • pip ile kolay kurulum:
    pip install spegel
  • Çalıştırma:
    spegel <URL>
  • Yapılandırma dosyasının (~/.spegel.toml) özelleştirilmesi gerekir; örnekler için GitHub'a bakılabilir
  • Kaynak kodu ve katkı: https://github.com/simedw/spegel

Notlar

  • Henüz Proof-of-Concept aşamasında olduğu için bazı tamamlanmamış özellikler ve pürüzler bulunuyor
  • POST istekleri desteklenmez; form girişi gibi konular için gelecekte genişletme fikirleri düşünülüyor
  • Mevcut terminal tarayıcılarının doğrudan alternatifi olmaktan ziyade, LLM+TUI tabanlı içerik kişiselleştirmesini araştıran deneysel bir çalışma niteliği taşıyor

2 yorum

 
GN⁺ 2025-07-02
Hacker News görüşleri
  • Bence bu teknoloji gerçekten ilgi çekici bir fikir; tarayıcının yerini tamamen almaz ama deterministik aramayı promptlarla birleştirerek web’de gezinmenin bambaşka bir yolunu ortaya çıkarabilir. Komut satırı aracı olarak sunulursa daha da uygun olur gibi geliyor.

    • Bir sonraki adım olarak birden fazla "sekme"yi aynı anda ele alma özelliğini hayal ediyorum; örneğin sekme 1'de Haber A’nın haberi, sekme 2'de Haber B, sekme 3'te Wikipedia olur ve bu kaynaklar özetlenip referans bağlantıları üretilir. Ama böyle bir iş akışını destekleyecek kadar kararlı bir model gerçekten var mı, emin değilim; en güncel SOTA modellerin bile sınırları varmış gibi geliyor.

    • Yukarıdaki gibi, birden fazla mecranın haberini tek bakışta gösterip özet ve referans sunma işi aslında Ground News'ün yaptığı şey gibi geliyor. Kendileriyle bir bağlantım yok; sadece bir Kurzgesagt videosunda sponsor olarak anıldıklarını gördüm. Elbette arayüz tarafında belirgin farklar olabilir.

    • Ben aynı anda birden fazla sekme/görünüm gösterilecekse bile bunu aynı kaynak içinde yapmayı düşünürdüm; örneğin bir sekmede CLI için optimize edilmiş özgün sunum, diğerinde yalnızca fact-checking'e odaklanan bir görünüm (Google, Brave ile içerik dayanağı arama) gibi. Böyle deneyler çok eğlenceli olurdu.

    • Buna, LLM tabanlı SEO spam’inin var gücüyle üretilip başka bir LLM’in bunu kabaca özetleyip geri kusması şeklinde de bakabilirsiniz. Ne muhteşem bir gelecek gerçekten.

  • Ünlü tarif sitelerinden sadece tarifi çıkarma örneğinin en başta gelmesi bana gerçekten klasik bir sahne gibi geldi. Şahsen böyle bir projeyi hemen tavsiye etmek isterdim; çok zekice bir proje hissi veriyor.

    • Yine bir LLM modası örneği; zaten var olan bir şeyi yeniden yorumlayıp çok daha kötü ve deterministik olmayan hale getirmiş gibi görüyorum. schema.org/Recipe gibi standart yapılar zaten vardı.

    • Tarif çıkarma sürecinde içeriklerin, malzemelerin ya da miktarların rastgele değişebilmesi ilginç. Bence LLM’in karakteri bu küçük evrende çok iyi ortaya çıkıyor; ama çoğu yorumun umut ettiği yönden tamamen farklı bir şekilde.

    • Zaten LLM olmadan, deterministik yöntemle sadece tarifleri çıkaran uzantılar var. Örneğin Chrome’daki Recipe Filter uzantısı, sayfada bir tarif tanırsa bunu açılır pencerede gösteriyor.

  • LLM’in araya girip son dönemde Google’daki SEO optimize içerik yazımı trendini ve SEO yapısının kendisini baypas etmesi hoşuma gidiyor. Gereksiz her şeyi atıp yalnızca tarifi ayıklamak, bence LLM’lere gerçekten çok uygun bir kullanım örneği. İleride LLM’i filtre olarak daha agresif kullanan örnekler göreceğimizi tahmin ediyorum. Tabii HTML’den tarifi doğrudan çıkarabilmek güzel olurdu ama SEO savaşı o kadar sertleşti ki pratikte bu artık imkânsız hale geldi.

    • LLM’in tüm gereksiz öğeleri temizlemek için kullanılmasından söz ediliyor ama LLM’in tarifi öngörülemez biçimde değiştirebileceğini de düşünmek gerek. Hatanın kabul edilemeyeceği ortamlarda böyle olasılıksal yazılımlara güvenilmesini anlamıyorum.

    • Böyle bir geleceği yıllardır bekliyordum. Zaten arama entegre LLM araçları var ve birden fazla aramayı zincirleyip işleme yeteneği gerçekten güçlü. Ama Spegel tamamen farklı bir yaklaşım. Geleceğin reklam engelleyicisinin küçük ve verimli yerel bir LLM olacağını düşünüyorum; örneğin zaman akışını kronolojik sıralama, UI değiştirme, yalnızca belirli öğeleri gösterme gibi çeşitli dönüşümler mümkün olabilir. Düşük kaliteli yorumları otomatik gizlemek gibi şeylerin hepsi, LLM arada proxy ya da ajan gibi çalıştığında yapılabilir. Bu eğilimin reklamverenleri epey rahatsız edeceğini tahmin ediyorum.

    • Web’de gezinme sırasında LLM’in dakikada milyonlarca token işlemek zorunda kalabileceğini, dolayısıyla hesaplama maliyetinin çok yüksek olabileceğini de hesaba katmak gerekir.

    • LLM gereksiz şeyler üretiyor, sonra başka bir LLM yine o gereksiz şeyleri temizliyor; sanki taraflar birbirini hiç yanlış anlamadan işleyen döngüsel bir yapı gibi.

  • Daha az karmaşık bir modelle, hatta belki LSTM tabanlı bir yaklaşımla bile, DOM’u tarayıp gerekli kısımları seçerek doğrudan tarayıcıda gösterilecek veri yapısına toplamak mümkün olabilir diye düşünüyorum. Hatta yazarın mevcut LLM tabanlı araç zinciriyle eğitim verisi üretmek de kolay olabilir gibi geliyor.

    • Ama içeriğin JS ile geç render edildiği modern web’de yalnızca DOM dolaşmak yetersiz kalır. JS tamamen yüklenip tüm istekler bitmeden gerekli veriyi alamazsınız; bu durumda zaten fiilen bir tarayıcı renderer’ı çalıştırmış olursunuz.
  • Görünüşe göre pek çok kişi HTML’nin sadece başlangıç olduğunu gözden kaçırıyor. Bir web sayfasını farklı bir bakışa/görünüme dönüştürebiliyorsanız, aslında modelin kabul ettiği her türlü girdiyi dönüştürebilirsiniz. PDF, içinde görseller olan zip dosyası, devasa bir JSON; hepsi birer görünüm haline getirilebilir. Sonuçta önemli olan HTML girdisi değil, çıktıdaki görünüm.

  • spegel için -p seçeneği ekleme önerisi:

    spegel -p "extract only the product reviews" > REVIEWS.md
    

    gibi, prompt tabanlı olarak yalnızca istenen bilgiyi çıkaran bir özellik.

  • Her sayfayı her seferinde yeniden yazmak yerine, tek bir ziyarette Markdown’a çevirip bu temiz sürümleri birbirimizle paylaşsak hesaplama yükünü azaltabiliriz diye düşünüyorum.

    • Her kullanıcının ihtiyaçları ve ön bilgisi farklı olduğu için, ne kadar temiz ortak içerik üretilirse üretilsin sonunda kişiye özel düzenleme süreci kalacaktır diye düşünüyorum. Yine de P2P cache (IPFS vb.) gibi küresel yinelenen önbellekler veri koruma, erişilebilirlik ve kaynak tasarrufu açısından faydalı olabilir.

    • Cache header’ları, sunucunun istemciye bilgiyi ne kadar süre cache’leyebileceğini bildirmek için kullanılır. İstemci tarafına da bu header’lara uyan bir cache katmanı eklemek iyi olabilir diye düşünüyorum.

    • Amaç tutarlı bir yerleşimse, son sayfanın Markdown çıktısını örnek olarak modelle birlikte vermek de (one-shot example) işe yarayabilir.

    • Bu proje zaten "kişiselleştirilmiş, prompt tabanlı görünüm" amacına sahip olduğu için, en azından varsayılan prompt’un çıktısını cache’leyip kullanmak mantıklı olabilir.

  • Bunun gerçekten harika bir POC olduğunu düşündüm ve benim sık kullandığım "reader view" Chrome uzantısına oldukça benziyor.
    reader view uzantı bağlantısı

  • Fikir çok havalı ve erişilebilirlik açısından da büyük potansiyel taşıyor diye düşünüyorum.

    • Ama yine de LLM’ler deterministik değil; oysa erişilebilirlik her şeyden önce güvenilirlik ve öngörülebilirlik gerektiren bir alan, sorun da burada.
  • Emekliye ayırdığım AI ajanımın web sayfalarını gerçek zamanlı dönüştürdüğünü gösteren eski bir videom var.
    HN'yi My Little Pony'ye dönüştüren demo (video)
    Sonucu yaklaşık 37. saniyeden itibaren görebilirsiniz.
    Merak ederseniz açık kaynak Chrome uzantısını da yapmıştım: ChromeGPT

 
laeyoung 2025-07-04

spegel -p "yalnızca ürün incelemelerini çıkar" > REVIEWS.md

Sadece bu seçenek bile olsa aklıma türlü türlü kullanım geliyor, ama sanırım şimdilik yok.