ガイド · 夜間のエージェント実行
AIエージェントを夜通しMacで実行(スリープさせない)
長いClaude CodeのリファクタリングやCodexのバッチを走らせ、時計をちらりと見て、席を離れます — ベッドへ、あるいは会議へ。計画は単純です。あなたがいない間にエージェントが作業を進め、朝には結果を読む。ところが戻ってみると、Macはスリープしていて、実行は何時間も前に止まっています。このガイドでは、なぜmacOSのスリープが夜間のエージェント実行を止めてしまうのか、実行を生かし続ける電源とセッションの設定、そして Perked がその一切をどう自動化するのか — エージェントが働いている間だけ起きたままにし、終わった瞬間にMacをまたスリープさせる仕組みを説明します。
なぜmacOSのスリープが夜間の実行を止めるのか
macOSには2種類のスリープがあり、無害なのはそのうちの一方だけです。ディスプレイのスリープは画面を消すだけ — エージェントは真っ暗な画面の裏で動き続け、夜間にはまさにそれが望ましい動作です。問題はシステム(アイドル)スリープの方です。キーボード・トラックパッド・マウスの操作がしばらくないと、macOSはマシン全体を眠らせます。CPUは停止し、バックグラウンドのプロセスは凍りつき、ネットワーク接続は切れます。コーディングエージェントはこれらのどの操作にも数えられないため、システムから見れば、エージェントがCPUを回している最中でも、放置されたMacはアイドルに見え — 実行の途中でスリープさせられてしまいます。
よくある思い込みは、電源につないだMacなら自分から起きたままでいる、というものです。そうではありません。アイドルスリープには電源接続時にも作動するタイマーがあり、標準の時間がバッテリー駆動より長いだけです。だから充電したまま机に置いたノートも、ジョブの開始から1〜2時間で結局スリープに落ち、エージェントのセッションも道連れになります。夜通しの実行を完走させるには、Macをその後もずっと起きたままにすることなく、アイドルスリープをピンポイントで打ち消す必要があります。
効いてくる電源設定
macOSはスリープの挙動を、標準ツールの`pmset`で公開しています。関連するキーが何をするのか — そして手動で操作する方法がどこで力不足になるのか — を知っておく価値があります。
pmset -gは現在の電源設定を表示します。`sleep`(システムがスリープするまでのアイドル分数 — `0`は「しない」)と`displaysleep`(画面だけが消えるまでの分数)を見比べてください。ディスプレイのスリープを切っても、システムのスリープは止まりません。これらは別々のタイマーです。sudo pmset -c disablesleep 1は乱暴な手段です。電源接続時のアイドルスリープを完全に止めます。管理者パスワードが必要で、全体に効くうえオンにしたことを忘れやすく、作業しているかどうかに関係なくマシンを起きたままにします — だから`0`に戻すのを思い出すまで、こっそりバッテリーを消耗させたり閉じたノートを過熱させたりしかねません。- 電源アダプタ接続 vs. バッテリー。 pmsetは別々のプロファイルを持ちます。`-c`は電源アダプタ(AC)側、`-b`はバッテリー側、`-a`は両方を一度に設定します。macOSはバッテリー駆動ではずっと積極的にスリープするので、夜通しの実行では基本的にMacを電源につないでおきたいところです — ただし電源接続時でも、変更しない限りアイドルスリープのタイマーは効いたままです。
ここで厄介なのは、これがすべて、実行の前に入れて後で戻すことを覚えておかなければならない、手動で全体に効くオール・オア・ナッシングのスイッチだという点です — 忘れれば、Macは二度と自分からはスリープしなくなります。
セッションを生かし続ける:tmuxと切り離した実行
起きたままにするのは問題の半分にすぎません。SSH越しのターミナルや、あとで閉じるウィンドウの中でエージェントを始めると、その接続やセッションが消えたときに実行も死ぬことがあります — 一度もスリープしていないMacでもです。解決策は永続的なセッションです。tmux(またはscreen)の中でエージェントを始め、そこから切り離せば、プロセスはセッションの下で動き続けます。あとからどこからでも再接続でき、中断したところからそのまま続けられます。コマンドを`nohup`や、バックグラウンドジョブとして走らせるのも、単発のスクリプトには似た役目を果たします。
ただしセッションの永続性とスリープは別々の話で、混同しがちです。tmuxはプロセスを生きたセッションにつなぎ止めますが、その下のマシンをmacOSがアイドルスリープさせるのを止めるわけではありません。スリープしたMac上では、切り離したtmuxセッションもやはり凍りついています — プロセスは保たれても、前に進んではいません。両方が必要です。実行が接続断を乗り越えるための永続的なセッションと、Macが一晩じゅうそのセッションを走らせ続けるための起きたまま維持です。
終わりを知る:完了通知
夜通しの実行は、終わったこと — あるいは止まってあなたを必要としていること — を伝えられれば、もっと役立ちます。ターミナルにつきっきりにならずに合図を受け取る、軽い方法をいくつか挙げます。
osascript -e 'display notification "Run finished" with title "Agent"'はコマンドの最後にmacOSネイティブの通知を出すので、戻ったときにバナーが待っています。`&&`でエージェントの後につなげば、成功したときだけ知らせます。say "the run is done"は合図を声で読み上げます — 同じ部屋にいても画面から離れているときに便利です。ターミナルのビープ音(`printf '\a'`)も、ターミナルがそれを表示する設定なら使えます。- スマホへのプッシュ。 ntfyやPushoverのようなサービスへの1行のcurlをコマンドに付け足せば、スマホに通知が届きます — 本当に外出しているときに役立ちます。いくつかのエージェントは、タスクが完了したときにコマンドを実行できる独自のフックも備えています。
Lock & Leave:スリープさせずに席を立つ
Macを一晩じゅう起きたまま、ロックもせず机に置いておくのは理想的ではありません。macOSでは⌃⌘Qで画面をロックできますが、セキュリティを考えるなら、ロックと実行の継続を一手でやるのが賢い動きです。Perkedの「Lock & Leave」(画面をロックしたまま稼働)はまさにそれをします。⌥⌘Aを押すと、セッションは起きたまま、エージェントは働き続けたまま、画面がロックされます。ディスプレイは暗くなりマシンは保護されますが、その下の実行は決して止まりません — 安心して席を立ち、仕上がった仕事に戻ってこられます。
Perkedが役立つところ
Perked は、こうしたすべてを自動化し、あなたが何も覚えておかずに済むようにするmacOSのメニューバーアプリです。標準で22のコーディングエージェント — Claude Code、Codex、Cursor、Gemini CLI、Aiderなど — に加え、自分で追加した任意のアプリを自動検知し、そのどれかが実際に動いている間だけMacを起きたままにします。実行を始めて席を立つだけ。Perkedが代わりに起きたまま維持を引き受け、`pmset`も、戻すべきフラグもありません。
エージェントがしていることに結びついているので、もう半分の問題も解決します。最後のエージェントが終わると、PerkedはひとりでにMacをまたスリープさせるので、夜通しの実行が「一日じゅう起きたままのMac」になることはありません。電源状態に配慮し — 電源アダプタ接続や自分で設定したバッテリー残量を条件にでき — 蓋を閉じても動作し、「Lock & Leave」と組み合わさるので、実行を止めずに画面を保護できます。
買い切りで、価格は€1から — 現在は€1、そして支払った額はずっと固定されます。
夜間のエージェント実行のFAQ
電源につないだMacは、夜間のエージェント実行のあいだ自分から起きたままでいますか?
いいえ。macOSのアイドルスリープには電源接続時にも作動するタイマーがあり、バッテリー駆動より遅れて発火するだけです — だから充電中のMacも実行の途中でスリープし、エージェントを止めてしまいます。アイドルスリープをピンポイントで打ち消す必要があり、pmsetを使うか、エージェントが動いている間だけ自動でそれを行うPerkedのようなアプリを使います。
エージェントをtmuxで走らせれば、Macはスリープしなくなりますか?
いいえ。tmuxはセッションを生かし続けるので、実行は接続断や閉じたウィンドウを乗り越えますが、macOSがマシンをアイドルスリープさせるのを止めることは何もしません。スリープしたMac上では、切り離したセッションは凍りついています。起きたまま維持も必要です — 永続性のためのtmuxと、Macを一晩じゅう走らせ続けるPerkedのようなものです。
夜通しの実行が終わったとき、どうすれば通知を受け取れますか?
コマンドの最後に通知役をつなげます。osascript -e 'display notification …' はmacOSネイティブのバナーを出し、say は声で読み上げ、ntfyやPushoverへの1行のcurlはスマホにプッシュします。多くのエージェントには、タスクが完了したときにコマンドを実行できるフックもあります。
Macをロックしたまま、エージェントを働かせ続けられますか?
はい。Perkedの「Lock & Leave」は⌥⌘Aで画面をロックし、その間セッションは起きたままなので、ディスプレイは保護されて暗くなっても、下でエージェントは働き続けます。実行が終わると、PerkedはひとりでにMacをまたスリープさせます。