ターミナルガイド
caffeinate コマンドで Mac をスリープさせない
macOS には caffeinate という小さなコマンドラインツールが標準で付いています。ビルドやダウンロード、長いAIコーディングセッションなど、大事な処理が動いている間、Mac がスリープするのを防ぎます。標準搭載なのでインストールは不要で、ターミナルを開けばすでに /usr/bin/caffeinate にあります。このガイドでは、各フラグの働き、ターミナルにそのまま貼り付けられる例、そして頼りにする前に知っておきたい制限を紹介します。
caffeinate とは
caffeinate コマンドは、一時的なスリープアサーション — あるタイプのスリープを保留するよう macOS に求めるリクエスト — を作成します。フラグなしでは、アイドルスリープを防ぎ、あなたが止めるまでそのアサーションを保持します。実行するプログラムを渡すと、そのプログラムが動いている間だけアサーションを保持し、終わると自動的に解放します。そのため、実行時間が事前にわからない単一のコマンドを包むのに最適です。
管理者権限は不要で、ディスクには何も書き込まず、ログイン項目も追加しません。コマンドが終了すればアサーションは消え、Mac は通常の電源動作に戻ります。
フラグ一覧
これらの1文字のフラグを組み合わせて、どの種類のスリープを止めるかを正確に指定します。まとめて書けるので、-di は -d -i と同じです。
| フラグ | 働き |
|---|---|
-d | ディスプレイのスリープを防ぎます(画面が点いたままになります)。 |
-i | システムのアイドルスリープを防ぎます。フラグを一切指定しなかったときの既定の動作です。 |
-m | ディスクのアイドルスリープを防ぎます。 |
-s | システムのスリープを完全に防ぎます。このアサーションが有効なのは電源アダプタ接続時のみで、バッテリー駆動時は無視されます。 |
-u | ユーザーがアクティブであることを宣言します。ディスプレイが消えていれば点け直します。-t がなければ既定で5秒のタイムアウトになります。 |
-t <seconds> | アサーションを解除するまでの秒数を指定します。プログラムを起動するときはこのタイムアウトは無視されます。 |
-w <pid> | 指定した PID のプロセスが終了するまで待ってから、アサーションを解放します。あわせてプログラムを起動する場合は無視されます。 |
コピーして使える例
いずれもターミナルに貼り付けてください。それぞれが完結したコマンドです。
caffeinate -i bun run buildビルドを実行し、かかる時間だけ Mac を起きたままにします — ビルドが終わった瞬間にアサーションが解放されます。
caffeinateフラグもプログラムも指定しないと、Control-C で止めるまでアイドルスリープを防ぎます。
caffeinate -di -t 3600ディスプレイとシステムの両方を起きたままにし、3600秒(1時間)後に自動でアサーションを解除します。
caffeinate -w 12345PID 12345 のプロセスが終了するまでアサーションを保持します — 別の場所で始めたジョブを見守るのに便利です。
caffeinate -s make長いジョブが動いている間、システムの完全なスリープを防ぎます。注意:-s は電源アダプタ接続時のみ有効です。
落とし穴と制限
caffeinate は大ざっぱな道具です。つまずきやすい点がいくつかあります。
- バッテリーを考慮しない。 -s(電源アダプタ接続時のみ有効)を除けば、caffeinate はバッテリー駆動時でも平気で Mac を起きたままにし、残量を使い切ってしまいます。安全なバッテリー残量という概念はありません。
- 消し忘れたセッション。 プログラムもタイムアウトも付けない素の caffeinate は、止めるまで動き続けます。うっかり起動して、そのまま離れ、Mac を何日も起きたままにしがちです。
- ターミナルを開いたままにする必要がある。 アサーションは caffeinate プロセスとともに存在します。そのターミナルのタブやウインドウを閉じると、アサーションも一緒に消えます。ログアウトでも終了します。
- 自動検知がない。 caffeinate は、あなたのエージェントがまだ動いているのか、10分前に終わったのかを判断できません。毎回、手動で起動して止めます。
- -s は電源アダプタ接続時のみ。 システムの完全なスリープを防ぐアサーションはバッテリー駆動時には黙って無視されるため、それに頼るスクリプトは電源を抜くとスリープしてしまうことがあります。
メニューバーアプリが caffeinate に勝るとき
caffeinate は、終わりを見届けられる単発のコマンドには最適です。しかし AI コーディングエージェントを日常的に動かすなら、手動の起動/停止やバッテリー配慮のなさがすぐに面倒になります。その隙間を埋めるのが Perked です。macOS ネイティブのメニューバーアプリで、面倒な管理をあなたの代わりに引き受けます。
- エージェントを自動検知。 29 種類のコーディングエージェント — Claude Code や Cursor など — をはじめから認識し、実際に動いている間だけ Mac を起きたままにします。
- 電源状態に配慮したルール。 電源アダプタ接続時のみ、または自分で設定したバッテリー残量を超えている場合のみ起きたままにするので、うっかりバッテリーを消耗させることはありません。
- タイマー付きセッション & Lock & Leave。 (画面をロックしたまま稼働)一定時間だけ起きたままにしたり、セッションを続けたまま画面をロックしたりできます。
- 終わればまたスリープ。 消し忘れるセッションも、見張るターミナルのタブもありません — 作業が終わった瞬間に Mac を解放します。
よくある質問
caffeinate は macOS に標準搭載されていますか?
はい。caffeinate はどの新しめの macOS にも /usr/bin/caffeinate として付属しています — インストールは不要です。ターミナルを開いて実行してください。
caffeinate はバッテリー駆動時も Mac を起きたままにしますか?
-i と -d のアサーションはバッテリー駆動時も働きますが、caffeinate はバッテリーを考慮せず、残量を消耗させます。-s のシステムスリープ用アサーションは、電源アダプタ接続時でなければ無視されます。
caffeinate はどうやって止めますか?
動いているターミナルで Control-C を押すか、プログラムの終了・PID の終了・-t タイムアウトの経過で自然に終わるのを待ちます。そのターミナルのタブを閉じても止まります。
caffeinate は AI エージェントの開始と終了を検知できますか?
いいえ。caffeinate は完全に手動で、起動と停止はあなたが決めます。Perked のようなメニューバーアプリは、コーディングエージェントを監視し、実際に動いている間だけ Mac を起きたままにします。
長いエージェントセッションを動かしていますか?Claude Code・Cursor・AIエージェントのために Mac を起きたままにする方法をご覧ください。