- 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
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
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
Mengusulkan agar Tiga Hukum Robot Asimov dimasukkan ke dalam
agents.mdatauclaude.mdclaude.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 ituDisarankan untuk melihat Shai. Berjalan secara lokal, dan bisa mengontrol hak akses direktori serta lalu lintas jaringan
shai -rw .mengizinkan baca/tulis pada direktori saat ini,shai -u rootmemungkinkan menjalankan sebagai pengguna lainShai mengikuti filosofi deny by default, opt-in eksplisit. Saya menyarankan berbagi
.shai/config.yamldi repo agar seluruh tim memakai pengaturan yang sama--no-networkSaya 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
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
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
Saya sedang membuat sesuatu yang mirip dengan Apple Container Framework. Penasaran apakah Anda sudah melihatnya
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 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