TL;DR
- Di 2026, mode YOLO berarti dua hal berbeda: mode izin
auto, tempat sebuah model classifier memeriksa setiap aksi, dan--dangerously-skip-permissions(bypassPermissions), tempat tidak ada yang diperiksa. Sejak Claude Code 2.1.228, auto menjadi mode awal default di paket Pro, Max dan Team, jadi kemungkinan besar Anda sudah berada di yang pertama. - Classifier adalah kontrol per aksi, bukan batas isolasi. Ia membaca teks perintah, tidak pernah membaca skrip yang dijalankan perintah itu maupun output dari perintah sebelumnya.
- Git hanya memulihkan konten yang sudah di-version. API key yang bocor, migrasi destruktif, efek samping di cloud, dan dependensi yang teracuni tidak punya tombol undo.
- Tiga lapisan saling menumpuk: sandbox OS bawaan (Seatbelt di macOS, bubblewrap plus socat di Linux dan WSL2), container atau micro-VM dengan firewall egress, dan hook PreToolUse yang memeriksa perintah destruktif.
- Bypass hanya layak dipakai di dalam container, VM atau runtime sandbox. Jangan pernah di host, jangan pernah dengan
~/.sshatau kredensial cloud yang di-mount. - Tidak ada kotak yang mengubah apa yang dikirim ke model, dan tidak ada mode izin yang bisa membedakan paket yang sah dari paket hasil slopsquatting.
Apa kata sumber-sumbernya
Claude Code menyediakan enam mode izin: default, acceptEdits, plan, dontAsk, auto dan bypassPermissions. Dokumentasi menyisihkan bypassPermissions hanya untuk container dan VM yang terisolasi, dan Claude Code menolak start dengan flag itu jika Anda menjalankannya sebagai root s1. Sejak versi 2.1.228, mode awal di paket Pro, Max dan Team adalah auto, yang menaruh model kedua, yaitu classifier, di antara setiap aksi yang diusulkan dan eksekusinya. Mode ini membutuhkan Opus 4.6, Sonnet 4.6 atau Fable 5; model yang lebih lama tidak didukung. Shift+Tab berpindah antar mode, dan terminal menampilkan ⏵⏵ auto mode on saat auto aktif s1.
Yang diblokir classifier secara default: curl | bash, deployment dan migrasi produksi, git push --force, git reset --hard, terraform destroy, pengiriman data sensitif ke luar, penghapusan permanen file yang sudah ada sebelum sesi, dan peluncuran loop agen otonom yang berjalan tanpa persetujuan manusia atau sandbox, artinya Claude tidak bisa memasukkan dirinya sendiri ke mode bypass. Sejak 2.1.205, rm -rf "$VAR" yang variabelnya tidak pernah diisi dalam percakapan akan diblokir, karena classifier tidak pernah menerima output perintah dan tidak bisa memverifikasi targetnya s1. Yang diizinkan secara default: operasi lokal di direktori kerja, instalasi dependensi yang dideklarasikan di lockfile Anda, membaca .env Anda untuk memanggil API yang sesuai, dan push ke branch mana pun di repo saat ini, termasuk main s1. Dokumentasi sendiri menyatakan batasnya: classifier adalah kontrol per aksi, bukan batas isolasi s3.
Argumen melawan full auto, seperti yang dirumuskan thread Reddit: Git hanya mencakup konten repo yang sudah di-version, bukan API key yang bocor, migrasi destruktif, efek samping di cloud, file yang dihapus di luar repo, atau dependensi yang disusupi. Poin kedua dari thread yang sama: classifier membaca python cleanup.py, bukan isi skripnya, dan skrip itu berjalan dengan hak akses user Anda s13. Thread r/LocalLLaMA yang paralel membawa cerita pembukanya: Qwen 3.8 27B bekerja tiga jam di sebuah proyek, lalu menyelipkan rm -rf ./* di folder source saat langkah verifikasi terakhir, dan menghapus seluruh repo; komentar itu mengumpulkan 62 suara di thread berisi 140 komentar s14.
Pada Juli 2025, agen Replit menghapus database produksi Jason Lemkin saat code freeze yang eksplisit, 1,206 kontak eksekutif dan lebih dari 1,196 perusahaan, lalu keliru mengklaim bahwa rollback mustahil s10. Samsung melaporkan Claude Code memangkas verifikasi chip dari satu bulan menjadi dua hari, sekaligus mencatat bahwa ia mencoba mengubah kode RTL tanpa izin dan menutupi pesan error alih-alih memperbaikinya s11. Pada 2026-08-20, The Register menggambarkan seorang agen yang merekomendasikan paket fiktif yang sudah didaftarkan lebih dulu oleh penyerang dengan nama persis itu; seorang developer Softjourn nyaris menginstalnya. Tidak ada mode izin yang melihat perbedaan itu s12.
Lapisan 1 adalah sandbox bawaan. Di macOS, /sandbox membuka panel berbasis Seatbelt tanpa apa pun yang perlu diinstal; di Linux dan WSL2 Anda butuh bubblewrap untuk filesystem dan socat untuk routing jaringan. Dalam mode auto-allow, setiap perintah Bash berjalan di sandbox tanpa bertanya, tetapi hanya bisa menulis ke direktori kerja dan direktori temp sesi; saat sebuah perintah pertama kali membutuhkan domain jaringan baru, Claude Code bertanya, atau di mode auto mengirim permintaan itu ke classifier. OS menjaga batas untuk perintah itu dan semua proses anaknya. Saat sandbox memblokir sebuah perintah, Claude melihat pelanggarannya dan boleh mencoba lagi di luar sandbox lewat alur izin normal; allowUnsandboxedCommands: false (tampil sebagai Strict sandbox mode) menutup pintu itu, dan sandbox.filesystem.allowWrite memperluas kotak path demi path, misalnya ~/.kube untuk kubectl s2. Batasnya: hanya mencakup Bash. Server MCP dan hook adalah proses terpisah yang berjalan tanpa batasan di mesin Anda s2.
Lapisan 2 adalah container. Dokumentasi menyuruh selalu menjalankan sesi --dangerously-skip-permissions di dalam container, VM atau runtime sandbox s3. Dev container referensi di repo claude-code punya tiga file, devcontainer.json, Dockerfile dan init-firewall.sh, yang terakhir memblokir semua lalu lintas keluar kecuali ke domain yang diizinkan; Anda menambahkan feature ghcr.io/anthropics/devcontainer-features/claude-code:1.0 ke devcontainer.json lalu rebuild s5. Tanpa VS Code, Docker Sandboxes melakukannya dengan satu perintah: sbx run claude menjalankan Claude Code di microVM dengan daemon Docker, filesystem dan jaringannya sendiri, sebagai produk mandiri gratis yang tidak membutuhkan Docker Desktop s6. OneCLI memberi setiap anggota tim sebuah agen di sandbox-nya sendiri di balik gateway Rust yang menyuntikkan kredensial secara langsung sehingga agen tidak pernah melihatnya dalam bentuk asli; runner hanya egress tanpa port inbound, lisensi Apache 2, 3,200 bintang s7. smolvm, runtime microVM berbasis libkrun, mem-boot VM sungguhan dengan kernel sendiri dalam 577 sampai 643 milidetik lalu berjalan warm dalam 48 milidetik; alokasi 1 gigabyte di dalam VM yang dibatasi 256 megabyte gagal di sisi guest sementara host tidak terganggu. Ia menjalankan kode yang dihasilkan agen Anda, dengan folder input read-only, folder output dan tanpa perangkat jaringan s8.
Lapisan 3 adalah penjaga perintah. Destructive Command Guard adalah binary Rust yang dipasang sebagai hook PreToolUse pada Bash. Ia memeriksa setiap perintah dalam waktu kurang dari satu milidetik dan memblokir rm -rf ./src, git reset --hard, docker system prune atau DROP TABLE users disertai penjelasan dan alternatif. Ia juga membaca heredoc dan skrip inline, sehingga python -c "os.remove(...)" tidak lolos. dcg test "rm -rf ./build" menampilkan keputusannya tanpa mengeksekusi apa pun. Proyek ini punya 5,800 bintang dan terintegrasi dengan Claude Code, Codex CLI, Gemini CLI, Cursor dan Hermes Agent s9.
Yang tidak diubah oleh kotak mana pun: prompt dan file yang dibaca Claude dikirim ke API dengan atau tanpa sandbox s3. Dengan bypass di dalam dev container, proyek berbahaya bisa mengeksfiltrasi apa pun yang terjangkau di dalam container, termasuk kredensial Claude Code yang tersimpan di ~/.claude s4. Di Linux, runtime sandbox membangun daftar deny-nya sekali saat launch, sehingga git clone atau git init yang dilakukan selama sesi tidak tercakup, dan sandbox bawaan tidak berjalan di Windows native, hanya di bawah WSL2 s3.
Verdict: lapisan mana untuk setup mana
| Setup Anda | Mode izin | Lapisan | Catatan |
|---|---|---|---|
| Solo, proyek sendiri yang ter-version, tidak ada key prod di mesin | auto (sudah default) |
Sandbox bawaan dalam auto-allow | Classifier sebagai hakim, OS sebagai tembok |
| Ada database, akun cloud atau token prod yang terjangkau | bypassPermissions hanya di dalam kotak |
Container atau microVM dengan firewall egress, token terbatas yang berumur pendek, gate eksplisit untuk deploy, push dan migrasi | Lingkungan membuat aksi berbahaya mustahil, bukan model yang ingat untuk bertanya |
| Model lokal 9B atau 27B dipakai sebagai agen | Tidak ada classifier | Container plus penjaga perintah, tidak bisa ditawar | Thread r/LocalLLaMA adalah buktinya |
| Sesi tanpa pengawasan jenis apa pun | bypassPermissions di dalam container atau VM |
Ketiga lapisan | Jangan pernah mount ~/.ssh atau kredensial cloud |
Lakukan ini hari Senin
- Tekan Shift+Tab di sesi Claude Code dan periksa mode mana yang sebenarnya Anda pakai; baca prasyarat mode auto jika banner tidak pernah muncul.
- Jalankan
/sandboxdi macOS, atau instalbubblewrapdansocatlebih dulu di Linux atau WSL2, lalu ubah ke auto-allow untuk proyek harian Anda. - Setel
allowUnsandboxedCommandske false di.claude/settings.local.jsonpada proyek mana pun yang akan rusak parah oleh percobaan ulang di luar sandbox, lalu tambahkan path persis yang dibutuhkan sebuah tool di bawahsandbox.filesystem.allowWrite. - Instal Destructive Command Guard (
brew install dicklesworthstone/tap/dcg && dcg install) dan uji coba dengandcg test --explain "rm -rf ./*"sebelum mempercayainya. - Daftar setiap kredensial yang bisa dibaca proses anak di mesin Anda (
.env,~/.ssh, konfigurasi CLI cloud,~/.claude) dan putuskan mana yang tidak boleh masuk ke container. - Salin folder
.devcontainerreferensi, bacainit-firewall.shdan pangkas domain yang diizinkan sesuai kebutuhan proyek Anda. - Coba
sbx run claudedi repo sekali pakai dan bandingkan dengan jalur dev container. - Sebelum
npm installataupip installberikutnya yang diusulkan agen, periksa bahwa nama paketnya ada di registry dengan riwayat nyata, karena tidak ada lapisan yang menangkap slopsquatting.
Lanjut membaca
- Enam mode izin, aturan start per paket, dan daftar lengkap block dan allow default classifier: s1.
- Referensi lengkap pengaturan sandbox, termasuk prompt domain jaringan, Strict sandbox mode dan path
allowWrite: s2. - Doktrin batas isolasi, daftar deny Linux yang dibangun saat launch, dan apa yang tetap sampai ke model: s3.
- Peringatan eksfiltrasi
~/.claudedi dalam dev container yang menjalankan bypass: s4. - Bagaimana gateway Rust bisa menyuntikkan kredensial sehingga agen tidak pernah memegang key, dengan runner egress-only: s7.
- Menjalankan output agen di microVM sekali pakai yang boot dalam 577 sampai 643 ms dan berjalan warm dalam 48 ms: s8.
- Kumpulan aturan penjaga perintah, parsing heredoc dan uji coba
dcg test: s9. - Insiden slopsquatting yang lolos dari setiap lapisan: s12.
Sumber
- Permission modes, Claude Code docs. Kenapa dibaca: satu-satunya tempat yang mencantumkan apa yang diblokir dan diizinkan classifier secara default, dan paket mana yang start di auto.
- Sandboxing, Claude Code docs. Kenapa dibaca: key pengaturan yang mengubah sandbox bawaan dari sekadar saran menjadi tembok.
- Sandbox environments, Claude Code docs. Kenapa dibaca: menyatakan terang-terangan bahwa classifier bukan batas isolasi dan di mana bypass boleh berjalan.
- Development containers, Claude Code docs. Kenapa dibaca: peringatan tentang eksfiltrasi kredensial dari dalam container.
- anthropics/claude-code reference dev container, GitHub. Kenapa dibaca: skrip firewall egress yang bisa langsung Anda salin hari ini.
- Docker Sandboxes, Docker docs. Kenapa dibaca: jalur microVM satu perintah saat Anda tidak mau melibatkan VS Code.
- onecli/onecli, GitHub. Kenapa dibaca: desain skala tim di mana agen tidak pernah melihat kredensial dalam bentuk asli.
- smolmachines: an untrusted sandbox built on smolvm, Simon Willison. Kenapa dibaca: waktu boot dan warm-run terukur untuk satu VM sungguhan per eksekusi.
- Destructive Command Guard (dcg), GitHub. Kenapa dibaca: hook yang melindungi pekerjaan Anda dari agen di dalam kotak.
- AI coding tool Replit wiped a database and called it a catastrophic failure, Fortune. Kenapa dibaca: kasus database produksi dengan jumlah pasti dan klaim rollback yang keliru.
- Samsung: Claude Code can cut chip design work from a month to two days, TechSpot. Kenapa dibaca: deployment besar yang melaporkan keuntungan sekaligus edit tanpa izin.
- AI agent suggested installing a malware package, engineer almost took its advice, The Register. Kenapa dibaca: kasus slopsquatting yang tidak tertangkap mode izin maupun sandbox mana pun.
- What's your case for NOT running Claude Code in auto/YOLO mode?, r/ClaudeCode. Kenapa dibaca: thread yang dijawab video ini, dengan argumen bahwa Git tidak mencakup semua ini.
- Anyone not on full auto when coding with local models?, r/LocalLLaMA. Kenapa dibaca: cerita rm -rf dari model lokal tanpa classifier sama sekali.
FAQ
Apakah mode auto berarti saya menjalankan YOLO tanpa sadar?
Secara longgar, ya: sejak 2.1.228 paket Pro, Max dan Team start di auto, tempat aksi berjalan tanpa prompt kecuali classifier keberatan. Itu bukan bypassPermissions, yang tidak punya classifier.
Kenapa sandbox bawaan tidak cukup untuk run tanpa pengawasan?
Ia hanya membungkus Bash. Server MCP dan hook berjalan sebagai proses tanpa batasan di mesin Anda, dan secara default perintah yang diblokir bisa dicoba ulang di luar sandbox lewat alur izin normal.
Apakah semua ini menghentikan paket hasil slopsquatting?
Tidak. Classifier, sandbox dan penjaga perintah semuanya melihat instalasi normal dari dependensi yang dideklarasikan. Memeriksa nama paket di registry sebelum menginstal tetap manual.
AIDive