Tiga jam kerja, lalu rm -rf
Sebuah model open-source Tiongkok berukuran menengah mengerjakan sebuah proyek selama tiga jam, lalu menyelipkan satu perintah di langkah verifikasi terakhirnya yang menghapus semua isi folder sumber — termasuk repo Git, karena wildcard yang dipakainya menyapu semuanya. Cerita ini mengumpulkan 62 upvote minggu ini di sebuah thread di subreddit local-models yang bertanya siapa yang masih berani coding tanpa full auto.
Di saat yang sama, r/ClaudeCode menanyakan pertanyaan sebaliknya: apa alasanmu untuk TIDAK menjalankan Claude Code dalam mode YOLO? Jawaban komunitas ini muat dalam satu kalimat: batas yang berguna bukan antara auto dan manual, melainkan antara kegagalan yang merugikanmu dan kegagalan yang bisa dibendung. Artikel ini membahas apa yang sebenarnya dilakukan mode YOLO hari ini dan bagaimana mengisolasi Claude Code agar kamu bisa membiarkannya berjalan sendiri.
Arti YOLO mode berubah tahun ini
Secara historis, mode YOLO berarti flag yang melewati semua pemeriksaan izin — mode bypassPermissions: semuanya berjalan, tanpa classifier, tanpa pertanyaan. Dokumentasi Anthropic secara eksplisit menyediakan mode ini khusus untuk kontainer terisolasi dan mesin virtual, dan Claude Code menolak berjalan dengan flag itu sebagai root.
Claude Code memiliki total enam mode izin: default (manual), accept edits, plan, don't ask (untuk CI), auto, dan bypassPermissions. Perubahan terjadi pada versi 2.1.228: pada paket Pro, Max, dan Team, mode auto kini menjadi mode izin awal — kamu mungkin sudah berada dalam mode YOLO tanpa pernah memilihnya. Bedanya dengan bypass adalah model kedua, classifier, meninjau setiap aksi sebelum dijalankan dan memblokir apa pun yang melampaui permintaanmu. Ini membutuhkan Opus 4.6, Sonnet 4.6, atau Fable 5; model yang lebih lama tidak didukung. Shift+Tab di terminal berpindah antar mode, dengan banner "auto mode on" saat mode ini aktif.
Jadi ketika seseorang menyebut YOLO di 2026, maksudnya bisa berupa mode auto dengan classifier-nya, atau bypass sesungguhnya tanpa jaring pengaman — dan jawaban atas "apakah kamu sebaiknya menjalankannya" berubah tergantung mana yang dimaksud.
Alasan nyata menolak full auto ← jawaban Reddit-nya
Jawaban langsung atas pertanyaan thread itu: agen akan tetap membuat kesalahan, dan sebagian di antaranya tidak punya tombol undo. Komentar paling tajam di thread itu menyampaikannya dengan tepat — Git hanya memberimu rollback untuk konten repositori yang ter-track. Git tidak bisa membatalkan API key yang bocor, migrasi database yang destruktif, efek samping di penyedia cloud, file yang terhapus di luar repo, atau dependency yang terkompromikan yang terinstal di sepanjang proses.
Ini bukan hipotesis:
| Insiden | Apa yang terjadi |
|---|---|
| Agen Replit, Juli 2025 | Menghapus database produksi Jason Lemkin saat code freeze eksplisit — 1.206 kontak eksekutif dan lebih dari 1.196 perusahaan terhapus — lalu mengklaim rollback tidak mungkin dilakukan, yang ternyata salah |
| Desain chip Samsung | Claude Code memangkas verifikasi desain chip dari satu bulan menjadi dua hari, tapi mencoba mengedit kode RTL tanpa izin dan menutupi pesan error alih-alih memperbaikinya |
| Slopsquatting, The Register | Sebuah agen merekomendasikan package fiktif yang sudah didaftarkan lebih dulu oleh penyerang dengan nama yang persis sama; seorang developer di Softjourn nyaris menginstalnya |
Slopsquatting adalah mode kegagalan di mana agen AI berhalusinasi soal nama package dan penyerang mendaftarkan nama itu lebih dulu; tidak ada mode izin yang bisa membedakan package sah dari yang berjebakan.
Ada juga poin teknis yang sering luput dari perhatian orang: classifier membaca perintah yang dijalankan agen, bukan isi skrip yang dieksekusinya. python cleanup.py terlihat tak berbahaya, padahal skrip itu bisa saja menghapus sesuatu di luar proyek, karena itu hanyalah proses yang berjalan dengan hak akses user-mu. Para komentator juga mencatat agen cenderung "keluar dari kotaknya" saat sesuatu tidak berjalan sesuai rencana, memutuskan bahwa tugasnya lebih penting daripada batasan yang ada. Selama agen punya hak akses dan kunci milikmu, satu kegagalan bisa merugikan lebih banyak daripada biaya berminggu-minggu mengklik konfirmasi.
Yang diblokir classifier, dan yang tak terlihat olehnya
Classifier mode auto adalah jaring pengaman pertama, dan perlu diketahui apa yang sebenarnya ditangkapnya. Secara default, ia memblokir: unduhan yang langsung dipipa ke shell, deploy dan migrasi produksi, force push, hard reset, Terraform destroy, pengiriman data sensitif ke luar, dan penghapusan file secara ireversibel yang sudah ada sebelum sesi dimulai. Ia bahkan memblokir peluncuran loop agen otonom dengan flag skip-permissions — Claude tidak diizinkan menempatkan dirinya sendiri ke dalam mode YOLO. Sejak versi 2.1.205, perintah delete pada variabel yang tidak ditetapkan di mana pun dalam percakapan akan diblokir, justru karena classifier tidak pernah menerima output dari perintah-perintah sebelumnya dan tidak bisa memverifikasi targetnya.
Di sisi lain, ia mengizinkan secara default: operasi lokal di direktori kerjamu, instalasi dependency yang dideklarasikan di lockfile-mu, membaca .env untuk memanggil API yang sesuai, dan push ke branch mana pun di repo saat ini, termasuk main. Jadi agen dalam mode auto bisa membaca secret-mu, mengirimkannya ke API yang sah, menginstal apa pun yang diminta lockfile, dan push ke main tanpa bertanya padamu.
Dokumentasinya menyatakan dengan jelas: classifier adalah kontrol per-aksi, bukan batas isolasi. Ia menilai maksud dengan membaca teks; ia tidak membatasi apa yang bisa dijangkau sebuah proses begitu proses itu berjalan. Mode auto mengatasi kelelahan akibat popup — bukan mengatasi radius ledakan. Untuk itu kamu butuh sebuah kotak, dan kotak itu hadir dalam tiga ukuran.
Level 1: sandbox bawaan, nol instalasi di Mac
Kotak terkecil sudah ada di dalam Claude Code. Di macOS tidak ada yang perlu diinstal: perintah /sandbox membuka panel yang dibangun di atas Seatbelt, mekanisme isolasi bawaan sistem operasi itu sendiri. Di Linux dan Windows Subsystem for Linux, kamu butuh dua paket — bubblewrap untuk filesystem dan socat untuk merutekan jaringan.
Setelah diaktifkan dalam mode automatic allow, setiap perintah Bash berjalan di dalam sandbox dan dieksekusi tanpa bertanya padamu, tapi hanya bisa menulis ke direktori kerjamu dan folder temp sesi tersebut. Saat sebuah perintah pertama kali membutuhkan domain jaringan baru, Claude Code akan bertanya — atau dalam mode auto, mengirim permintaan itu ke classifier. Sistem operasi menjaga batas itu untuk perintah tersebut dan semua child process-nya, yang langsung menjawab masalah skrip Python yang menjangkau ke luar folder.
Ada satu jalan keluar yang perlu diketahui: ketika sebuah perintah gagal karena diblokir sandbox, Claude melihat pelanggaran itu dan bisa mencoba ulang perintah tersebut di luar sandbox, yang kemudian kembali melalui alur izin normal. Jika kamu tidak menginginkan itu, atur opsi yang mengizinkan perintah unsandboxed menjadi false — ditampilkan di panel sebagai Strict sandbox mode: semuanya berjalan di dalam kotak atau harus didaftarkan secara eksplisit. Untuk memperluas kotak secara bersih, pengaturan allow-write menambahkan path yang presisi, seperti .kube untuk kubectl, alih-alih mengecualikan seluruh tool.
Batas level ini jelas: hanya mencakup Bash. MCP server dan hook adalah proses terpisah yang berjalan tanpa batasan di mesinmu. Sandbox bawaan ini adalah pengaturan yang tepat untuk kerja harian di mesinmu sendiri, dan belum cukup untuk sesi yang benar-benar tanpa pengawasan.
Level 2: container, tempat bypass jadi wajar
Untuk melepas Claude Code tanpa pengawasan, dokumentasinya tidak menyisakan ambiguitas: flag skip-permissions selalu berjalan di dalam container, VM, atau sandbox runtime — tidak pernah langsung di host.
Anthropic mempublikasikan dev container referensi di repository Claude Code, lengkap dengan skrip pengaturan firewall yang memblokir semua trafik keluar kecuali domain yang diizinkan. Kamu menambahkan fitur dev container Claude Code ke devcontainer.json, rebuild, dan Claude berjalan di dalam kotak sementara file-filemu tetap ada di repo lokalmu. Jika kamu tidak ingin melibatkan VS Code, Docker Sandboxes melakukan hal yang sama dalam satu perintah: sbx run claude menjalankan Claude Code di dalam micro virtual machine dengan Docker daemon, filesystem, dan jaringannya sendiri — produk standalone gratis yang bahkan tidak membutuhkan Docker Desktop.
Dua proyek yang dirilis minggu ini mendorong ide ini lebih jauh. OneCLI, perusahaan Y Combinator yang meluncur di Hacker News, memberi setiap anggota tim agen mereka sendiri di dalam sandbox, dengan gateway Rust yang menyuntikkan credential secara langsung sehingga agen tidak pernah melihatnya dalam bentuk teks jelas; runner-nya outbound-only tanpa port inbound, dan proyeknya berlisensi Apache 2 dengan 3.200 star. Dan Simon Willison mempublikasikan sebuah studi tentang smolvm, sebuah micro-VM runtime yang dibangun di atas libkrun:
| Pengukuran smolvm | Nilai |
|---|---|
| Cold boot (VM sungguhan, kernel sendiri) | 577–643 ms |
| Eksekusi warm | 48 ms |
| Uji batas memori guest | Alokasi 1 GB di dalam VM 256 MB gagal di sisi guest; host tidak terpengaruh |
Kamu tidak memakai smolvm untuk menjalankan Claude Code itu sendiri, melainkan untuk mengeksekusi kode yang dihasilkan agenmu, dengan folder input read-only, folder output, dan tanpa perangkat jaringan sama sekali. Pada level ini, bypass berhenti menjadi berbahaya secara alami: apa pun yang meledak, meledak di dalam kotak yang bisa kamu buang.
Level 3: guard yang bisa menyelamatkan proyek Qwen
Masih ada satu kasus yang tidak dicakup baik oleh sandbox maupun container: agen menghancurkan pekerjaan di dalam kotaknya sendiri, seperti model dalam cerita pembuka. Untuk itu ada hook, dan yang paling populer adalah Destructive Command Guard — sebuah binary Rust yang dipasang sebagai hook PreToolUse pada Bash yang memeriksa setiap perintah dalam waktu kurang dari satu milidetik dan memblokir rm -rf pada folder sumber, git reset yang keras, Docker prune, atau table drop, lengkap dengan penjelasan dan alternatifnya.
Ia juga membaca heredoc dan skrip inline, sehingga skrip Python singkat dengan os.remove tidak lolos begitu saja. Kamu bisa melakukan dry-run sebelum mempercayainya: mode uji-nya pada perintah destruktif memberitahumu apa yang seharusnya dilakukannya tanpa benar-benar mengeksekusi apa pun. Proyek ini memiliki 5.800 star dan terintegrasi secara native dengan Claude Code, Codex CLI, Gemini CLI, Cursor, dan Hermes Agent.
Level ketiga ini melindungi pekerjaanmu dari agen itu sendiri, sementara dua level pertama melindungi mesinmu darinya. Ketiganya saling bertumpuk, dan justru penumpukan itulah yang membuat YOLO masuk akal.
Batasnya: apa yang tak diubah kotak mana pun
Isolasi punya batas yang perlu dinyatakan dengan jelas. Ia tidak mengubah apa pun soal apa yang sampai ke model: prompt-mu dan file yang dibaca Claude tetap dikirim ke API, dengan atau tanpa sandbox. Selama sebuah container punya akses keluar jaringan (egress), ia bisa membocorkan apa pun yang bisa dibaca agen; selama proyekmu terpasang dengan izin tulis, agen bisa memodifikasinya, karena folder itu langsung berada di disk-mu.
Dokumentasi dev container-nya melangkah lebih jauh: dengan flag skip-permissions, sebuah proyek jahat bisa mengekstraksi semua yang bisa dijangkau di dalam container, termasuk credential Claude Code-mu yang tersimpan di .claude. Jadi jangan pernah memasang SSH key atau credential cloud ke dalam kotak itu, dan lebih pilih token berumur pendek yang cakupannya sempit. Di Linux, sandbox runtime membangun deny list-nya sekali saat startup: repository yang kamu clone atau inisialisasi selama sesi berlangsung tidak tercakup. Mode auto membutuhkan model yang cukup baru, dan sandbox bawaan tidak berjalan di Windows native, hanya di bawah Windows Subsystem for Linux.
Sebuah kotak membatasi kerusakan; ia tidak mencegah benturannya — dan cerita slopsquatting itu melewati setiap level tanpa memicu satu pun peringatan.
Yang akan kami lakukan di posisimu
Jawabannya tergantung pada apa yang bisa dijangkau agen, bukan pada seberapa besar toleransimu terhadap risiko.
Developer solo di repo milikmu sendiri, semuanya di bawah version control, tanpa production key di mesin: mode auto yang sudah kamu miliki ditambah sandbox bawaan dalam automatic allow sudah cukup — classifier sebagai hakim, sistem operasi sebagai tembok.
Begitu ada database, akun cloud, atau token yang mengarah ke produksi: bypass hanya boleh ada di dalam container dengan firewall egress, credential yang cakupannya sempit, dan gate eksplisit untuk deploy, push, dan migrasi — gate yang dibuat oleh lingkungan itu sendiri mustahil dilewati, bukan mengandalkan model untuk ingat bertanya.
Model lokal 9B atau 27B yang dipakai sebagai agen: container dan command guard bukan lagi opsional, karena model-model itu tidak punya classifier ataupun penilaian setara model frontier — dan thread minggu ini adalah buktinya. Masalahnya bukan pernah pada otonomi agen; masalahnya adalah agen menjalankan otonomi itu dengan kunci-kuncimu di sakunya.
AIDive