AIエージェントを走らせたまま、バスや地下鉄でノートPCを閉じて降りたくて作ったプログラム LidGuard 制作記
(github.com/airtaxi)移動中にノートPCでコーディングをすることがよくあります。特に最近は、Codex のような AI コーディングエージェントに、少し時間のかかる作業を任せておくことが増えました。
問題は、バスや地下鉄で降りるときでした。
プロンプトはすでに投げてあり、エージェントはまだ処理中なのに、ノートPCのふたを閉じるとスリープに入って作業が途切れることがあります。そこで、ノートPCを半分だけ閉じて画面をつけたまま持って降りたり、少しだけ待ったり、いったん作業を中断してあとで再開したりしていました。
大したことのない不便に見えるかもしれませんが、繰り返されるとなかなか気になるものでした。
そこで作ったもの
LidGuard は、ローカル AI コーディングエージェントが作業中のあいだノートPCがスリープしないように防ぎ、作業が終わったら元の電源ポリシーに戻す電源管理ツールです。
おおよそ次のような流れを目標に作りました。
- エージェントに時間のかかる作業を任せます。
- 移動しなければならなくなったらノートPCを閉じます。
- エージェントの作業中は、スリープと、ふたを閉じたときのスリープを一時的に防ぎます。
- 作業が終わったら元の電源設定を復元します。
- 設定に応じてスリープまたは休止状態に入ります。
個人的には最後の部分がいちばん気に入っています。単に「ふたを閉じても動き続ける」で終わると、結局あとでユーザーがもう一度気にかける必要がありますが、LidGuard はエージェントの作業が終わったあと、ノートPCも一緒に休ませることを目標にしました。
なぜ別に作ったのか
既存のスリープ防止プログラムも探してみました。
私が調べた範囲では、ほとんどが次のどれかに近いものでした。
- 特定のプロセスが実行中ならスリープを防ぐ方式
- タイマーを動かしておく方式
- ユーザーが手動でオン・オフする方式
- ノートPCのふたが開いているときのスリープだけを防ぐ方式
私が欲しかったものは少し違いました。
- ふたを閉じたときのスリープ動作まで一時的に変えること
- AI エージェントのセッションが実際に終わるタイミングを知ること
- 終わったら元の電源ポリシーに復元すること
- 必要なら自動でスリープまたは休止状態に移すこと
そのため、対応しているエージェントでは hook をベースに作業の開始と終了を追跡するようにしました。「コンピューターを無条件にずっと起こしておくツール」というより、「エージェントが働いているあいだだけ起こしておくツール」に近いです。
入れてある機能
最初は Windows で Codex だけきちんと動けば十分だと思っていました。私が主に使っている環境が Windows で、エージェントもほぼ Codex だからです。
ところが作っているうちに、この問題はかなり一般的かもしれないと思えてきて、機能を少しずつ追加しました。
- Windows、systemd/logind ベースの Linux、macOS の電源制御
- Codex、Claude Code、GitHub Copilot CLI との連携
- 作業終了後の自動スリープまたは休止状態
- ふたを閉じた状態での権限要求処理の設定
- 一定時間アクティビティのないセッションのスリープ防止解除
- 温度センサー基準の緊急休止状態
私のノートPCは Windows on ARM なので、エージェントの作業程度ではカバンの中で極端に熱くなることはあまりありません。それでも、閉じたノートPCの電源を入れたまま移動するのは注意が必要だと思っているので、対応環境では温度が一定レベルを超えたら即座に休止状態またはスリープを試みる機能も入れました。
注意点
LidGuard は「ノートPCを何も考えずにカバンへ入れてよい」という意味ではありません。
電源管理、温度センサー、権限、ファームウェア、OS のポリシーは環境ごとに異なる動作をすることがあります。緊急休止状態も、あくまで補助的な安全装置に近いものです。
ふたを閉じた状態で権限要求を自動処理する設定も使えますが、画面を見ていないあいだに作業が進むことになるため、慎重に使ったほうがよいです。
現在のテスト範囲
もっとも多くテストした環境は Windows + Codex です。
Linux、macOS、Claude Code、GitHub Copilot CLI 対応も実装してありますが、私自身がすべての組み合わせを十分に実運用で試せているわけではありません。ほかの OS や別のエージェントで使ってみて気になる点を見つけたら、イシューとして残していただければ、できるだけ修正してみます。
結局のところ、LidGuard は、移動しながら AI エージェントをもう少し快適に使いたくて作った小さなツールです。同じように、バスや地下鉄、カフェ、会議室への移動中に「この作業だけ終わるまでノートPCが眠らないでいてほしい」と感じたことのある方の助けにもなればうれしいです。
6件のコメント
すばらしいですね。WindowsでWSLにインストールしたCodexやClaude Codeも検知できますか?
WSL環境で最もよいアプローチが何か考えてみたところ、LinuxにインストールされたエージェントのフックからWindows側にインストールされたLidGuardを呼び出すのが最もすっきりしたアプローチだと判断しました。
これに関連して1.0.1パッチを上げており、詳しいインストール方法はREADME(.ko).mdに反映してあるので、そちらで確認できます。
または、エージェントにインストールを任せるagent-install.mdにもWSL環境検知に関するプロンプトを入れておいたので、そちらを
ご活用いただいて大丈夫です! 誤って途中で送信ボタンを押してしまいました(涙)
あっ、いいえ。その状況は考慮していなかったようです。どのように対応するか検討してみます!
もしかするとこれは「論理的にはけなす余地のない完璧なアイデアで、嫉妬と羨望を覚えます」という絶賛なのではないでしょうか
サイトの利用方法 のコメント投稿項目をご確認ください。
親切で穏やかな話し方をしてください。
投稿者を狙い撃ちするような発言はしないでください。
反論がある場合は、その内容だけを書いてください。