Mac効率化

Macのnosleepコマンド設定方法
初心者向けコピペ手順

  • 更新日: 2026年8月29日
  • 読了目安: 約16分
  • 作業時間: 約5分
ターミナル上のnosleepコマンドと眠らないMacBookを表したヒーロー画像
この記事の結論

Macのnosleepコマンドは、指定した時間だけMacのスリープを防ぐ独自コマンドです。この記事の設定をコピーすれば、nosleep 2 のように時間を指定して使えます。

約5分で設定でき、通常終了でもCtrl-Cによる中断でもスリープ設定を元へ戻します。

リード

Macのnosleepコマンドは、長い動画書き出し、AIエージェントの処理、データ変換などが終わるまで、Macが途中で眠らないようにする独自コマンドです。この記事の設定をコピーすれば、nosleep 2 のように時間を指定するだけで使えます。

設定は約5分です。macOS標準の caffeinatepmset を組み合わせ、予定時間が終わった時も、Ctrl-Cで途中終了した時も、スリープ設定を元へ戻す構成にしています。

冒頭コピー

長いAI作業を、Macの居眠りで止めない。

この記事で分かること

「Mac nosleep コマンド」で検索した人が欲しいのは、難しい電源管理の説明ではなく、そのままコピーして使える安全な設定でしょう。

この記事では、hashshnetで実際に使っている nosleep 関数をもとに、初めてターミナルを触る人でも設定できる順番で解説します。

  • nosleepとは何か、macOS標準コマンドとの違い
  • そのままコピーできる .zshrc の設定
  • nosleep 1nosleep 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つの道具を使います。

  1. pmset -a disablesleep 1 でシステムのスリープを無効にする
  2. caffeinate -dimsu -t 秒数 で、画面・システム・ディスクなどのスリープを指定秒数だけ抑える
  3. 処理が終わったら 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.530m は使えません。

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 nosleepecho $SHELL を実行します。

対処:source ~/.zshrc を実行し、もう一度 type nosleep を確認します。まだ見つからない場合は open -e ~/.zshrc でコードが保存されているか見ます。

parse errorbad pattern と表示される

症状:source ~/.zshrc の直後に英語のエラーが出ます。

原因:コピー時に {}、引用符のどれかが欠けたか、コード欄以外の文字まで貼った可能性があります。

確認すること:追加したnosleep部分を、この記事のコードと上から1行ずつ比較します。

対処:バックアップへ戻すか、nosleep部分だけを一度削除してコピーし直します。エラー文に出た行番号の前後も確認してください。

パスワードを入力しても画面に何も出ない

症状:Password: の後に入力しても、文字や黒丸が表示されません。

原因:sudoのパスワード入力は、のぞき見防止のため表示されない仕様です。

確認すること:入力欄でカーソルが止まっていることを確認します。

対処:Macへログインする時のパスワードを正確に入力し、Enterを押します。3回失敗したら入力を止め、管理者アカウントか確認してください。

Sorry, try again. と表示される

症状:パスワード入力後にやり直しを求められます。

原因:パスワードが違う、入力言語が日本語、Caps Lockが有効などが考えられます。

確認すること:メニューバーの入力言語とCaps Lockを確認します。

対処:半角英数へ切り替えて再入力します。会社支給Macで管理者権限がない場合は、情報システム担当者へ相談してください。

Usage: nosleep <hours> と表示される

症状:nosleep 1.5nosleep 30mnosleep 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変換、バックアップ作成でも使えます。ただし通信切断やアプリの失敗は防げないため、完了ログは別に確認します。

チームへ配る時の運用

手順を共有するだけでなく、全員が次を確認すると事故が減ります。

  1. type nosleep でシェル関数と表示される
  2. nosleep abc がパスワードを求めずに止まる
  3. 1時間のテストで開始表示が出る
  4. Ctrl-C後に Restoring sleep... が出る
  5. 復元が終わってから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 1nosleep 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つです。

  1. 追加前に .zshrc をバックアップする
  2. source ~/.zshrctype nosleep で反映を確認する
  3. 終了後は Restoring sleep... を見届け、Macを閉じる前に復元する

便利さより安全が優先です。電源と通気を確保し、実行中のMacBookをバッグへ入れないでください。チーム全員が同じ確認手順まで共有すれば、AI処理や動画書き出しを安心して任せやすくなります。

CTA

AI作業を止めないMacができたら、次は作業環境全体を整えましょう。AIエージェントMac環境構築の完全手順では、Homebrew、Git、Node.js、Claude Code、Codexまで、初心者向けにまとめています。

更新履歴

  • 2026年8月29日:このMacBookの実際のnosleep関数を確認し、初版を公開。