16 poin oleh GN⁺ 2026-03-09 | 1 komentar | Bagikan ke WhatsApp
  • Alat yang mengisolasi agen AI lokal agar tidak bisa mengubah sistem di luar lingkungannya melalui sandbox native macOS
  • Semua agen berjalan di lingkungan sandbox terpisah, sehingga tidak dapat mengakses home directory pengguna atau proyek lain
  • Menerapkan model akses deny-first, sehingga hanya direktori yang diizinkan secara eksplisit yang bisa dibaca dan ditulis
  • Instalasi selesai dengan satu skrip Bash saja, dan bisa langsung dijalankan tanpa build atau dependensi tambahan
  • Fitur pembuatan profil berbasis LLM dapat mengotomatisasi konfigurasi sandbox-exec dengan hak minimum

Ringkasan

  • Agent Safehouse adalah sistem sandboxing khusus macOS yang melindungi agar agen AI yang berjalan secara lokal tidak merusak file sistem
    • Go full --yolo. We've got you.” “Move fast, break nothing
    • Mencegah risiko eksekusi perintah tak terduga akibat sifat probabilistik LLM
  • Semua agen utama dapat berjalan sepenuhnya di dalam sandbox tanpa memengaruhi sistem di luar
  • Mengadopsi model akses deny-first, yang secara default memblokir semua akses dan hanya mengizinkan jalur yang disetujui secara eksplisit
    • Contoh: ~/my-project diizinkan baca/tulis, ~/.ssh, ~/.aws, ~/other-repos ditolak

Instalasi dan menjalankan

  • Instalasi selesai dengan satu kali unduh skrip shell
    • Ambil skrip dengan perintah curl, simpan ke ~/.local/bin/safehouse, lalu berikan izin eksekusi
  • Setelah itu, jalankan agen yang diinginkan dengan perintah safehouse
    • Contoh: safehouse claude --dangerously-skip-permissions
  • Secara default, Safehouse memberikan izin baca/tulis ke direktori kerja saat ini (git root) dan akses baca-saja ke direktori toolchain

Contoh verifikasi sandbox

  • Akses ke file sensitif diblokir di level kernel
    • Saat menjalankan safehouse cat ~/.ssh/id_ed25519, akan muncul error “Operation not permitted”
    • Direktori proyek lain (~/other-project) tidak terlihat
    • Direktori proyek saat ini tetap bisa diakses seperti biasa

Otomatisasi dan pembuatan profil

  • Dengan menambahkan fungsi shell, semua agen dapat dijalankan di dalam Safehouse secara default
    • Contoh: definisikan fungsi safe() di .zshrc atau .bashrc, lalu sandboxing otomatis untuk perintah claude, codex, amp, gemini
    • Untuk menjalankan tanpa sandbox, panggil dalam bentuk command claude
  • Menyediakan fitur pembuatan profil berbasis LLM
    • Model seperti Claude, Codex, Gemini menganalisis template Safehouse untuk membuat profil sandbox-exec dengan hak minimum
    • Disimpan di jalur ~/.config/sandbox-exec.profile berdasarkan informasi home directory dan toolchain
    • Mencakup izin akses ke direktori kerja saat ini dan perintah pintas per agen

Keamanan dan makna penggunaan

  • Melindungi agar agen lokal berbasis LLM tidak melakukan penghapusan file atau perubahan sistem yang tidak disengaja
  • Memanfaatkan kontrol akses di level kernel macOS untuk menyediakan lingkungan eksekusi yang aman secara default
  • Berbasis satu skrip sehingga mudah diintegrasikan ke workflow pengembang

1 komentar

 
GN⁺ 2026-03-09
Komentar Hacker News
  • Saya tidak menyangka proyek yang saya buat akan dipublikasikan secepat ini
    1️⃣ Saya lebih suka agen yang berjalan langsung secara lokal. Bukan di container atau server jarak jauh, melainkan di mesin saya sendiri yang sudah saya atur dengan rinci, jadi rasanya lebih tenang
    2️⃣ Ini pada dasarnya adalah generator kebijakan untuk sandbox-exec. Tidak ada dependensi, tidak ada virtualisasi. Sebagai gantinya, saya menghabiskan banyak waktu mencari izin minimum yang dibutuhkan tiap agen untuk melakukan hal-hal seperti pembaruan otomatis, integrasi keychain, menempel gambar, dan sebagainya. Hasil investigasinya dirangkum di agent-safehouse.dev/docs/agent-investigations
    3️⃣ Tidak perlu memakai seluruh proyeknya. Dengan Policy Builder saja, Anda sudah bisa membuat kebijakan sandbox-exec dan memakainya di dotfiles

    • Maaf karena memublikasikannya lebih dulu. Saya mencobanya setelah melihat komentar Anda sebelumnya, dan efisiensinya begitu bagus sampai saya merasa layak diperkenalkan lewat sebuah tulisan
      Saya pernah melihat dokumen kebijakan sandbox sebelumnya, tetapi ini pertama kalinya saya melihatnya dalam bentuk aplikasi yang siap langsung dipakai
      Meski begitu, ada beberapa hal yang kurang nyaman — akses ke .gitconfig dan .gitignore di direktori home dibatasi, dan karena pembatasan akses proses, saya tidak bisa menyuruh Claude menjalankan perintah seperti lldb atau pkill. Akan bagus kalau ada kontrol izin yang lebih rinci
    • Saya penasaran apakah ini bisa diterapkan ke openclaw. Menjalankannya dalam bentuk yang bisa diakses dari mesin lokal memang nyaman, tetapi sekaligus membuatnya lebih sulit dikendalikan
    • Saya penasaran apa perbedaan praktis antara menjalankan secara lokal dan menjalankannya di container
    • Oh, ini memang yang saya cari. Saya sempat mencoba menyesuaikan microsandbox, tetapi ini jauh lebih realistis
      Saya sudah menelusuri situs dan skripnya, dan tidak menemukan masalah khusus. Adakah hal yang perlu diwaspadai yang belum terdokumentasi?
    • Ironisnya, saya tertarik pada proyek seperti ini justru karena saya tidak percaya AI, tetapi untuk memasangnya saya harus mengunduh dan menjalankan file .sh dari server acak, yang terasa agak lucu
      Akan lebih baik jika didistribusikan dalam bentuk tarball. Tarball lebih bisa dipercaya karena saya bisa memeriksa isinya sendiri dan memverifikasi apakah itu dibuat otomatis oleh CI
  • Senang melihat proyek seperti ini, dan menurut saya sandboxing adalah tantangan terbesar saat ini
    Pengguna awal mungkin akan sembarangan menjalankan agen secara lokal, tetapi dalam jangka panjang atau di lingkungan perusahaan, itu jelas tidak akan berhasil
    Kita harus menangani skenario yang lebih kompleks, melampaui sekadar kontrol jaringan, file, dan izin eksekusi, seperti pengujian browser atau pembuatan resource cloud
    Pada akhirnya, kita membutuhkan pendekatan praktis yang mengintegrasikan keamanan, biaya, dan kontrol izin

    • Tapi mungkinkah ini sebenarnya masalah yang secara mendasar tidak bisa diselesaikan? Fungsionalitas dan keamanan selalu berbenturan, dan pada akhirnya orang-orang memilih yang pertama
    • Sandboxing pada tingkat file itu dasar saja, yang benar-benar sulit adalah kontrol kredensial dan jaringan
      Saya memakai pendekatan di mana daemon lokal menerbitkan JWT berumur pendek agar agen tidak menangani kunci secara langsung. Ini cocok untuk akses API, tetapi pada level sistem file, masih saja bisa membuat instance EC2 tanpa batas
  • Masalahnya adalah sulit melakukan evaluasi komparatif terhadap berbagai sandbox
    Ini tampaknya adalah wrapper untuk sandbox-exec, dan akhir-akhir ini banyak wrapper seperti ini bermunculan
    Yang benar-benar dibutuhkan adalah dokumen verifikasi keandalan dan pengujian otomatis. Kebanyakan sandbox kekurangan dokumentasi
    Untuk bisa dipercaya, dibutuhkan dokumentasi rinci dan bukti bahwa semuanya benar-benar bekerja

    • Karena itu saya membuatnya dengan Bash — agar terhindar dari biner yang opak
      Profil sandbox-exec untuk tiap agen dipisahkan di folder profiles GitHub, sehingga mudah ditinjau
      Saya juga menjalankan pengujian E2E dengan agen yang sesungguhnya
      Bahkan tanpa wrapper Safehouse, Anda tetap bisa membuat kebijakan minimum sendiri dengan Policy Builder
      Saya juga menyediakan file instruksi agar LLM bisa menulis profil sandbox
  • Ini adalah skrip wrapper untuk sandbox-exec. Bagus karena punya banyak preset yang sudah disusun dengan baik
    90% dari sandbox-exec adalah menetapkan cakupan yang benar, dan 90% sisanya adalah memahaminya
    Tapi akan lebih baik jika sandboxing bisa dilakukan dengan metode overlay atau copy-on-write. Saya cukup butuh lingkungan sementara yang dimodifikasi, bukan .bashrc saya sendiri

    • Saya memakai Bash karena sulit mempercayai biner Go atau Rust
      Overlay FS memang sulit di macOS, tetapi saya mengatasinya dengan membatasi akses di luar CWD menjadi hanya-baca dan mengarahkan pekerjaan ke folder sementara
    • Saya sedang membuat OSS bernama Amika. Ini adalah alat untuk meluncurkan sandbox lokal maupun jarak jauh dengan cepat, dan terintegrasi baik dengan Git
      Mendukung ekspos port TCP/UDP dan berbagi dengan anggota tim. Lihat tautan GitHub
    • Saya membuat proyek bernama Treebeard. Strukturnya menggabungkan sandbox-exec, worktree, dan filesystem COW
      Ini memungkinkan akses aman ke file yang diabaikan Git. Tautan Treebeard
    • Tapi bukankah sandbox-exec sudah deprecated?
  • Fakta menarik: sandbox-exec secara resmi sudah berstatus deprecated sejak macOS Sierra (2016)
    Meski begitu, alat ini masih tetap berguna. App Sandbox dari Apple tidak cocok untuk aturan kustom seperti ini
    Semoga Apple tidak benar-benar menghapusnya

    • Sebenarnya rasanya alat ini memang sudah seperti deprecated sejak lahir. Dokumentasi bahasa profilnya hampir tidak ada, dan sebagian besar dipahami lewat rekayasa balik
  • Ada juga proyek bernama Sandvault. Pendekatannya menggabungkan sandbox-exec dengan sistem pengguna Unix
    Tiap agen diberi akun pengguna nonprivileged terpisah, lalu berinteraksi lewat sudo, SSH, dan direktori bersama
    Tautan GitHub Sandvault

  • Saya membuat aplikasi GUI untuk macOS agar sandbox-exec bisa dikelola secara visual
    Ini juga mencakup pemfilteran jaringan per domain dan fitur deteksi secret
    multitui.com

  • Membagikan cara menjalankan kode Claude di dalam container Apple menggunakan perintah container dari Apple
    Lingkungan disiapkan dengan urutan container system startcontainer runcontainer exec, lalu Node.js dan Claude dipasang

    • Terima kasih! Baru kali ini saya tahu bahwa Homebrew juga punya apple/container
  • Saya penasaran mengapa menjalankan agen secara lokal dianggap lebih baik.
    Bagi kebanyakan orang, eksekusi jarak jauh sepertinya lebih efisien — karena tidak perlu selalu dinyalakan

    • Kelebihan eksekusi lokal adalah kendali dan kepemilikan. Mirip alasan orang menjalankan Plex atau web server sendiri
      Selain itu, bisa menghindari biaya langganan
    • Saya membuat pixels untuk menyelesaikan masalah ini. Bisa dijalankan di atas TrueNAS SCALE atau Incus
      Keamanannya sedang diperkuat, dan sudah cukup cocok untuk workflow AI
      Tautan GitHub pixels
  • Saya penasaran apakah “clunker” adalah slang baru untuk “clanker”. Teman dari teman saya, Roku, yang bertanya
    Waktunya pas sekali karena saya sedang kesulitan dengan masalah sandboxing

    • Itu typo, baru saja saya perbaiki