Keamanan Runtime Developer untuk Agen AI

Keamanan runtime untuk developer yang menjalankan agen AI berarti memasang batas keras di bawah sebuah proses yang berjalan tanpa pengawasan: persentase baterai yang tidak boleh dilewati, kondisi termal yang tidak boleh dilampaui, dan cara untuk tahu apakah agen tersebut masih mengerjakan sesuatu yang berguna — bukan sekadar toggle yang membuat Mac tetap menyala lalu berharap yang terbaik. Anda menjalankan coding agent yang sedang menyusun sebuah fitur, batch job Ollama, atau training run sebelum tidur, dan paginya bisa saja sudah selesai — atau Anda bangun dengan baterai habis, chassis yang terlalu panas untuk disentuh, dan tidak ada catatan tentang apa yang terjadi di antaranya. Perangkat bawaan macOS — caffeinate, pmset — dan aplikasi menu bar pihak ketiga seperti Amphetamine, KeepingYouAwake, Lungo, dan Caffeine sama-sama menyelesaikan separuh masalah itu dengan baik: mereka mencegah Mac idle-sleep. Tidak satu pun dari mereka memantau level baterai atau panas selagi melakukannya. Panduan ini membahas kedua sisinya — cara native dan gratis untuk membuat Mac tetap menyala, di mana masing-masing benar-benar unggul, plus guardrail yang layak ditambahkan di sekitarnya untuk setiap proses yang tidak akan Anda tunggui.
Risiko nyata dari menjalankan agen AI lama tanpa pengawasan
Ollama run semalaman, Claude Code agent yang menyusun satu fitur penuh, build pipeline yang berjalan ulang setiap kali ada perubahan file — beban kerja seperti ini punya satu kesamaan: tidak ada manusia yang mengawasi. Penjaga idle-sleep standar macOS tidak mengenal konsep persentase baterai atau suhu chip; yang dipedulikannya hanya apakah ada sesuatu yang sedang memegang wake assertion. Begitu assertion itu dipegang, proses akan terus berjalan sampai selesai, sampai baterai habis, atau sampai Mac melindungi dirinya sendiri dengan mati.
Risiko baterai bersifat kumulatif. Mengisi ulang dari kondisi hampir kosong berulang kali membebani jumlah charge-cycle lebih cepat dibanding mengisi dari 40–80%. Satu kali baterai terkuras habis semalaman jarang berakibat fatal dengan sendirinya; tapi kalau jadi kebiasaan selama berminggu-minggu, itu mempercepat penurunan kapasitas baterai. Bahaya yang lebih langsung biasanya justru agen yang macet — prompt loop, API timeout yang tidak pernah retry, build yang menunggu port yang terkunci — menghabiskan CPU terus-menerus selama berjam-jam saat Anda tidur, tanpa pernah selesai maupun memunculkan error.
Risiko termal pada MacBook sebagian diatur sendiri oleh macOS, sebagian lagi bergantung pada kondisi fisik. Chip akan men-throttle dirinya sendiri di bawah beban berkelanjutan, tapi throttling berarti proses jadi lebih lama dan lebih panas — bukan berarti aman. MacBook di atas permukaan lunak dengan ventilasi tertutup, atau berjalan dengan lid tertutup dan aliran udara buruk, memusatkan panas di ruang yang lebih sempit. Tidak ada tool keep-awake, gratis maupun berbayar, yang bisa mengubah kenyataan fisik itu — ia hanya bisa memutuskan kapan berhenti mencoba.
Cara gratis dan native: caffeinate, pmset, dan aplikasi menu bar pihak ketiga
macOS sudah dilengkapi dua tool yang dibuat khusus untuk ini, dan layak diketahui sebelum beralih ke yang lain. caffeinate -i mencegah idle sleep selama ia berjalan di foreground. caffeinate -w <pid> melangkah lebih jauh dengan mengaitkan assertion yang sama ke proses tertentu — PID dari training job, PID dari sebuah agent — dan otomatis melepaskannya begitu proses itu berakhir. Ini ide yang sama dengan CLI wrapper milik LidRun sendiri (lidrun -- python train.py --epochs 100, yang memegang assertion, menjalankan perintah, lalu melepaskannya setelah selesai). Untuk proses singkat yang akan Anda pantau sendiri, caffeinate -w $(pgrep ollama) atau membungkus perintahnya langsung sudah benar-benar cukup. Gratis, sudah ada di Mac Anda, dan mengerjakan satu tugas dengan benar.


Untuk setup lid tertutup — monitor eksternal, keyboard, dan mouse, dengan lid tertutup — mekanisme di baliknya adalah pmset -a disablesleep 1, flag sistem yang tidak terdokumentasi resmi tapi banyak dipakai, yang memerintahkan macOS untuk mengabaikan trigger sleep saat lid ditutup sepenuhnya. Inilah dasar dari semua utility clamshell-mode, termasuk Closed-Lid mode milik LidRun sendiri. Flag ini butuh hak administrator dan, tidak seperti assertion di atas, tidak terbatas pada satu proses saja — ia mengubah perilaku sleep untuk seluruh mesin sampai ada yang mengembalikannya ke 0.
Pengaturan baterai bawaan macOS layak diaktifkan untuk proses panjang apa pun, terlepas dari tool keep-awake mana yang Anda pakai. Low Power Mode dan Optimized Battery Charging (System Settings → Battery) mengurangi konsumsi daya di background dan mengatur laju charge cycle — keduanya tidak mencegah sleep atau memantau beban kerja Anda, tapi gratis, native, dan saling melengkapi dengan apa pun yang sedang Anda jalankan.
Aplikasi menu bar pihak ketiga mengisi ruang antara sebuah perintah terminal dan sesuatu yang bisa Anda percaya untuk berjalan sendiri semalaman. Amphetamine punya sistem trigger paling canggih di antara semuanya — Anda bisa mengaturnya untuk aktif ketika aplikasi tertentu dibuka atau proses tertentu dimulai, bukan sekadar menyalakan saklar manual. KeepingYouAwake adalah toggle menu bar kecil dan open-source yang mengerjakan tepat satu hal, gratis, tanpa iklan. Caffeine mempopulerkan ikon "cangkir kopi" satu klik dan masih jadi opsi paling sederhana kalau yang Anda inginkan cuma toggle biasa. Lungo membungkus ide yang sama dalam antarmuka countdown timer yang rapi. Keempatnya adalah tool yang solid dan dibuat dengan baik untuk mencegah Mac idle-sleep — bagian masalah itu memang sudah terpecahkan berkali-kali lipat.
Panduan terkaitPanduan keamanan Closed-Lid Mode untuk beban kerja MacBookDi mana opsi gratis kehabisan kemampuan untuk proses tanpa pengawasan
Tidak satu pun tool di atas yang tahu persentase baterai atau suhu Mac Anda. caffeinate -w <pid> memegang assertion-nya di baterai 2% sama gampangnya seperti di 80% — tidak ada batas bawah yang dibangun di dalamnya. Amphetamine, KeepingYouAwake, Lungo, dan Caffeine bekerja dengan cara yang sama: durasi, trigger, atau toggle manual, tapi tidak ada yang memantau level baterai atau kondisi termal lalu melepaskan lebih awal. Untuk pekerjaan yang Anda pantau langsung di depan layar, ini bukan masalah — Anda akan melihat peringatan baterai dan bertindak. Untuk sesuatu yang Anda jalankan lalu tinggalkan selama delapan jam, ini bentuk yang salah.
pmset -a disablesleep 1 membawa risiko yang lebih tajam. Karena pengaturan ini bersifat global dan persisten, kalau apa pun yang mengelolanya — script, sesi terminal, aplikasi — crash atau di-force-quit sebelum sempat menjalankan pmset -a disablesleep 0 yang berpasangan, flag itu akan tersangkut dalam keadaan menyala. Sleep saat lid ditutup berhenti terpicu sama sekali, di baterai, tanpa batas waktu, sampai ada orang yang menyadarinya dan membersihkannya secara manual dengan sudo pmset -a disablesleep 0. Inilah tepatnya alasan LidRun selalu memasangkan setiap 1 yang disetel dengan 0 yang sepadan — saat stop, saat quit, dan sekali lagi sebagai reconcile check setiap kali aplikasi dibuka — alih-alih mempercayakan satu script untuk selalu berhasil mencapai baris cleanup-nya sendiri.
Celah lainnya adalah mengetahui apakah proses itu masih benar-benar mengerjakan sesuatu. Agen yang macet — prompt loop, panggilan API yang tidak pernah mendapat respons, build yang tersangkut di port yang terkunci — terlihat identik dari luar dengan agen yang sehat: prosesnya masih ada, assertion-nya masih dipegang. Semua tool di atas, termasuk keep-awake dasar milik LidRun sendiri, akan menjaga Mac tetap menyala untuk proses yang macet sama setianya seperti untuk proses yang produktif, selama proses itu masih berdiri di sana. Menangkap hal ini butuh pemantauan terhadap prosesnya sendiri, bukan sekadar keberadaannya.
Keamanan baterai: mengapa batas bawah baterai penting
Battery auto-stop milik LidRun memantau level muatan lewat IOKit dan melepaskan keep-awake hold begitu Mac Anda melewati ambang batas yang Anda tetapkan — 20% secara default, bisa disesuaikan mulai dari 15% sampai 50%. Di bawah angka yang Anda tetapkan itu, apa pun yang sedang Anda jalankan kehilangan hold-nya dan Mac kembali ke perilaku sleep normal. Di bawahnya lagi, ada satu batas kedua yang tidak bisa dikonfigurasi, berlaku terlepas dari apa pun yang Anda setel: force-sleep darurat sungguhan, yang dikunci sehingga tidak pernah bisa didorong di bawah 4%, karena di bawah angka itu macOS tidak lagi punya cukup ruang untuk bisa diandalkan menyelesaikan proses mati dengan bersih sebelum baterai benar-benar habis.


Untuk proses semalaman yang hanya mengandalkan baterai laptop — tanpa charger, murni baterai — kami akan menyetel batas auto-stop lebih tinggi dari default 20%: 25–30% memberi margin yang nyata. Di 10–15%, lonjakan CPU singkat atau respons fan yang terlambat bisa mendorong Anda ke zona di mana macOS memaksa emergency shutdown tanpa proses keluar yang bersih; di 25–30%, ada cukup ruang untuk stop yang bersih plus margin terhadap lonjakan beban yang tidak sempat Anda lihat datang.
Batas auto-stop itu sendiri ada di setiap instalasi, termasuk tier gratis — LidRun tidak pernah memasang paywall pada stop baterai-rendah yang mendasar ini. Tahap kedua yang lebih awal — peringatan "beri tahu saya di X%" yang bisa dikonfigurasi sebelum hard stop, untuk orang yang ingin jeda lebih lega antara peringatan pertama dan titik potong sebenarnya — adalah bagian dari tier graduated-safety berbayar. Bagaimanapun, untuk proses yang lebih lama dari beberapa jam, sambungkan ke charger dulu kalau bisa: beban CPU tinggi yang berkelanjutan di baterai mempercepat penyusutan charge cycle dibanding beban yang sama di AC, dan batas bawah tetap melindungi terhadap adaptor yang terlepas di tengah proses, bahkan saat Anda sedang terhubung ke charger.
Keamanan termal: apa yang Mac beri tahu dan apa yang tidak
macOS mengekspos tekanan termal lewat ProcessInfo.thermalState: nominal, fair, serious, critical. LidRun menampilkan peringatan begitu state mencapai 'serious' dan benar-benar mundur setelah mencapai 'critical' — Safety Governor langsung melepaskan keep-awake hold, di setiap tier, gratis maupun berbayar, tanpa menunggu Anda menyadarinya. Kalau Closed-Lid mode sedang aktif dan lid secara fisik tertutup, sekadar melepaskan hold saja tidak akan berpengaruh apa-apa dengan sendirinya (tidak ada lagi idle-sleep yang bisa terpicu), jadi ia meningkat menjadi benar-benar menidurkan Mac.




Masalahnya ada di tingkat kedetailan: thermalState saja adalah sinyal yang kasar. Dalam pengujian kami sendiri di Intel Mac, sesi lid-terbuka normal di bawah beban berat menetap di sekitar 95°C dengan CPU masih berjalan di atas 80% dari kecepatan penuh — sementara beban kerja yang sama saat lid ditutup di dalam tas menjatuhkan batas kecepatan CPU sampai sekitar 24% dalam hitungan menit, dan thermalState sendiri sempat masih membaca 'fair' saja. Kesenjangan itulah alasan LidRun melakukan cross-check sinyal OS terhadap sensor suhu SMC dan pembacaan batas kecepatan CPU (pmset -g therm), bukan sekadar mempercayai thermalState sendirian — cukup salah satu sinyal membaca critical untuk memicu backstop.
RPM fan dan data sensor SMC bisa dibaca di Intel Mac dan sebagian besar konfigurasi Apple Silicon sebagai sinyal pemantauan — fan yang sudah mentok di batas atasnya memberi tahu Anda bahwa sistem sudah bekerja keras, yang jadi konteks berguna di samping pembacaan suhu itu sendiri.
Guardrail software adalah lini pertahanan kedua; yang pertama adalah fisik. Permukaan keras dan rata, ventilasi bebas, lid terbuka kalau memungkinkan. Berjalan dengan lid tertutup memusatkan panas lebih banyak dibanding lid terbuka, yang penting diketahui sebelum menyiapkan workflow clamshell semalaman — laptop stand atau bahkan sekadar mengangkat posisi di meja bisa membuat perbedaan yang terukur. Menjalankan compute job panjang di dalam tas atau ruang tertutup lainnya adalah konfigurasi paling berisiko yang ada; tidak ada process monitor yang bisa mengubah jebakan panas yang tercipta dari situ, jadi perlakukan setup semacam itu dengan hati-hati, tidak peduli tool apa pun yang mengawasi.
Di mana lapisan yang dibangun khusus ini pas: sadar proses, sadar baterai, sadar termal
Premis LidRun sederhana: agen berjalan → tetap menyala; agen selesai atau kondisi tidak aman → lepaskan atau tidur. Bukan wake lock buta yang Anda setel lalu harus diingat-ingat untuk dimatikan, dan bukan sesi yang harus Anda babysit terus-menerus karena takut batas baterai atau panas terlampaui saat Anda tidak melihat. Semua yang di atas — caffeinate, pmset, Amphetamine, KeepingYouAwake, Lungo, Caffeine — mengerjakan separuh 'tetap menyala' dengan baik. Ini adalah separuh yang lain.
Auto Mode adalah keep-awake yang terkait langsung ke proses: bentuknya sama seperti caffeinate -w, tapi sudah langsung mengenali daftar panjang proses coding-agent dan dev-tool — Claude Code, Codex, Cursor, GitHub Copilot, Windsurf, Aider, Ollama, dan lainnya — begitu diinstal, tanpa perlu konfigurasi. Auto Mode juga punya holdoff 30 menit khusus untuk proses agen yang cocok, sehingga jeda 'berpikir' normal di antara panggilan tool tidak dibaca sebagai pekerjaan yang sudah selesai (editor kosong yang cuma terbuka tidak mendapat masa tenggang yang sama, jadi jendela Cursor yang idle-tapi-terbuka tidak bisa menahan Mac tetap menyala hanya karena keberadaannya). Auto Mode adalah fitur berbayar.
Watchdog melangkah selangkah lebih jauh: ia mengawasi agen yang tiba-tiba diam. Setelah 20 menit proses agen yang cocok berada di sekitar 0% CPU — dibanding 5 menit untuk proses lainnya, karena agen memang wajar idle saat menunggu respons API — ia memberi tahu Anda bahwa proses mungkin macet, dengan waktu jeda yang cukup sehingga Anda akan mendengarnya sebelum masa tenggang Auto Mode sendiri sempat melepaskan assertion. Watchdog hanya memberi peringatan; ia tidak pernah mematikan atau me-restart proses itu sendiri. Ini juga fitur berbayar.
Battery auto-stop dan pelepasan saat panas kritis yang dijelaskan di atas gratis di setiap instalasi — bagian itu tidak pernah dipasang paywall. Timer mode milik LidRun (gratis, di samping Keep Awake biasa dan Charging-only) memegang assertion sampai waktu kedaluwarsa yang ditetapkan lalu melepaskannya sendiri, berguna sebagai batas atas terlepas dari apakah Auto Mode mengenali prosesnya atau tidak. Push notification lewat ntfy.sh (tidak perlu akun) atau Pushover menutup lingkaran ini, sehingga proses yang berhenti jam 3 pagi karena selesai, baterai rendah, atau kondisi termal, sampai ke ponsel Anda alih-alih menunggu Anda menemukan Mac yang sudah dingin saat sarapan. Dan karena LidRun juga memantau aplikasi lain yang sedang memegang wake lock-nya sendiri — Amphetamine, proses caffeinate yang nyasar, atau apa pun lainnya — ia bisa memberi tahu Anda saat sesuatu yang lain sudah menjaga Mac tetap menyala, yang paling berguna justru ketika Anda sedang beralih dari salah satu tool di atas dan tidak ingin menumpuknya tanpa disadari.
Membangun pengaturan default yang aman untuk pekerjaan agen semalaman
Untuk proses agen AI semalaman yang tipikal, konfigurasi awal yang masuk akal: battery auto-stop di 25–30% dibanding default 20%, peringatan termal 'serious' sebagai tanda awal untuk mengecek keadaan, auto-release 'critical' sebagai backstop keras, dan — kalau prosesnya sudah dikenali Auto Mode — biarkan ia mengaitkan assertion ke pekerjaan yang sebenarnya alih-alih menebak-nebak durasi tetap.
Session timer tetap dengan durasi tetap masih punya tempatnya di samping itu: Timer mode memegang assertion sampai waktu kedaluwarsa yang ditetapkan lalu melepaskannya sendiri, berguna sebagai batas atas di samping pemantauan yang terkait proses, atau berdiri sendiri untuk apa pun yang tidak dikenali Auto Mode. Kombinasi ini — sinyal mana pun yang berakhir lebih dulu, proses selesai atau N jam — menangkap kasus yang tidak bisa ditangkap toggle biasa: agen yang macet di jam kedua tapi tidak ada yang menyadarinya, menghabiskan baterai dan panas untuk proses yang sudah berhenti mengerjakan sesuatu yang berguna berjam-jam sebelumnya.
Untuk proses singkat yang Anda pantau langsung, caffeinate dan terminal yang diawasi sudah benar-benar cukup — tidak perlu mencari yang lebih. Celahnya justru muncul khusus untuk proses yang tidak akan Anda tunggui: di situlah batas bawah baterai, backstop termal, kesadaran akan proses, dan notifikasi yang sampai ke ponsel Anda mulai lebih penting daripada tool keep-awake mana yang sedang memegang assertion. Setel batasnya sekali, sambungkan ke charger kalau prosesnya panjang, jaga ventilasi tetap bebas, dan biarkan batas-batas itu yang mengurus sisanya.
LidRun menjaga pekerjaan Anda tetap jalan saat layar tertutup, dengan perlindungan baterai dan suhu bawaan.
Sudah punya LidRun? Baca panduan setup-nya →
Baru kenal LidRun? Lihat harga →
Sering ditanyakan
Tergantung setupnya. Berjalan dengan daya AC, di permukaan keras dan rata dengan aliran udara bebas, dengan batas bawah baterai serta session timer atau keep-awake yang terkait proses sudah dikonfigurasi, membantu mengurangi risiko secara signifikan. Berjalan hanya dengan baterai tanpa guardrail apa pun, di permukaan lunak, atau dengan lid tertutup di ruang tertutup, meningkatkan risiko termal maupun baterai. Tidak ada tool keep-awake — caffeinate, pmset, aplikasi menu bar, atau LidRun — yang membuat compute semalaman tanpa pengawasan menjadi aman tanpa syarat; tujuannya adalah tetap berada di bagian yang lebih aman dari rentang operasi dan diberi tahu ketika sebuah batas tercapai.
Default auto-stop LidRun adalah 20%, bisa disesuaikan dari 15% sampai 50%; untuk proses semalaman yang hanya mengandalkan baterai laptop, kami menyarankan menaikkannya ke 25–30% untuk margin ekstra. Di bawah sekitar 10–15%, lonjakan CPU yang berkelanjutan bisa mendorong Mac ke arah emergency shutdown tanpa proses keluar yang bersih. Di bawah pengaturan apa pun, macOS sendiri butuh sedikit ruang menjelang kosong untuk bisa mati dengan bersih — itulah sebabnya batas force-sleep darurat LidRun dikunci sehingga tidak pernah bisa turun di bawah 4%, terlepas dari pengaturan lain Anda. Dengan daya AC, kekhawatiran soal pengurasan langsung berkurang, tapi batas bawah baterai tetap layak dipertahankan untuk berjaga-jaga kalau adaptor terlepas di tengah proses.
Panas menumpuk lebih cepat pada konfigurasi lid tertutup karena layar tidak lagi bisa berfungsi sebagai radiator pasif. macOS akan men-throttle chip seiring suhu naik, tapi throttling berarti proses jadi lebih lambat, lebih panas, dan lebih lama — bukan berarti aman. Dalam pengujian kami sendiri, beban kerja yang menjaga batas kecepatan CPU-nya di atas 80% saat lid terbuka di sekitar 95°C, mengalami batas kecepatan itu runtuh sampai sekitar 24% dalam hitungan menit begitu setup yang sama ditutup di dalam tas. Berjalan di permukaan keras dan rata dengan ventilasi bebas, sebaiknya dengan daya AC, membantu mengurangi risiko itu. Lid tertutup di permukaan lunak atau di dalam tas adalah konfigurasi paling berisiko; tidak ada tool keep-awake yang bisa mengubah jalur aliran udara yang tersumbat.
Untuk proses singkat yang akan Anda pantau sendiri, ya — caffeinate -w <pid> atau membungkus perintahnya langsung sudah mengerjakan tugasnya dengan baik, secara gratis. Yang tidak dilakukannya adalah memantau persentase baterai atau kondisi termal Anda selagi memegang Mac tetap menyala, jadi ia akan tetap membiarkan proses yang macet atau berjalan semalaman terus berlangsung sama gampangnya di baterai 2% seperti di 80%. Untuk apa pun yang tidak Anda tunggui selama berjam-jam, gabungkan dengan batas bawah baterai dan backstop termal, atau gunakan tool yang sudah punya keduanya sekaligus.
Amphetamine, KeepingYouAwake, Lungo, dan Caffeine semuanya benar-benar dibuat dengan baik untuk satu tugas yang mereka kerjakan: mencegah Mac idle-sleep, lewat jadwal, trigger, atau toggle manual. Tidak satu pun dari mereka membaca persentase baterai atau kondisi termal untuk memutuskan kapan harus melepaskan — ini bukan kritik, itu memang di luar apa yang mereka dibangun untuk lakukan. LidRun menambahkan lapisan itu di atasnya: batas bawah baterai dan pelepasan saat panas kritis, gratis di setiap instalasi, dan — di tier berbayar — pemantauan terkait proses (Auto Mode) plus peringatan agen macet (Watchdog), sehingga guardrail-nya berasal dari serangkaian pemeriksaan, bukan dari mengingat-ingat untuk mematikan sebuah toggle.
Battery auto-stop dan pelepasan saat panas kritis gratis di setiap instalasi: LidRun memantau level muatan dan kondisi termal lewat IOKit dan API bawaan macOS, lalu melepaskan keep-awake hold begitu salah satunya melewati batas yang Anda tetapkan. Di tier berbayar, Auto Mode mengaitkan assertion ke proses tertentu yang dikenali alih-alih ke durasi tetap, dan Watchdog memberi peringatan kalau proses itu diam lebih lama dari kewajaran idle agen pada umumnya. Push notification lewat ntfy.sh atau Pushover, serta Timer mode gratis sebagai batas atas tetap, melengkapi susunan ini. Guardrail-guardrail ini membantu mengurangi kemungkinan Anda bangun dengan baterai habis atau Mac yang ter-throttle; ini bukan jaminan, dan setup fisik Anda — permukaan, aliran udara, posisi lid — tetap sama pentingnya dengan pengaturan apa pun.