Web kazıma, test otomasyonu ve yapay zeka ajanları için sunucuda tarayıcı koşturmak standart bir ihtiyaç. Standart çözüm de belli: headless Chrome. Chrome yüzlerce sekme açtığınızda sunucuyu ciddi yoruyor; RAM ve CPU maliyeti hızla büyüyor. Lightpanda tam bu noktada duruyor: Chromium fork'u değil, Zig ile sıfırdan yazılmış, AI ve otomasyon odaklı yeni bir headless tarayıcı.
Lightpanda Browser Nedir?
Lightpanda, yapay zeka ajanları ve otomasyon için tasarlanmış açık kaynak bir headless tarayıcı. Chromium tabanlı değil, Blink veya WebKit üzerine bir yama da değil. Zig diliyle sıfırdan yazılmış. İçindeki bileşenler tanıdık: HTML ayrıştırma için Servo projesinden html5ever, JavaScript için V8, HTTP için libcurl. Grafiksel render motoru yok; kaynaklar tamamen sayfa yükleme ve DOM işlemlerine kalıyor.
Kaynak kodu GitHub'da, lisans AGPL-3.0. Proje beta aşamasında; birçok site çalışıyor ama hatayla ya da crash ile karşılaşabilirsiniz. Web API kapsamı sürekli genişliyor ve resmi Web Platform Tests koşusu her gün yayınlanıyor.
Rakamlarla Performans
Lightpanda ekibi, AWS EC2 m5.large üzerinde 933 gerçek web sayfasını ağ üzerinden isteyerek Headless Chrome ile kıyaslamış. Sonuçlar iddialı:
- Bellek (100 sayfa, tepe kullanım): 123 MB'a karşı 2 GB. Yaklaşık 16 kat fark.
- Çalışma süresi (100 sayfa): 5 saniyeye karşı 46 saniye. Yaklaşık 9 kat fark.
Bu Lightpanda'nın kendi benchmark'ı; detaylar repoda. Senaryonuza göre sonuç değişir ama tablo fikir veriyor: instance sayısı arttıkça Chrome'un maliyeti katlanıyor, Lightpanda'nınki yerinde sayıyor.
Kurulum ve Kullanım
Kurulumun en pratik yolu Docker. CDP sunucusu 9222 portunda ayağa kalkıyor:
docker run -d --name lightpanda -p 127.0.0.1:9222:9222 lightpanda/browser:nightlyTek bir sayfayı çekmek için CDP sunucusuna bile gerek yok. fetch komutu tek seferde çalışıyor; çıktıyı html, markdown, png ya da pdf olarak alabiliyorsunuz:
./lightpanda fetch --obey-robots --dump html https://demo-browser.lightpanda.io/campfire-commerce/Sayfanın hazır olmasını bekletmek için --wait-selector, --wait-ms ve --wait-script seçenekleri var. robots.txt kuralına uymak için --obey-robots.
Asıl önemli taraf CDP desteği. Puppeteer veya Playwright betiğinizde yalnızca bağlantı adresini değiştiriyorsunuz, gerisi aynı:
import puppeteer from 'puppeteer-core';
const browser = await puppeteer.connect({
browserWSEndpoint: "ws://127.0.0.1:9222",
});
const page = await browser.newPage();
await page.goto('https://demo-browser.lightpanda.io/amiibo/', {
waitUntil: "networkidle0",
});Homebrew ve AUR paketleri de mevcut. Windows için native binary yok; WSL2 üzerinden çalıştırıyorsunuz. Alpine gibi musl tabanlı dağıtımlarda binary çalışmıyor, glibc tabanlı bir imaj seçmeniz gerekiyor.
Yapay Zeka Tarafı: Agent Mode ve MCP
lightpanda agent komutu tarayıcıyı doğal dille yönetiyor. Görevi yazıyorsunuz; ajan sayfayı geziyor, tıklıyor, formları doldurup yapılandırılmış veri çıkarıyor. Anthropic, OpenAI, Gemini, Mistral gibi sağlayıcılar ve Ollama ile yerel modeller destekleniyor. --no-llm ile LLM'siz bir REPL modu bile var.
Dikkat çeken detay, oturumların PandaScript'e dönüşmesi. Kaydettiğinizde elinize içinde tarayıcı primitive'leri gömülü vanilla JavaScript geçiyor. Bu betikler deterministik ve token tüketmiyor. Yani prototipi LLM ile yapıp üretimde model olmadan koşabiliyorsunuz.
MCP sunucusu gömülü: lightpanda mcp stdio üzerinden çalışıyor, lightpanda mcp --port 9223 ile HTTP üzerinden servis veriyor. HTTP modunda her bağlantı kendi oturumunu açıyor; kendi sayfası, kendi çerezleri. İki ajan aynı sayfada çalışmak isterse aynı oturum kimliğini paylaşıyor, yani ajanlar birbirinin sayfasını bozamıyor.
Yapılandırma tanıdık geliyor olmalı:
{
"mcpServers": {
"lightpanda": {
"command": "/path/to/lightpanda",
"args": ["mcp"]
}
}
}Küçük bir not: telemetry varsayılan olarak açık. LIGHTPANDA_DISABLE_TELEMETRY=true ile kapatabiliyorsunuz.
Rakiplerle Kıyas
Lightpanda boş bir alanda değil. Web otomasyonunun dört tanıdık ismiyle kıyaslamak en doğal başlangıç olur.
- Puppeteer (Headless Chrome): Standart çözüm. Web API kapsamında rakipsiz; her site, her framework çalışır. Bedeli kaynak: her instance yüzlerce MB RAM yer, ölçekle maliyet hızla büyür. Lightpanda aynı CDP arayüzünü konuşarak bu tabloyu hedefliyor. Uçtan uca uyumluluk şartsa Chrome hâlâ referans noktası.
- Playwright: Microsoft'un test framework'ü. Chromium, Firefox ve WebKit'i tek API altında topluyor. Auto-wait, codegen ve trace viewer gibi araçlarla geliştirici deneyimi güçlü. Ama altta yine tam bir tarayıcı koşuyor; kaynak profili hafif sayılmaz. CDP desteği sayesinde Lightpanda, Playwright betiklerinin de bağlanabildiği bir arka uç olabiliyor.
- Selenium: Sektörün en eski ismi, W3C WebDriver standardının temeli. Dil ve tarayıcı kapsamı en geniş seçenek. Bedeli hız; her işlem protokol üzerinden ağ çağrısına dönüşüyor. Kurumsal test grid'lerinde hâlâ güçlü ama kazıma ve ajan işleri için artık ilk tercih değil.
- Splash: Zyte (eski adıyla Scrapinghub) ürünü. Python, Twisted ve QT5 üzerine kurulu, HTTP API'li bir render servisi. Lua betikleriyle sayfa kontrolü sağlıyor; scrapy-splash köprüsüyle Scrapy dünyasına doğal bağlanıyor. Hafif render fikrinin eski temsilcisi. Temelindeki WebKit yaşlanıyor; Lightpanda aynı fikri modern bir motor ve CDP/MCP entegrasyonlarıyla güncelliyor.
Nerede Kullanmalı, Nerede Dikkat Etmeli?
Net kazanç alanı: yüksek hacimli kazıma, içerik çekme ve ajan destekli otomasyon. Paralel iş sayısı arttıkça avantaj büyüyor.
- Beta bir proje. Karşılaştığınız hata ve crash'leri issue olarak bildirmek gelişimi hızlandırıyor.
- Web API kapsamı henüz Chromium seviyesinde değil. Görsel doğrulama ve canvas ağırlıklı senaryolarda Chrome daha güvenli.
- Lisans AGPL-3.0. Kapalı kaynak bir ürüne gömmeyi düşünüyorsanız koşulları okuyun.
- Telemetry açık geliyor. Sunucu kurulumlarında kapatın.
Sonuç
Lightpanda, headless tarayıcı denince Chrome'a mahkûm olduğumuz varsayımını sorgulatan bir proje. Zig ile sıfırdan yazılmış bir motoru CDP üzerinden konuşturuyor, MCP ile ajanlara doğrudan bağlanıyor, PandaScript oturumları tekrarlanabilir betiklere çeviriyor. Beta olduğu için yarın ana test hattınızı taşımayacaksınız. Ama yeni bir kazıma pipeline'ı ya da ajan altyapısı kuruyorsanız denemeye değer. 123 MB bellek ve 100 sayfada 5 saniye rakamları, başlangıç için yeterli gerekçe.