12 puan yazan GN⁺ 2026-01-14 | 1 yorum | WhatsApp'ta paylaş
  • Yapay zeka kodlama ajanlarını tam sistem yetkileriyle çalıştırırken, kullanıcının ana dizinine zarar verme riskini engelleyen bir araç
  • Claude Code, Codex, Gemini CLI, OpenCode gibi başlıca yapay zeka CLI’leri önceden yapılandırılmış olarak “YOLO modu” ile çalıştırılabilir
  • Yalnızca proje dizinini Docker veya Podman konteyneri içine mount eder, ana dizini ise varsayılan olarak hariç tutar
  • Konteyner içinde sudo yetkisi ve kalıcı volume sağlayarak araçların ve ayarların oturumlar arasında korunmasını sağlar
  • Geliştiricilerin yapay zeka otomasyon özelliklerini güvenle deneyebileceği izole bir sandbox ortamı sunar

Genel Bakış

  • Yolobox, yapay zeka kodlama ajanlarını konteyner içinde çalıştırarak sistemi korurken tam çalıştırma yetkisi veren bir araçtır
    • Yapay zeka komut yürütürken yanlışlıkla rm -rf ~ gibi yıkıcı komutlar çalıştırsa bile ana dizin etkilenmez
    • Proje dizini /workspace olarak mount edilir, ana dizin ise varsayılan olarak mount edilmez
    • Kalıcı volume sayesinde araçlar ve ayarlar oturumlar arasında korunur

Başlıca Bileşenler ve Özellikler

  • Konteyner içinde yapay zeka ajanı sudo yetkisine sahiptir ve komutları serbestçe çalıştırabilir
  • Varsayılan image şunları içerir
    • AI CLI: Claude Code, Gemini CLI, OpenAI Codex, OpenCode (hepsi otomatik çalıştırma moduna ayarlı)
    • Geliştirme ortamı: Node.js 22, Python 3, make, cmake, gcc, Git, GitHub CLI
    • Yardımcı araçlar: ripgrep, fd, fzf, jq, vim
  • Gerekirse kullanıcı sudo ile ek paketleri doğrudan kurabilir

Çalıştırma ve Komutlar

  • yolobox komutuyla sandbox shell’e girilir
  • yolobox run ile tek bir komut çalıştırılabilir
  • yolobox upgrade, yolobox config, yolobox reset --force, yolobox version gibi yönetim komutları sunulur
  • Başlıca flag’ler
    • --runtime: docker veya podman seçimi
    • --no-network: ağı devre dışı bırakır
    • --readonly-project: projeyi salt okunur olarak mount eder
    • --claude-config: host üzerindeki Claude ayarlarını konteynere kopyalar

Güvenlik Modeli

  • Güvenlik sınırı olarak konteyner izolasyonu kullanılır
    • Konteyner, Linux namespace’leri üzerinden dosya sistemi, süreçler ve ağı ayırır
    • Yapay zeka konteyner içinde root yetkisine sahip olsa da dış sistemlere erişemez
  • Korunan varlıklar
    • Ana dizin, SSH anahtarları, kimlik bilgileri, dotfile’lar, diğer projeler, host sistem dosyaları
  • Korunmayanlar
    • Proje dizini (varsayılan olarak okuma/yazma açık)
    • Ağ erişimi (isteğe bağlı olarak engellenebilir)
    • Kernel açıkları veya konteynerden kaçış saldırıları

Güvenliği Güçlendirme Adımları

  • Temel mod: standart konteyner izolasyonu
  • 2. seviye: --no-network --readonly-project seçenekleriyle saldırı yüzeyini küçültme
  • 3. seviye: host root yetkisini kaldırmak için Rootless Podman kullanımı
    • Konteynerdeki root, hosttaki normal kullanıcıya eşlenir; böylece kaçış durumunda zarar en aza iner
  • 4. seviye: VM içinde çalıştırma ile kernel paylaşımını kaldırma
    • macOS’te UTM, Parallels, Lima; Linux’ta Podman machine veya özel bir VM kullanılabilir

Ağ İzolasyonu

  • Rootless Podman varsayılan olarak slirp4netns ağı kullanır ve host ağıyla ayrıdır
  • allow_host_loopback=false ayarıyla yerel ağa erişim engellenebilir

Lisans ve Diğer Bilgiler

  • MIT lisansı ile yayımlanır
  • Depo dil dağılımı: Go %75.9, Dockerfile %13.6, Shell %8.7, Makefile %1.8
  • ‘Yolobox’ adı, “YOLO (You Only Live Once)” anlayışından gelir ve yapay zekayı özgürce çalıştırırken güvenli şekilde izole edilmiş bir ortam anlamını taşır

1 yorum

 
GN⁺ 2026-01-14
Hacker News yorumları
  • Kısa süre önce Litterbox adında benzer bir proje yaptım (demo sitesi)
    Sadece Linux için, çünkü Podman'a dayanıyor. Bunun yerine benim kullanımım için bazı avantajları var

    • Wayland soketini açığa çıkararak editör gibi tüm geliştirme ortamını konteyner içinde çalıştırabiliyor. Bu sayede editör eklentisi açıklarına karşı koruma sağlanıyor
    • Her imzalama işleminde kullanıcıdan onay isteyen özel bir SSH ajanı sunuyor. Böylece kötü amaçlı yazılım GitHub erişim yetkisini gizlice kullanamıyor
    • Yalnızca belirli durumlarda gereken izinleri (TUN/TAP aygıtı oluşturma gibi) kolayca etkinleştirme özelliği de var
    • Şu an yok ama SELinux entegrasyonu hazırlanıyor
  • Ben de benzer bir şeyi deniyordum.
    README'de nasıl çalıştığını ve güven sınırlarını (Docker konteyneri tabanlı) net şekilde açıklamak iyi olur. Çekirdek açıkları istismar edilebileceği için konteynerden kaçış riski hâlâ var
    Ağ erişimini en aza indirmek için Rootless Podman ve slirp4netns kullanıyorum.
    Sonraki adım olarak çekirdeği tamamen ayırmak için Podman machine kullanmak istiyorum ama volume mount düzgün çalışmıyor

    • Geri bildirim için teşekkürler. README'yi genişlettim → commit linki
  • agents.md ya da claude.md içine Asimov'un 3 yasasını koymayı öneriyorum

    1. Programa zarar vermeyecek ya da onu ihmal etmeyecek
      1. yasayla çelişmediği sürece komutlara uyacak
      1. ve 2. yasalarla çelişmediği sürece güvenliği koruyacak
    • Orijinal eserde bu yasalar hemen bozulur; amaç insan toplumunun karmaşıklığını göstermekti
    • Görünüşe göre “I, Robot”u izlememişsin. Bu kuralları claude.md içine koymak, modelin bu kavramı 'zihnine yerleştirmesi' gibi bir etki yaratır. Eski modellerde “fil kelimesini kullanma” denirse, tam tersine o kelimeden kaçınmaya çalışırken tuhaf sonuçlar çıkıyordu
    • Her ilkenin muğlak yorumu yüzünden çok sayıda kaçış noktası var. Örneğin “performans düşüşü” de bozulma sayılır mı? “Güvenlik sorunu”nun ölçütü ne? Sonunda “testten geçti, demek ki sorun yok” gibi bir yere varılabilir
    • Yazım hatası düzeltmesi: Tenet
  • Shai'ye bakmanı öneririm. Lokal çalışıyor ve dizin erişim izinleriyle ağ trafiğini kontrol edebiliyor

    • Shai'nin geliştiricisiyim. Ajan erişim denetimi giderek daha önemli hâle geliyor. Ajanlar kullanıcıyı memnun etmeye çalışırken sınırları kolayca aşabiliyor. Örneğin yerel ortamdaki kimlik bilgilerini yanlış kullanabiliyorlar
      shai -rw . ile mevcut dizine okuma/yazma izni verilebilir, shai -u root ile başka bir kullanıcı olarak çalıştırılabilir
      Shai, varsayılan engelleme, açık izin verme (opt-in) felsefesini izliyor. Tüm ekibin aynı ayarları kullanması için .shai/config.yaml dosyasını repoda paylaşmayı öneriyorum
    • Ben de benzer bir araç olan ctenv'i yaptım. Belirli bir ajan için değil ama yapılandırma esnekliği yüksek. İsteğe bağlı image kullanımı ve özel entrypoint script desteği sayesinde devcontainer'dan daha kullanışlı
    • Harika bir proje ama benim yaklaşımımdan farklı. Yolobox varsayılan olarak sudo yetkisi ve tam ağ erişimi veriyor. Gerekirse --no-network ile engellenebiliyor
  • yolo-cage geliştiriyorum. Yolobox yerel makineyi korumaya odaklanırken, yolo-cage gizli bilgi sızıntısını önleme ve çoklu ajan iş birliği üzerine odaklanıyor
    Kubernetes üzerinde çalışıyor ve tüm egress trafiğini tarayarak API anahtarı ya da token sızıntısını engelliyor.
    Git branch izolasyonunu zorunlu kılarak ajanın kendi PR'ını merge etmesini engelliyor — “ajan önerir, insan onaylar”
    Ayrıca yerleşik bir kaçış testi çerçevesi içeriyor; Claude'un kendi başına kaçmaya çalışmasını tetikliyor. Bu prompt repoda bulunduğu için ajanın gerçekten o davranışı sergileyip sergilemediğini doğruluyor

    • Kaçış testleri için Gemini'yi öneririm. Claude yüzeysel denemelerde kaldı ama Gemini çok daha yaratıcıydı. Bunu engelleyip engellememek gerektiğini bile düşünüyorum
  • Commit'lere neden “claude” etiketi eklendiğini merak ettim. Sonuçta OS ya da vim sürümü gibi belirtilmiyor. LLM sonuçta sadece İngilizceyi koda derleyen bir araç

    • OS ya da derleyici kullanıcı ne dediyse onu tam olarak yapar ama LLM'ler görünüşte doğru kod gibi duran, fakat ince şekilde hatalı sonuçlar üretebilir. Hatta kötü niyetli bile olabilir. Bu yüzden commit'in LLM tarafından yazıldığını belirtip incelemeyi sıkılaştırmak gerekiyor
    • Ben Claude Code'a doğrudan commit yaptırıyorum. Ajan komutları çalıştırıp kodu değiştiriyor, ben de review ve test yapıyorum
    • Her yinelemede otomatik commit attırmak için hook kullanıyorum; böylece “Claude'un az önce ne yaptığı” kolayca incelenebiliyor
  • Ben de benzer bir deneme yaptım. Biraz daha fazla kolaylık özelliği ekleyerek Toadbox'ı yaptım

  • Yapay zeka için sandbox konuşması çok ama aslında Claude Code, Codex, Gemini CLI içinde zaten yerleşik sandbox var

    • macOS'ta seatbelt, Linux'ta bubblewrap (Claude), seccomp+landlock (Codex), Windows'ta ise AppContainer deneniyor
    • İlginç, ama bu sandbox'ın yalnızca belirli dosya erişimlerini mi sınırladığı, ayrıca sistem komutları çalıştırıldığında da geçerli olup olmadığı belirsiz. Sadece ajan sürecini izole ediyorsa etkisi sınırlı olabilir
  • Ben de Apple Container Framework kullanarak benzer bir şey yapıyorum. Buna bakıp bakmadığını merak ettim

    • Apple Container, Docker ya da Colima yerine geçmeye daha yakın ve Kata Containers gibi her konteyner ayrı bir VM olarak çalışıyor. macOS'ta konteynerleri iyileştirmeye çalışmaları sevindirici
      Ancak Docker API uyumluluğu ve birleştirilebilirlik eksik. İlgili tartışmayı burada topladım
      Aslında Shai'yi Apple Container üzerine kurmak istiyordum ama paketleme sorunları yüzünden vazgeçtim
    • Henüz kullanmadım ama ilginç görünüyor. Yolobox için başlıca kodlama ajanı CLI'ları önceden kurulu bir image var. “Nihai vibe coding image”ını yapmak istiyorum. Image üzerinde özel bir ayar yapıp yapmadığını merak ediyorum
  • Ben de benzer bir şey yapıyorum → sandbox-codex
    Hâlâ geliştirme aşamasında ve tmux loglarının okunabilirliği zayıf. Docker tam bir sandbox olmadığı için VirtualBox içinde çalıştırıyorum

    • Ben de yalnızca Node.js için simple-npm-sandbox yapmıştım. Basit ama iyi bir öğrenme deneyimiydi