Kisah pembuatan LidGuard, program yang saya buat karena ingin menjalankan agen AI lalu menutup laptop saat turun dari bus atau kereta bawah tanah
(github.com/airtaxi)Saya sering coding di laptop saat bepergian. Terutama belakangan ini, saya makin sering menyerahkan pekerjaan yang butuh waktu agak lama kepada agen coding AI seperti Codex.
Masalahnya muncul saat harus turun dari bus atau kereta bawah tanah.
Prompt sudah dikirim, agen masih memproses, tetapi kalau penutup laptop ditutup, perangkat bisa masuk ke mode tidur dan pekerjaan terputus. Karena itu saya sering turun sambil membawa laptop yang hanya ditutup setengah dengan layar tetap menyala, menunggu sebentar lagi, atau menghentikan pekerjaan lalu melanjutkannya nanti.
Kelihatannya seperti ketidaknyamanan kecil, tetapi karena berulang, lama-lama cukup mengganggu.
Jadi saya membuat ini
LidGuard adalah alat manajemen daya yang mencegah laptop tidur saat agen coding AI lokal sedang bekerja, lalu mengembalikannya ke kebijakan daya semula setelah pekerjaan selesai.
Kurang lebih alur yang saya tuju seperti ini.
- Menyerahkan pekerjaan yang memakan waktu kepada agen.
- Saat harus berpindah tempat, menutup laptop.
- Selama agen bekerja, mode tidur dan tidur saat penutup ditutup dicegah untuk sementara.
- Setelah pekerjaan selesai, pengaturan daya asli dipulihkan.
- Sesuai pengaturan, perangkat masuk ke mode sleep atau hibernate.
Secara pribadi, bagian terakhir itulah yang paling saya suka. Jika hanya berhenti di “tetap berjalan meski penutup ditutup”, pada akhirnya pengguna tetap harus memikirkannya lagi nanti. LidGuard justru ditujukan agar setelah pekerjaan agen selesai, laptop juga ikut beristirahat.
Kenapa membuatnya terpisah
Saya juga sempat mencari program pencegah tidur yang sudah ada.
Dari yang saya temukan, kebanyakan mendekati salah satu dari berikut ini.
- Mencegah tidur selama proses tertentu sedang berjalan
- Menggunakan timer yang dibiarkan aktif
- Dinyalakan dan dimatikan langsung oleh pengguna
- Hanya mencegah tidur saat penutup laptop masih terbuka
Yang saya inginkan sedikit berbeda.
- Sementara mengubah perilaku tidur saat penutup ditutup
- Mengetahui kapan sesi agen AI benar-benar selesai
- Setelah selesai, memulihkan kebijakan daya semula
- Jika perlu, otomatis mengirim perangkat ke sleep atau hibernate
Karena itu, pada agen yang didukung, saya membuatnya melacak awal dan akhir pekerjaan berbasis hook. Jadi ini lebih dekat ke “alat yang menjaga komputer tetap terjaga hanya selama agen bekerja” daripada “alat yang memaksa komputer terus menyala apa pun yang terjadi”.
Fitur yang disertakan
Awalnya saya pikir cukup jika Codex berjalan baik di Windows. Lingkungan yang paling sering saya gunakan memang Windows, dan agen yang paling sering saya pakai juga hampir selalu Codex.
Namun saat membuatnya, saya merasa masalah ini cukup umum, jadi saya menambahkan fitur sedikit demi sedikit.
- Kontrol daya untuk Windows, Linux berbasis systemd/logind, dan macOS
- Integrasi dengan Codex, Claude Code, dan GitHub Copilot CLI
- Sleep atau hibernate otomatis setelah pekerjaan selesai
- Pengaturan penanganan permintaan izin saat penutup dalam keadaan tertutup
- Melepas pencegahan tidur untuk sesi yang tidak aktif selama jangka waktu tertentu
- Hibernate darurat berdasarkan sensor suhu
Laptop saya adalah Windows on ARM, jadi pekerjaan agen saja biasanya tidak membuatnya terlalu panas di dalam tas. Meski begitu, saya tetap merasa harus berhati-hati saat berpindah tempat dengan laptop tertutup tetapi masih menyala. Karena itu, pada lingkungan yang didukung, saya juga menambahkan fungsi yang mencoba segera melakukan hibernate atau sleep bila suhu melewati batas tertentu.
Hal yang perlu diperhatikan
LidGuard bukan berarti “laptop boleh dimasukkan ke tas sembarangan”.
Manajemen daya, sensor suhu, izin, firmware, dan kebijakan sistem operasi dapat bekerja berbeda-beda tergantung lingkungannya. Hibernate darurat pun pada dasarnya hanya merupakan lapisan pengaman tambahan.
Ada juga pengaturan untuk menangani permintaan izin secara otomatis saat penutup tertutup, tetapi karena pekerjaan dapat berjalan saat layar tidak terlihat, sebaiknya fitur ini digunakan dengan hati-hati.
Cakupan pengujian saat ini
Lingkungan yang paling banyak saya uji adalah Windows + Codex.
Dukungan untuk Linux, macOS, Claude Code, dan GitHub Copilot CLI memang sudah diimplementasikan, tetapi saya belum cukup banyak memakainya secara langsung dalam semua kombinasi. Jika Anda mencobanya di sistem operasi lain atau agen lain lalu menemukan hal yang aneh, silakan tinggalkan issue—ditulis dalam bahasa Korea pun tidak masalah—dan saya akan berusaha memperbaikinya semampu saya.
Pada akhirnya, LidGuard adalah alat kecil yang saya buat karena ingin memakai agen AI dengan sedikit lebih nyaman saat sedang berpindah tempat. Semoga ini juga membantu mereka yang pernah mengalami situasi serupa di bus, kereta bawah tanah, kafe, atau saat berpindah ruang rapat, ketika berpikir, “andai laptop ini tidak tidur dulu sampai pekerjaan ini selesai”.
6 komentar
Keren sekali. Apakah di Windows juga bisa mendeteksi Codex atau Cline yang diinstal di WSL?
Saya sempat mempertimbangkan pendekatan apa yang paling baik di lingkungan WSL, dan menyimpulkan bahwa pendekatan yang paling rapi adalah memanggil LidGuard yang terpasang di sisi Windows dari hook agen yang terpasang di Linux.
Terkait hal itu, saya sudah merilis patch 1.0.1 dan mencerminkan metode instalasi yang lebih detail di README(.ko).md, jadi Anda bisa memeriksanya di sana.
Atau, di
agent-install.mdyang memungkinkan agen menangani instalasi, saya juga sudah menambahkan prompt terkait deteksi lingkungan WSL, jadi di sana jugaSilakan dimanfaatkan! Saya tidak sengaja menekan tombol kirim di tengah jalan T_T
Ah, tidak, sepertinya saya belum mempertimbangkan situasi itu. Saya akan memikirkan cara mendukungnya!
Mungkin ini bukankah pujian setinggi-tingginya yang berarti, "secara logis ini adalah ide sempurna yang tidak bisa dikritik, dan saya iri serta dengki"?
Harap periksa bagian komentar pada panduan penggunaan situs.
Mohon berbicara dengan ramah dan sopan.
Mohon jangan menyerang penulis secara pribadi.
Jika ada sanggahan, mohon tuliskan hanya isi sanggahannya.