14 puan yazan GN⁺ 2025-12-25 | 1 yorum | WhatsApp'ta paylaş
  • 21 yıl önce Selenium'u geliştiren Jason Huggins'in, yapay zeka ajanlarını göz önünde bulundurarak yeniden geliştirdiği açık kaynaklı bir tarayıcı otomasyon projesi
  • Vibium, yapay zeka ajanları için bir tarayıcı otomasyon altyapısı olarak, tek bir ikili dosyayla tarayıcı yaşam döngüsünü ve WebDriver BiDi protokolünü yönetir ve bir MCP sunucusu sunar
  • 10 MB boyutundaki tek Go ikili dosyası Clicker, Chrome'u otomatik olarak algılar ve çalıştırır; BiDi proxy'si ve MCP sunucusu üzerinden yapay zeka modellerinin veya JS istemcilerinin tarayıcıyı kontrol etmesini sağlar
  • JS/TS istemcisi, hem senkron hem asenkron API'leri destekler ve npm install vibium ile kurulduktan sonra hemen kullanılabilir
  • Claude Code gibi LLM ajanları, claude mcp add vibium komutuyla tek satırda tarayıcı kontrol yeteneği ekleyebilir
  • Hem yapay zeka otomasyonu hem de test otomasyonu için uygundur ve yapılandırma gerektirmeyen bir tarayıcı kontrol ortamı sunar

Vibium genel bakış

  • Vibium, yapay zeka ajanları ve insan kullanıcılar için bir tarayıcı otomasyon altyapısıdır
    • Tek bir Go ikili dosyasında tarayıcı yönetimi, WebDriver BiDi proxy'si ve MCP sunucusu işlevlerini birleştirir
    • Claude Code, Codex, Gemini gibi çeşitli LLM modelleriyle uyumludur
  • Kurulum süreci olmadan hemen çalışacak şekilde tasarlanmıştır; yapay zeka ajanlarında veya test otomasyonu ortamlarında kullanılabilir

Bileşenler

  • Clicker: Yaklaşık 10 MB boyutunda bir Go ikili dosyasıdır ve şu işlevleri yerine getirir
    • Chrome'u otomatik algılama ve BiDi modunda çalıştırma
    • Komutları ileten WebSocket tabanlı BiDi proxy sunucusu
    • MCP sunucusu üzerinden LLM ajanlarıyla iletişim
    • Öğe beklendikten sonra etkileşim kuran Auto-Wait özelliği
    • Ekran görüntüsü yakalama özelliği
  • JS/TS istemcisi: npm paketi olarak sunulur ve hem senkron (browserSync) hem de asenkron (browser) API'leri destekler
    • vibe.go(), vibe.find(), vibe.click(), vibe.quit() gibi basit komutlarla tarayıcı kontrolü
    • Ekran görüntüsü kaydetme, öğe bulma, tıklama gibi temel otomasyon işlevleri içerir

Yapay zeka ajanı entegrasyonu

  • Claude Code'a tarayıcı kontrol yeteneği ekleyen komut:
    claude mcp add vibium -- npx -y vibium  
    
    • Chrome otomatik olarak indirilir, ek yapılandırma gerekmez
  • Sunulan komut listesi
    • browser_launch: tarayıcıyı başlatma
    • browser_navigate: URL'ye gitme
    • browser_find: CSS seçiciyle öğe bulma
    • browser_click: öğeye tıklama
    • browser_type: metin girme
    • browser_screenshot: viewport yakalama
    • browser_quit: tarayıcıyı kapatma

İnsan kullanıcılar için kurulum

  • npm install vibium komutuyla otomatik kurulum
    • Platforma göre Clicker ikili dosyası, Chrome for Testing ve chromedriver önbelleğe indirilir
    • Linux: ~/.cache/vibium/, macOS: ~/Library/Caches/vibium/, Windows: %LOCALAPPDATA%\vibium\
  • Tarayıcı indirmesini atlamak için VIBIUM_SKIP_BROWSER_DOWNLOAD=1 ortam değişkeni kullanılabilir

Platform desteği

  • Linux x64, macOS (Intel/Apple Silicon) ve Windows x64 desteği

Hızlı başlangıç

  • Kütüphane kullanım örneği
    import { browser } from "vibium";  
    const vibe = await browser.launch();  
    await vibe.go("https://example.com");  
    const el = await vibe.find("a");  
    await el.click();  
    await vibe.quit();  
    
  • Claude Code entegrasyonu örneği
    • Kurulumdan sonra “Go to example.com and click the first link” gibi komutlarla tarayıcıyı kontrol edebilir

Yol haritası

  • V1: MCP ve JS istemcisi üzerinden tarayıcı kontrolüne odaklanır
  • V2 planı
    • Python ve Java istemcileri
    • Cortex (bellek ve gezinme katmanı)
    • Retina (kayıt uzantısı işlevi)
    • Video kaydı, yapay zeka tabanlı öğe bulma özelliği

1 yorum

 
GN⁺ 2025-12-25
Hacker News yorumları
  • Selenium sayesinde kariyerimde büyük bir değişim yaşadım. İçtenlikle teşekkür ederim
    Bu günlerde Playwright kullanıyorum ama Vibium'un yeni yaklaşımını merak ediyorum

    • Playwright, WebSockets+JSON tabanlı hızlı tarayıcı kontrolüyle büyük ilerleme sağladı. Vibium ise bunun karşılığı olan W3C WebDriver BiDi standardını kullanıyor. Amaç, Playwright gibi “birkaç tıklamayla halloluyor” dedirten harika bir geliştirici deneyimi sunmak
    • Zaten Playwright kullanıyorsanız Stagehand'i denemenizi öneririm. API benzer, ancak test için değil otomasyon için tasarlanmış
  • Vibium'un JS enjeksiyonu, DOM değiştirme, ağ isteklerini izleme ve değiştirmeyi destekleyip desteklemediğini merak ediyorum. Playwright kullanırken bu özellikleri neredeyse her zaman kullanıyorum

    • Henüz desteklenmiyor ama yol haritasında var. Hedef, Playwright'ın güçlü yanlarını alıp onların da ötesine geçmek
    • Kişisel olarak benim için sadece ağ isteği izleme bile yeterli olur. Flutter + Amazon AppSync uygulamalarında debug etmek aşırı zor
  • İlginç. Yakın zamanda dev-browser kullanarak bağlam tasarrufu ve hız artışı elde ediyordum. Vibium'u da kesinlikle deneyeceğim

    • Vibium'da da bu tür skill tabanlı genişletilebilirliği desteklemeyi planlıyoruz
  • 10 yılı aşkın süredir UI otomasyonuyla geçimini sağlayan biri olarak Selenium'a minnettarım. Şu anda Playwright fiili standart ama Selenium özgün tarayıcı sürücüsüydü. Vibium'un Playwright'tan farkı ne, merak ediyorum

    • Playwright “hız” konusunda önde ama Selenium hâlâ dünya çapında derin kök salmış bir ekosisteme sahip. Vibium, Selenium kullanıcılarının doğal biçimde geleceğin ajan odaklı kodlamasına geçebilmesi için bir köprü kurmayı planlıyor
  • Eskiden Selenium ile Atlassian'ın test genişlemesine yardımcı olan biriyim. Yaklaşık 13-15 yıl önce konuştuğumuzu hatırlıyorum. Bu alanda hâlâ aktif olman sevindirici

  • Eski Selenium script'lerini Vibium'a taşırsam, test başarısız olduğunda kendi kendini onarma (self-heal) özelliğinden yararlanabilir miyim diye merak ediyorum

    • Benzetme yaparsam, şu anda bir ada tatil köyü inşa ediyorum. Köprü (göç yolu) daha sonra yapılacak. Önce tatil köyü cazip olursa köprü kurmak için sebep doğar. Şimdilik odağım tatil köyünü inşa etmek ama köprüyü de kesinlikle yapmak istiyorum
  • Ajan browser_screenshot ile ekran görüntüsü aldıktan sonra tıklama yapacaksa, CSS selector'ü nasıl bulduğunu merak ediyorum. Sadece ekran görüntüsüyle öğe türünü anlamak zor

    • Şu anki MCP sunucusunda tam otonom keşif yeteneği eksik. Ben kendi fork'umda browser_evaluate aracını ekleyip JS ile erişilebilirlik ağacını almayı ve bunun üzerinden gezinmeyi sağladım. Ayrıntılar için V2 yol haritasına bakabilirsiniz
  • Claude gibi araçların tarayıcı otomasyonunu serbestçe kullanabilmesi için yalnızca belirli URL'lere izin veren bir tarayıcı kilitleme özelliği gerekiyor. Bunun yol haritasında olup olmadığını merak ediyorum

    • Claude Code kullanıyorsanız browser_navigate hook'u ile bunu kolayca kontrol edebilirsiniz. Whitelist için bir script'i 5 dakikada kurabilirsiniz. Daha karmaşık politikalar cupcake ve Rego ile uygulanabilir. Referans: Claude Code Hooks dokümanı
    • Claude'un “blast radius” riskinin gayet farkındayım. Ben de Vibium geliştirmesini UTM VM içinde yapıyorum. Ağ kuralları eklemeyi de düşünüyorum. V2 yol haritasını zaten yayınladım, sanırım V3 taslağını da hazırlamam gerekecek
    • En güvenilir yöntem, güvenlik duvarı olan bir container içinde yalnızca kısa bir whitelist'e izin vermek
  • Skyvern'e benzer bir şey yapmayı düşünüyordum ama neden Selenium uzantısı yerine yeni bir Vibium yaptığınızı merak ediyorum

    • Bunu kısmen Vibium v1 duyurusunda açıkladım. Selenium ya da Playwright AI merkezli tasarlanmamıştı. Vibium ise baştan itibaren AI tabanlı “vibe coding” için optimize edilmiş bir mimariyle tasarlandı
  • Tarayıcı ile LLM arasındaki bağlam şişmesi (context bloat) sorununu nasıl ele aldığınızı merak ediyorum. Playwright gibi tracing dosyalarını açığa çıkarma ya da JS çalıştırmaya izin verme planınız var mı diye de sorulmuş

    • Tarayıcıya maruziyeti kademeli olarak artıracağız. Bağlam şişmesi henüz hiçbir yerde tam çözülmüş değil. Uzun vadede cevap “MCP kullanmamak” bile olabilir. Şu anda Vibium hem MCP sunucusu hem de JS/TS API sunuyor. JS/TS API tarafında rastgele JS çalıştırmak mümkün. Ajanın Vibium script'leri yazıp çalıştırması, bağlam şişmesini azaltan bir geçici çözüm olabilir