AI ajanını çalıştırıp otobüs veya metroda dizüstünü kapatıp inebilmek için yaptığım program: LidGuard geliştirme hikâyesi
(github.com/airtaxi)Yolda sık sık dizüstü bilgisayarla kod yazıyorum. Özellikle son zamanlarda, Codex gibi yapay zeka kodlama ajanlarına biraz zaman alacak işleri bırakma durumum daha sık oldu.
Sorun, otobüs ya da metrodan inerken ortaya çıkıyordu.
Prompt zaten verilmiş, ajan hâlâ işlem yapıyor ama dizüstünün kapağını kapatırsam uyku moduna geçip iş yarıda kesilebiliyor. Bu yüzden sık sık dizüstünü yarım kapatıp ekran açık şekilde elimde taşıyarak iniyor, biraz daha bekliyor ya da işi kesip sonra yeniden devam ettiriyordum.
Önemsiz bir rahatsızlık gibi görünebilir ama tekrarlandıkça epey can sıkıcı olmaya başladı.
Bu yüzden yaptığım şey
LidGuard, yerel bir yapay zeka kodlama ajanı çalışırken dizüstünün uykuya geçmesini engelleyen ve iş bittiğinde güç politikasını yeniden eski hâline döndüren bir güç yönetimi aracıdır.
Kabaca şu akışı hedefleyerek yaptım.
- Ajana uzun sürecek bir iş verirsiniz.
- Hareket etmeniz gerektiğinde dizüstünün kapağını kapatırsınız.
- Ajan çalışırken uyku ve kapak kapatma kaynaklı uyku geçici olarak engellenir.
- İş bittiğinde orijinal güç ayarları geri yüklenir.
- Ayarlara göre uyku moduna veya hazırda bekletmeye geçilir.
Benim için en hoş kısım özellikle sonuncusu. Sadece “kapak kapalıyken de çalışmaya devam etsin” noktasında kalırsa, kullanıcı sonradan yine bununla ilgilenmek zorunda kalıyor. LidGuard ise ajan işi bitirdikten sonra dizüstünün de birlikte dinlenmesini hedefliyor.
Neden ayrı bir araç yaptım
Mevcut uyku engelleme programlarına da baktım.
Benim araştırdığım kadarıyla çoğu şu yaklaşımlardan birine yakındı.
- Belirli bir süreç çalışıyorsa uykuyu engelleyen yöntem
- Zamanlayıcı açık tutan yöntem
- Kullanıcının elle açıp kapattığı yöntem
- Yalnızca dizüstü kapağı açıkken oluşan uykuyu engelleyen yöntem
Benim istediğim ise biraz farklıydı.
- Kapak kapatıldığında devreye giren uyku davranışını da geçici olarak değiştirmek
- Yapay zeka ajanı oturumunun gerçekten ne zaman bittiğini bilmek
- Bittiğinde orijinal güç politikasını geri yüklemek
- Gerekirse otomatik olarak uykuya ya da hazırda bekletmeye geçirmek
Bu yüzden desteklenen ajanlarda hook tabanlı şekilde işin başlangıcını ve bitişini izlemeyi sağladım. Yani bu araç, “bilgisayarı ne olursa olsun sürekli açık tutan bir araç”tan çok “ajan çalıştığı sürece bilgisayarı uyanık tutan bir araç”a daha yakın.
Eklediğim özellikler
İlk başta Windows'ta yalnızca Codex sorunsuz çalışsa yeter diye düşünmüştüm. Çünkü en çok kullandığım ortam Windows, ajan olarak da neredeyse hep Codex kullanıyorum.
Ama geliştirirken bunun oldukça genel bir sorun olabileceğini düşündüm ve özellikleri yavaş yavaş genişlettim.
- Windows, systemd/logind tabanlı Linux ve macOS güç kontrolü
- Codex, Claude Code, GitHub Copilot CLI entegrasyonu
- İş tamamlandıktan sonra otomatik uyku veya hazırda bekletme
- Kapak kapalıyken yetki istemi işleme ayarı
- Belirli bir süre etkinlik olmayan oturumlarda uyku engelini kaldırma
- Sıcaklık sensörüne göre acil hazırda bekletme
Benim dizüstüm Windows on ARM çalıştırıyor; bu yüzden ajan işleri seviyesinde yük altında çantanın içinde aşırı ısınma pek yaşamıyor. Yine de kapağı kapalı bir dizüstünü açık halde taşırken dikkatli olmak gerektiğini düşündüğüm için, desteklenen ortamlarda sıcaklık belli bir seviyeyi aşarsa anında hazırda bekletme ya da uyku denemesi yapan bir özellik de ekledim.
Dikkat edilmesi gerekenler
LidGuard, “dizüstünü çantaya nasıl olursa olsun koyabilirsiniz” anlamına gelmiyor.
Güç yönetimi, sıcaklık sensörleri, yetkiler, firmware ve işletim sistemi politikaları ortama göre farklı çalışabilir. Acil hazırda bekletme de sonuçta yardımcı bir güvenlik önlemine yakın.
Kapak kapalıyken yetki istemlerini otomatik işleyen ayarı da kullanabilirsiniz; ancak ekranı görmeden işlem devam edebileceği için bunu dikkatli kullanmak daha doğru olur.
Mevcut test kapsamı
En çok test ettiğim ortam Windows + Codex.
Linux, macOS, Claude Code ve GitHub Copilot CLI desteğini de ekledim; ancak tüm kombinasyonları yeterince gerçek kullanımda denemiş değilim. Başka işletim sistemlerinde ya da başka ajanlarla kullanırken garip bir durum fark ederseniz, Türkçe değil Korece yazsanız bile sorun değil, issue açarsanız elimden geldiğince düzeltmeye çalışırım.
Sonuç olarak LidGuard, hareket hâlindeyken yapay zeka ajanlarını biraz daha rahat kullanmak istediğim için yaptığım küçük bir araç. Otobüs, metro, kafe ya da toplantı odası arasında geçerken “şu iş bitsin de ondan sonra dizüstü uyusa” diye düşündüğünüz anlar olduysa, size de faydalı olmasını umarım.
6 yorum
Harika. Windows'ta WSL'ye kurulan Codex ya da Cline'ı da algılayabiliyor mu?
WSL ortamında en iyi yaklaşımın ne olacağını düşündüm; Linux’a kurulu ajan hook’undan Windows tarafına kurulmuş LidGuard’ı çağırmanın en temiz yaklaşım olduğuna karar verdim.
Bununla ilgili olarak 1.0.1 yamasını yayınladım ve ayrıntılı kurulum yöntemini README(.ko).md dosyasına yansıttım; oradan kontrol edebilirsiniz.
Veya kurulumu ajana bırakmanızı sağlayan agent-install.md dosyasına da WSL ortamı algılamasıyla ilgili bir prompt ekledim, orayı da
Kullanabilirsiniz! Yanlışlıkla ortada gönder düğmesine bastım hıçkırık
Ah, hayır, sanırım o durumu hiç düşünmemiştim. Bunu nasıl destekleyebileceğimizi düşüneceğim!
Belki de bu, "Mantıken yerilecek hiçbir yanı olmayan kusursuz bir fikir ve ben de bunu kıskanıyorum" anlamına gelen büyük bir övgü değil midir?
Site kullanım kılavuzu içindeki yorum yazma bölümünü lütfen kontrol edin.
Lütfen nazik ve saygılı bir üslupla konuşun.
Lütfen yazarı hedef almayın.
Bir itirazınız varsa yalnızca o içeriği yazın