Macのnosleepコマンド設定方法
初心者向けコピペ手順
- 更新日: 2026年8月29日
- 読了目安: 約16分
- 作業時間: 約5分

Macのnosleepコマンドは、指定した時間だけMacのスリープを防ぐ独自コマンドです。この記事の設定をコピーすれば、nosleep 2 のように時間を指定して使えます。
約5分で設定でき、通常終了でもCtrl-Cによる中断でもスリープ設定を元へ戻します。
リード
Macのnosleepコマンドは、長い動画書き出し、AIエージェントの処理、データ変換などが終わるまで、Macが途中で眠らないようにする独自コマンドです。この記事の設定をコピーすれば、nosleep 2 のように時間を指定するだけで使えます。
設定は約5分です。macOS標準の caffeinate と pmset を組み合わせ、予定時間が終わった時も、Ctrl-Cで途中終了した時も、スリープ設定を元へ戻す構成にしています。
冒頭コピー
長いAI作業を、Macの居眠りで止めない。
この記事で分かること
「Mac nosleep コマンド」で検索した人が欲しいのは、難しい電源管理の説明ではなく、そのままコピーして使える安全な設定でしょう。
この記事では、hashshnetで実際に使っている nosleep 関数をもとに、初めてターミナルを触る人でも設定できる順番で解説します。
- nosleepとは何か、macOS標準コマンドとの違い
- そのままコピーできる
.zshrcの設定 nosleep 1やnosleep 3の使い方- 管理者パスワード入力と成功表示の見方
- 終了、途中解除、強制的に戻す方法
- 設定が反映されない時の直し方
- Macを閉じる時やバッグへ入れる時の安全上の注意
- チームへ展開する時の確認項目
ゴール:この記事通りに進めると、約5分で nosleep <時間> が使えるようになります。追加アプリのインストールは不要です。
目次
- nosleepコマンドとは?
- この設定でできること・できないこと
- 設定前に準備するもの
- 最初にAIへ送るプロンプト
- ステップ1:ターミナルを開く
- ステップ2:設定ファイルをバックアップする
- ステップ3:nosleep関数を追加する
- ステップ4:設定を読み直して確認する
- ステップ5:時間を指定して使う
- 終了・途中解除・強制復元の方法
- よくあるエラーと対処法
- AIに聞くためのプロンプト集
- 実務での使い方
- FAQ
- まとめ
nosleepコマンドとは?
nosleepとは、指定した時間だけMacの自動スリープを抑え、時間終了後に元の状態へ戻すために、この記事で作るシェル関数です。
重要なのは、nosleep という名前のコマンドがmacOSへ最初から入っているわけではないことです。このMacでは ~/.zshrc に自作の関数として登録されています。ほかのメンバーのMacで nosleep と入力しても、設定前は command not found と表示されます。
関数の中では、macOS標準の2つの道具を使います。
pmset -a disablesleep 1でシステムのスリープを無効にするcaffeinate -dimsu -t 秒数で、画面・システム・ディスクなどのスリープを指定秒数だけ抑える- 処理が終わったら
pmset -a disablesleep 0で元に戻す
AppleのMacに最初から入っている caffeinate は、実行中だけスリープを抑える仕組みです。-t には秒数を渡すため、nosleep側で「時間×3600」を計算します。たとえば nosleep 2 なら7200秒です。
この組み合わせにしている理由は、長時間のAI処理や動画書き出し中に、画面やMac本体が眠って処理が止まる可能性を減らすためです。そして always という後片付け部分を置き、通常終了でもCtrl-Cによる中断でも復元処理が走るようにしています。
実機で確認した一次情報
2026年8月29日、このMacBookの ~/.zshrc 219行目以降にある関数を確認しました。実際の定義は、この記事のコピペ欄と同じです。
入力確認では nosleep abc を実行し、次の表示と終了コード2を確認しました。
Usage: nosleep <hours>
Example: nosleep 2
実測では、入力チェックから終了まで約0.65秒でした。誤った文字列では電源設定の変更へ進まず、安全に止まります。もう1つの実務上の工夫は、Ctrl-Cで中断しても Restoring sleep... を表示して復元する後片付けを入れていることです。
この設定でできること・できないこと
nosleepは、次のような「Macを開いたまま、決めた時間だけ長い処理を走らせる」場面に向いています。
- Claude CodeやCodexに長い作業を任せる
- Remotionや動画編集ソフトで書き出す
- 大きなファイルを圧縮・変換する
- 開発環境でビルドやテストを長時間動かす
- クラウドへのアップロード完了を待つ
一方で、万能ではありません。
- バッテリー切れは防げません
- アプリ自体のエラーやネット切断は防げません
- MacBookを閉じて持ち運ぶための機能ではありません
- OSアップデートや再起動を止める保証はありません
- 会社の端末管理ルールを上書きできるとは限りません
特に大事なのが、MacBookをバッグへ入れないことです。スリープしないまま閉じたMacは発熱する可能性があります。長時間使う時は、机の上で通気を確保し、できれば電源アダプターへ接続してください。終了後は必ず復元表示を確認します。
設定前に準備するもの
必要なものは4つです。
- macOSを使っているMac
- 管理者権限のあるユーザー
- Macのログインパスワード
- 5分ほどの作業時間
Homebrew、Node.js、追加アプリは不要です。標準のターミナル、zsh、caffeinate、pmsetだけで設定できます。
会社支給Macの場合は、管理者権限がないことがあります。その場合は勝手に制限を回避せず、情報システム担当者へ「pmsetを使うnosleep関数を追加したい」と相談してください。
最初にAIへ送るプロンプト
自分のMacの状態を確認しながら進めたい場合は、Claude CodeやCodexへ次を貼ってください。AIに設定を丸投げせず、変更前のバックアップと変更後の確認まで依頼する内容です。
Macに、指定した時間だけスリープを防ぐ nosleep コマンドを設定したいです。
完成条件:
- zshを使う
- ~/.zshrc に nosleep 関数を追加する
- nosleep 2 のように整数の時間を渡せる
- 引数を省略したら1時間にする
- 数字以外なら使い方を表示して、電源設定を変更しない
- 通常終了とCtrl-C中断の両方で、必ず pmset -a disablesleep 0 を実行する
- macOS標準の caffeinate と pmset だけを使う
安全条件:
- 最初に ~/.zshrc の日時付きバックアップを作る
- 既存の設定を消さない
- 同名のnosleep関数があれば、勝手に重複追加せず内容を見せる
- パスワードや秘密情報をチャットへ貼らせない
- 変更後は source ~/.zshrc と type nosleep で確認する
- エラーが出たら、原因を説明してから次の1手だけを提案する
まず現在のシェルと、既存のnosleep定義の有無を確認してください。
ステップ1:ターミナルを開く
Commandキーを押しながらSpaceキーを押し、「ターミナル」と入力してEnterを押します。白または黒い文字入力画面が開けばOKです。
現在zshを使っているか確認します。
echo $SHELL
/bin/zsh と表示されたら、そのまま進めます。別の文字が出る場合は、この記事の設定ファイルが読み込まれない可能性があるため、エラー対処を確認してください。
ステップ2:設定ファイルをバックアップする
設定を追加する前に、現在の .zshrc を日時付きでコピーします。すでにファイルがある人は保険になり、まだない人はエラーを無視して次へ進めます。
cp ~/.zshrc ~/.zshrc.backup-$(date +%Y%m%d-%H%M%S)
No such file or directory と出た場合は、まだ .zshrc がないだけです。次のコマンドで空のファイルを作ります。
touch ~/.zshrc
バックアップはホームフォルダに残ります。戻したくなった時に使うため、設定確認が終わるまでは削除しないでください。
ステップ3:nosleep関数を追加する
設定ファイルをMac標準のテキスト編集画面で開きます。
open -e ~/.zshrc
開いたファイルの一番下へ、次のコードをそのままコピーして貼り付け、Command+Sで保存してください。
nosleep() {
emulate -L zsh
local hours="${1:-1}"
if ! [[ "$hours" =~ '^[0-9]+$' ]]; then
echo "Usage: nosleep <hours>"
echo "Example: nosleep 2"
return 2
fi
local seconds=$((hours * 3600))
sudo pmset -a disablesleep 1 || return $?
{
echo "Sleep disabled for ${hours} hour(s). Press Ctrl-C to restore sleep."
caffeinate -dimsu -t "$seconds"
} always {
echo "Restoring sleep..."
sudo pmset -a disablesleep 0
}
}
すでに nosleep() { がある場合は、2つ目を追加しないでください。同じ名前が重複すると、後に書かれた定義が使われ、どちらが動いているか分かりにくくなります。既存部分とこの記事のコードを比較し、更新するなら既存部分だけを置き換えます。
コードがしていること
local hours="${1:-1}" は、入力された時間を受け取り、何も入力されなければ1時間にします。
数字以外を止める部分が、入力ミスから電源設定を守ります。現在の版は「1」「2」「10」のような0以上の整数だけを受け付けます。1.5 や 30m は使えません。
sudo pmset では管理者パスワードが必要です。ターミナルでパスワードを入力しても、黒丸や文字は表示されません。故障ではないので、そのまま正確に入力してEnterを押します。
最後の always は後片付けです。途中でCtrl-Cを押してもここへ進み、スリープ無効設定を0へ戻します。
ステップ4:設定を読み直して確認する
保存しただけでは、今開いているターミナルに新しい設定が反映されません。次を実行します。
source ~/.zshrc
何も表示されなければ通常は成功です。次に、nosleepが認識されているか確認します。
type nosleep
nosleep is a shell function のように表示されたら設定完了です。
入力チェックも確認できます。
nosleep abc
次の2行が表示され、パスワードを聞かれなければ成功です。
Usage: nosleep <hours>
Example: nosleep 2
ステップ5:時間を指定して使う
1時間だけ眠らせたくない時は、次のように実行します。
nosleep 1
2時間なら数字を2へ変えます。
nosleep 2
引数を省略すると1時間です。
nosleep
最初にMacのログインパスワードを求められます。入力後、次のような表示が出ます。
Sleep disabled for 2 hour(s). Press Ctrl-C to restore sleep.
このターミナル画面は閉じず、そのままにしてください。時間が終わると Restoring sleep... が表示され、もう一度パスワードを求められる場合があります。復元処理が完了して、入力できる行へ戻れば終了です。
何時間にすればよい?
処理の予想時間より少し長めにします。
- 30〜50分の処理:
nosleep 1 - 1〜2時間の処理:
nosleep 3 - 半日かかる処理:まず処理設計や電源・発熱対策を見直し、必要な範囲だけ指定
現在の関数は整数時間のみです。30分だけ使うために小数対応へ勝手に変えると、入力チェックや計算も直す必要があります。チームで同じ挙動を保つなら、整数時間のまま使うのが分かりやすいです。
終了・途中解除・強制復元の方法
予定より早く処理が終わったら、nosleepを実行しているターミナルでControlキーを押しながらCを押します。
Ctrl-C
Restoring sleep... と表示されれば、復元処理へ進んでいます。パスワードを聞かれたら入力してください。
ターミナルを誤って閉じた、Macが強制終了した、復元できたか不安という場合は、新しくターミナルを開いて次を実行します。
sudo pmset -a disablesleep 0
これはスリープ無効設定を解除するコマンドです。実行後、現在の設定を確認します。
pmset -g custom | grep -i disablesleep
環境によっては disablesleep の行が表示されないこともあります。その場合は、システム設定の「バッテリー」または「ロック画面」で通常のスリープ設定に戻っているか確認し、必要ならMacを再起動してください。
よくあるエラーと対処法
command not found: nosleep と表示される
症状:nosleep 1 を実行しても、コマンドが見つからないと表示されます。
原因:.zshrc を保存していない、設定を読み直していない、別のシェルを使っている可能性があります。
確認すること:type nosleep と echo $SHELL を実行します。
対処:source ~/.zshrc を実行し、もう一度 type nosleep を確認します。まだ見つからない場合は open -e ~/.zshrc でコードが保存されているか見ます。
parse error や bad pattern と表示される
症状:source ~/.zshrc の直後に英語のエラーが出ます。
原因:コピー時に {、}、引用符のどれかが欠けたか、コード欄以外の文字まで貼った可能性があります。
確認すること:追加したnosleep部分を、この記事のコードと上から1行ずつ比較します。
対処:バックアップへ戻すか、nosleep部分だけを一度削除してコピーし直します。エラー文に出た行番号の前後も確認してください。
パスワードを入力しても画面に何も出ない
症状:Password: の後に入力しても、文字や黒丸が表示されません。
原因:sudoのパスワード入力は、のぞき見防止のため表示されない仕様です。
確認すること:入力欄でカーソルが止まっていることを確認します。
対処:Macへログインする時のパスワードを正確に入力し、Enterを押します。3回失敗したら入力を止め、管理者アカウントか確認してください。
Sorry, try again. と表示される
症状:パスワード入力後にやり直しを求められます。
原因:パスワードが違う、入力言語が日本語、Caps Lockが有効などが考えられます。
確認すること:メニューバーの入力言語とCaps Lockを確認します。
対処:半角英数へ切り替えて再入力します。会社支給Macで管理者権限がない場合は、情報システム担当者へ相談してください。
Usage: nosleep <hours> と表示される
症状:nosleep 1.5、nosleep 30m、nosleep two などで使い方が表示されます。
原因:この関数は整数の時間だけを受け付けます。
確認すること:コマンドの後ろが0以上の半角整数か確認します。
対処:1時間なら nosleep 1、2時間なら nosleep 2 と入力します。小数や単位は付けません。
Ctrl-Cを押しても終わらないように見える
症状:Ctrl-Cの後に Restoring sleep... が出て、入力待ちになります。
原因:復元側のsudoが管理者パスワードを待っている可能性があります。
確認すること:画面の最後に Password: がないか見ます。
対処:パスワードを入力してEnterを押し、通常の入力行へ戻るまで待ちます。ターミナルを閉じる前に復元を終えてください。
ターミナルを閉じてしまった
症状:nosleepを動かしていた画面を閉じ、復元表示を確認できません。
原因:実行中のcaffeinateは終了しても、pmset側の設定が残った可能性があります。
確認すること:新しいターミナルを開きます。
対処:sudo pmset -a disablesleep 0 を実行します。バッグへ入れたり長時間放置したりする前に、必ず解除してください。
Macが途中で眠る、または処理が止まる
症状:nosleepを実行したのに処理が止まったように見えます。
原因:nosleepとは別に、バッテリー切れ、アプリのエラー、ネット切断、会社の端末管理設定などが考えられます。
確認すること:nosleepを実行したターミナルが開いているか、電源接続、アプリのエラー表示、通信状態を確認します。
対処:原因を切り分けます。スリープだけが原因と決めつけず、処理ログを確認してください。会社管理の制限は勝手に解除しないでください。
AIに聞くためのプロンプト集
AIへ相談する時は、画面に出たエラー文だけを貼ってください。Macのパスワード、顧客情報、秘密のキーは絶対に貼らないでください。
設定前に自分のMacを確認する
Macにnosleep関数を設定する前の確認を手伝ってください。
使っているMac:
echo $SHELL の結果:
type nosleep の結果:
既存設定を壊さない順番で、次に確認するコマンドを1つずつ教えてください。
.zshrc のエラーを直す
~/.zshrc にnosleep関数を追加した後、source ~/.zshrc でエラーが出ました。
表示されたエラー:
該当行の前後(秘密情報は削除済み):
原因候補を絞り、安全な直し方を初心者向けに説明してください。
nosleepが見つからない時
Macでnosleepを設定しましたが command not found と表示されます。
echo $SHELL の結果:
type nosleep の結果:
source ~/.zshrc の結果:
どこで反映が止まっているか診断し、次の1手を教えてください。
sudoで止まった時
nosleep実行中にsudoの画面で止まりました。
画面に表示された文章:
会社支給Macか個人Macか:
パスワードそのものは貼りません。管理者権限の問題か入力方法の問題か、確認順を教えてください。
解除できたか確認する
Macでnosleepを途中終了しました。スリープ設定が元に戻ったか確認したいです。
最後に表示された文章:
pmset -g custom の関連部分:
秘密情報を含まない確認方法と、戻っていない場合の安全な復元方法を教えてください。
チーム向けに同じ設定か確認する
複数のMacへ同じnosleep関数を設定しました。
各MacのmacOSバージョン:
各Macのecho $SHELLの結果:
type nosleepの結果:
入力エラーテストの結果:
端末ごとの差と、追加で確認すべき安全項目を一覧にしてください。
実務での使い方
AIエージェントの長時間処理
Claude CodeやCodexへ大きな調査、ビルド、記事生成、テストを任せる時に使えます。先に別ターミナルで nosleep 2 を動かし、その後にAIエージェントを開始します。
MacでAIエージェントを使う土台から整えたい場合は、AIエージェントMac環境構築の完全手順も参考にしてください。
動画や画像の書き出し
動画の書き出しは、画面を触らない時間が長くなります。終了予想が90分なら nosleep 2 のように少し余裕を持たせ、書き出し完了後はCtrl-Cで解除します。
大きなアップロードやデータ変換
クラウドストレージへのアップロード、CSV変換、バックアップ作成でも使えます。ただし通信切断やアプリの失敗は防げないため、完了ログは別に確認します。
チームへ配る時の運用
手順を共有するだけでなく、全員が次を確認すると事故が減ります。
type nosleepでシェル関数と表示されるnosleep abcがパスワードを求めずに止まる- 1時間のテストで開始表示が出る
- Ctrl-C後に
Restoring sleep...が出る - 復元が終わってからMacを閉じる
Codex自体の導入も進めるメンバーは、Codex CLIインストール完全ガイドから続けられます。
FAQ
Q. nosleepはMacに最初から入っていますか?
A. nosleepという名前のコマンドはmacOS標準ではありません。この記事では、macOS標準のcaffeinateとpmsetをまとめたシェル関数を .zshrc に追加して作ります。
Q. nosleepは追加料金やアプリのインストールが必要ですか?
A. この記事のnosleep設定に追加料金やアプリのインストールは不要です。Macに最初からあるターミナル、zsh、caffeinate、pmsetを使います。
Q. nosleep 2の「2」は何ですか?
A. nosleep 2の「2」はスリープを抑える時間数です。2時間なら nosleep 2、3時間なら nosleep 3 と入力します。
Q. 30分や1.5時間を指定できますか?
A. この記事のnosleep関数は整数時間だけに対応しています。30分や1.5時間は受け付けないため、少し長めの nosleep 1 や nosleep 2 を使い、処理が終わったらCtrl-Cで解除します。
Q. MacBookのふたを閉じても処理は続きますか?
A. nosleepを使っていても、MacBookのふたを閉じた状態での動作を保証するものではありません。発熱の危険もあるため、長時間処理中は開いたまま机に置き、バッグへ入れないでください。
Q. nosleepを止めるにはどうしますか?
A. nosleepを実行しているターミナルでCtrl-Cを押します。Restoring sleep... の後に復元が完了したことを確認し、不安な場合は sudo pmset -a disablesleep 0 を実行します。
Q. パスワードを毎回聞かれるのは正常ですか?
A. nosleepはpmsetで電源設定を変更するため、管理者パスワードを求められるのが正常です。パスワード不要にするためsudo設定を弱める方法は、安全性が下がるのでこの記事では勧めません。
まとめ
Macのnosleepコマンドは、.zshrc に関数を1つ追加すれば、nosleep 2 のような短い入力で長時間処理中のスリープを抑えられます。
設定の要点は3つです。
- 追加前に
.zshrcをバックアップする source ~/.zshrcとtype nosleepで反映を確認する- 終了後は
Restoring sleep...を見届け、Macを閉じる前に復元する
便利さより安全が優先です。電源と通気を確保し、実行中のMacBookをバッグへ入れないでください。チーム全員が同じ確認手順まで共有すれば、AI処理や動画書き出しを安心して任せやすくなります。
CTA
AI作業を止めないMacができたら、次は作業環境全体を整えましょう。AIエージェントMac環境構築の完全手順では、Homebrew、Git、Node.js、Claude Code、Codexまで、初心者向けにまとめています。
更新履歴
- 2026年8月29日:このMacBookの実際のnosleep関数を確認し、初版を公開。

