12 poin oleh GN⁺ 2026-01-14 | 1 komentar | Bagikan ke WhatsApp
  • Alat untuk menjalankan agen coding AI dengan hak sistem penuh sambil mencegah risiko kerusakan pada direktori home milik pengguna
  • AI CLI utama seperti Claude Code, Codex, Gemini CLI, OpenCode sudah diprakonfigurasi dan bisa dijalankan dalam mode 'YOLO'
  • Hanya direktori proyek yang di-mount di dalam kontainer Docker atau Podman, sementara direktori home dikecualikan secara default
  • Di dalam kontainer tersedia hak sudo dan volume persisten agar alat dan konfigurasi tetap tersimpan antar sesi
  • Menyediakan lingkungan sandbox terisolasi agar developer bisa bereksperimen dengan otomatisasi AI secara aman

Ikhtisar

  • Yolobox adalah alat yang menjalankan agen coding AI di dalam kontainer, sehingga sistem tetap terlindungi sambil tetap memberi hak eksekusi penuh
    • Bahkan jika AI secara keliru menjalankan perintah destruktif seperti rm -rf ~ saat mengeksekusi perintah, direktori home tidak akan terdampak
    • Direktori proyek di-mount ke /workspace, dan direktori home tidak di-mount secara default
    • Alat dan konfigurasi dipertahankan antar sesi melalui volume persisten

Konfigurasi dan fitur utama

  • Di dalam kontainer, agen AI memiliki hak sudo dan dapat menjalankan perintah dengan bebas
  • Image bawaan mencakup hal-hal berikut
    • AI CLI: Claude Code, Gemini CLI, OpenAI Codex, OpenCode (semuanya disetel ke mode eksekusi otomatis)
    • Lingkungan pengembangan: Node.js 22, Python 3, make, cmake, gcc, Git, GitHub CLI
    • Utilitas: ripgrep, fd, fzf, jq, vim
  • Jika perlu, pengguna dapat memasang paket tambahan sendiri dengan sudo

Menjalankan dan perintah

  • Masuk ke shell sandbox dengan perintah yolobox
  • Menjalankan satu perintah dengan yolobox run
  • Menyediakan perintah administrasi seperti yolobox upgrade, yolobox config, yolobox reset --force, yolobox version
  • Flag utama
    • --runtime: pilih docker atau podman
    • --no-network: nonaktifkan jaringan
    • --readonly-project: mount proyek sebagai read-only
    • --claude-config: salin konfigurasi Claude dari host ke kontainer

Model keamanan

  • Menggunakan isolasi kontainer sebagai batas keamanan
    • Kontainer memisahkan filesystem, proses, dan jaringan melalui Linux namespaces
    • AI memiliki hak root di dalam kontainer, tetapi tidak dapat mengakses sistem luar
  • Yang dilindungi
    • Direktori home, kunci SSH, kredensial, dotfiles, proyek lain, file sistem host
  • Yang tidak dilindungi
    • Direktori proyek (secara default dapat dibaca/tulis)
    • Akses jaringan (bisa diblokir lewat opsi)
    • Kerentanan kernel atau serangan container escape

Tahapan penguatan keamanan

  • Mode dasar: isolasi kontainer standar
  • Tahap 2: kurangi permukaan serangan dengan opsi --no-network --readonly-project
  • Tahap 3: gunakan Rootless Podman untuk menghilangkan hak root pada host
    • Root di kontainer dipetakan ke pengguna biasa di host sehingga dampak saat escape bisa diminimalkan
  • Tahap 4: jalankan di dalam VM untuk menghilangkan kernel bersama
    • Di macOS gunakan UTM, Parallels, Lima; di Linux gunakan Podman machine atau VM khusus

Isolasi jaringan

  • Rootless Podman secara default menggunakan jaringan slirp4netns yang terpisah dari jaringan host
  • Dengan pengaturan allow_host_loopback=false, akses ke jaringan lokal bisa diblokir

Lisensi dan lainnya

  • Dirilis dengan lisensi MIT
  • Komposisi bahasa repositori: Go 75.9%, Dockerfile 13.6%, Shell 8.7%, Makefile 1.8%
  • Nama 'Yolobox' berasal dari semangat “YOLO(You Only Live Once)”, yang berarti menjalankan AI dengan bebas namun dalam lingkungan yang terisolasi secara aman

1 komentar

 
GN⁺ 2026-01-14
Komentar Hacker News
  • Baru-baru ini saya membuat proyek serupa bernama Litterbox (situs demo)
    Khusus Linux, karena bergantung pada Podman. Sebagai gantinya, ada beberapa kelebihan yang cocok untuk kebutuhan saya

    • Mengekspos socket Wayland sehingga seluruh lingkungan pengembangan seperti editor bisa dijalankan di dalam container. Dengan begitu, ini melindungi dari kerentanan ekstensi editor
    • Menyediakan agen SSH khusus yang meminta konfirmasi pengguna setiap kali melakukan penandatanganan. Jadi malware tidak bisa diam-diam memakai hak akses GitHub
    • Ada juga fitur untuk dengan mudah mengaktifkan izin yang hanya dibutuhkan dalam situasi tertentu, seperti pembuatan perangkat TUN/TAP
    • Saat ini belum ada, tetapi integrasi SELinux sedang dipersiapkan
  • Saya juga sedang bereksperimen dengan sesuatu yang mirip.
    Akan bagus jika README menjelaskan dengan jelas cara kerjanya dan batas kepercayaan (berbasis container Docker). Risiko container escape tetap ada karena kerentanan kernel bisa dieksploitasi
    Saya meminimalkan akses jaringan dengan Rootless Podman dan slirp4netns.
    Langkah berikutnya adalah mencoba Podman machine untuk memisahkan kernel sepenuhnya, tetapi volume mount belum berjalan dengan baik

    • Terima kasih atas masukannya. README sudah saya perluas → tautan commit
  • Mengusulkan agar Tiga Hukum Robot Asimov dimasukkan ke dalam agents.md atau claude.md

    1. Jangan merusak program atau membiarkannya terbengkalai
    2. Patuhi perintah selama tidak bertentangan dengan hukum pertama
    3. Jaga keamanan selama tidak bertentangan dengan hukum pertama dan kedua
    • Dalam karya aslinya, hukum-hukum ini langsung rusak, dan memang dimaksudkan untuk menunjukkan kompleksitas masyarakat manusia
    • Sepertinya belum menonton “I, Robot”. Kalau aturan seperti ini dimasukkan ke claude.md, model akan mendapat efek ‘ditanamkan dalam pikiran’ dengan konsep itu. Model lama dulu justru menghasilkan perilaku aneh saat diminta “jangan gunakan kata gajah”, karena mereka malah terlalu berusaha menghindari kata itu
    • Karena penafsiran tiap hukum ambigu, ada banyak celah untuk lolos. Misalnya, apakah “penurunan performa” termasuk kerusakan? Apa kriteria “masalah keamanan”? Pada akhirnya bisa lolos dengan alasan seperti “tesnya lulus jadi aman”
    • Koreksi typo: Tenet
  • Disarankan untuk melihat Shai. Berjalan secara lokal, dan bisa mengontrol hak akses direktori serta lalu lintas jaringan

    • Saya pembuat Shai. Kontrol akses agen makin penting. Agen cenderung melampaui batas demi memuaskan pengguna. Misalnya, bisa salah menangani credential di lingkungan lokal
      shai -rw . mengizinkan baca/tulis pada direktori saat ini, shai -u root memungkinkan menjalankan sebagai pengguna lain
      Shai mengikuti filosofi deny by default, opt-in eksplisit. Saya menyarankan berbagi .shai/config.yaml di repo agar seluruh tim memakai pengaturan yang sama
    • Saya juga membuat alat serupa, ctenv. Bukan khusus untuk agen tertentu, tetapi sangat fleksibel dalam konfigurasi. Dukungan penggunaan image arbitrer dan skrip entrypoint kustom terasa lebih praktis daripada devcontainer
    • Proyek yang keren, tetapi pendekatan saya berbeda. Yolobox pada dasarnya mengizinkan hak sudo dan akses jaringan penuh. Jika perlu, bisa diblokir dengan --no-network
  • Saya sedang mengembangkan yolo-cage. Jika Yolobox berfokus pada perlindungan mesin lokal, yolo-cage berfokus pada pencegahan kebocoran rahasia dan kolaborasi multi-agen
    Berjalan di Kubernetes, dan memindai semua lalu lintas egress untuk mencegah kebocoran API key atau token.
    Ini memaksa isolasi branch Git agar agen tidak bisa me-merge PR-nya sendiri — “agen mengusulkan, manusia yang menyetujui”
    Selain itu, ada framework pengujian escape bawaan yang mendorong Claude untuk mencoba kabur sendiri. Prompt-nya ada di dalam repo, untuk memverifikasi apakah agen itu benar-benar asli

    • Untuk pengujian escape, saya merekomendasikan Gemini. Claude hanya sampai pada upaya yang dangkal, tetapi Gemini jauh lebih kreatif. Saya bahkan masih mempertimbangkan apakah ini benar-benar harus diblokir
  • Saya penasaran kenapa commit perlu diberi penanda “claude”. Untuk OS atau versi vim kita tidak melakukan itu. Pada akhirnya LLM hanyalah alat yang mengompilasi bahasa Inggris menjadi kode

    • OS atau compiler menjalankan persis apa yang diminta pengguna, tetapi LLM bisa menghasilkan sesuatu yang tampak seperti kode benar namun diam-diam keliru. Bahkan bisa bersifat jahat. Karena itu perlu ditandai sebagai commit yang ditulis LLM agar review diperketat
    • Saya menyerahkan commit langsung kepada Claude Code. Agen menjalankan perintah dan mengubah kode, lalu saya melakukan review dan pengujian
    • Saya memakai hook untuk membuat commit otomatis di setiap iterasi, sehingga mudah meninjau “apa yang baru saja dilakukan Claude”
  • Saya juga pernah mencoba hal serupa. Saya membuat Toadbox dengan tambahan beberapa fitur kenyamanan

  • Banyak pembicaraan tentang sandbox untuk AI, tetapi sebenarnya Claude Code, Codex, dan Gemini CLI sudah punya sandbox bawaan

    • Di macOS memakai seatbelt, di Linux memakai bubblewrap (Claude), seccomp+landlock (Codex), dan di Windows sedang bereksperimen dengan AppContainer
    • Menarik, tetapi tidak jelas apakah sandbox ini hanya membatasi akses ke file tertentu, dan apakah juga berlaku saat menjalankan perintah sistem. Jika cuma mengisolasi proses agen saja, efektivitasnya mungkin rendah
  • Saya sedang membuat sesuatu yang mirip dengan Apple Container Framework. Penasaran apakah Anda sudah melihatnya

    • Apple Container lebih dekat sebagai pengganti Docker atau Colima, dan setiap container berjalan sebagai VM terpisah seperti Kata Containers. Senang melihat ada upaya memperbaiki container di macOS
      Namun, masih kurang dalam kompatibilitas API Docker dan komposabilitas. Saya merangkum diskusi terkait di sini
      Awalnya saya ingin menjalankan Shai di atas Apple Container, tetapi menyerah karena masalah packaging
    • Saya belum mencobanya, tetapi menarik. Yolobox punya image dengan CLI agen coding utama yang sudah dipasang sebelumnya. Saya ingin membuat “image vibe coding paling pamungkas”. Penasaran apakah Anda menambahkan konfigurasi khusus pada image itu
  • Saya juga sedang membuat sesuatu yang mirip → sandbox-codex
    Masih dalam proses, dan log tmux kurang mudah dibaca. Karena Docker bukan sandbox yang sepenuhnya aman, saya menjalankannya di VirtualBox

    • Saya juga pernah membuat simple-npm-sandbox khusus untuk Node.js. Sederhana, tetapi merupakan pengalaman belajar yang bagus