メインコンテンツへスキップ
Codexのリモート接続を安定化させる|Macのスリープ対策を実体験で解説

Codexのリモート接続を安定化させる|Macのスリープ対策を実体験で解説

2026年07月22日
2026年07月22日
5 分
テック AI ChatGPT Codex
1283 文字

Tailwind CSS chat bubble component

スマホからCodexへ接続できるようにしたのに、翌朝になったらつながらなくなっていた…。

MacBookの蓋は開けていたのに、どうして?

Tailwind CSS chat bubble component

原因はMac本体のアイドルスリープでした。

ChatGPT側の設定だけでなく、Mac側のスリープ設定も確認すると、リモート接続をかなり安定させられます。

この記事のポイント#

スマホから自宅のMacで動くCodexへリモート接続する
スマホから自宅のMacで動くCodexへリモート接続する

先に結論

  • Codexのリモート接続は、ホストのMacがスリープすると止まる
  • ChatGPTの「実行中はスリープしない」をオンにする
  • リモート設定の「このMacをスリープさせない」もオンにする
  • 常時接続したい場合は、AC接続中のアイドルスリープをMac側でも無効にする
  • 今回は設定変更後、約12時間スリープせずリモート接続を維持できた

Codexのリモート接続が翌朝つながらなくなった#

Macがスリープするとリモート接続が切れる
Macがスリープするとリモート接続が切れる

Codexのリモート接続を使うと、ChatGPTのモバイルアプリから自宅のMacで動いているCodexへ指示を送れます。

育児中など、パソコンを開く時間が取りにくいときにかなり便利です。

ところが、MacBookの蓋を開け、電源アダプターも接続した状態で一晩置いたところ、翌朝はリモートから接続できなくなっていました。

最初はネットワークの問題を疑いましたが、実際の原因はMac本体のスリープでした。

OpenAIの公式マニュアルにも、ホストのパソコンがスリープする、ネットワークを失う、ChatGPTアプリを閉じる、のいずれかが起きるとリモートアクセスが停止すると書かれています。

つまり、リモート接続を安定させるには、次の3つが必要です。

  1. Mac本体が起動している
  2. ネットワークにつながっている
  3. ChatGPTアプリが動いている

まずMacがスリープしたのか確認する#

pmsetログからスリープ原因を確認する
pmsetログからスリープ原因を確認する

Macのスリープ履歴は、ターミナルのpmsetコマンドで確認できます。

次のコマンドは、Sleep、Wake、DarkWakeの主要なイベントを直近30件まで表示します。

BASH
1
2
3
pmset -g log \
  | grep -E "Entering Sleep|Wake from|DarkWake from" \
  | tail -30

それぞれの意味は次のとおりです。

表示意味
Entering SleepMac本体がスリープへ入った
Wake from通常の起動状態へ復帰した
DarkWake from画面を点灯せず、メンテナンスなどのため一時的に起動した

DarkWakeは通常の起動とは違う

DarkWakeが記録されていても、普段どおりリモート操作できるとは限りません。

短時間だけ処理をして、再びスリープへ戻ることがあります。

今回のログでは、次の流れが確認できました。

1
2
3
07:08:58 ChatGPTのNoIdleSleepAssertionが解除
07:09:03 Entering Sleep state due to 'Idle Sleep'
08:17:04 キーボード操作で通常のWake

ChatGPTのスリープ防止要求が解除されてから、わずか5秒後にMacがアイドルスリープへ入っていました。

Macは再起動やクラッシュをしていません。眠っていたため、リモートから接続できなかったということです。

画面が暗いだけか、本体も寝ているかを見分ける#

MacBookの画面が暗くなっていても、本体までスリープしているとは限りません。

現在の電源状態は、次のコマンドで確認できます。

BASH
1
pmset -g systemstate

今回、通常起動中は次のように表示されました。

1
2
Current System Capabilities are: CPU Graphics Audio Network
Current Power State: 4

この環境では、CPU、画面描画、音声、ネットワークが利用でき、Power State: 4になっていることを通常起動の判断材料にしました。

画面だけを消灯させるのは問題ありません。リモート接続で重要なのは、Mac本体がスリープしていないことです。

ChatGPT側のスリープ防止設定をオンにする#

ChatGPTの2つのスリープ防止設定をオンにする
ChatGPTの2つのスリープ防止設定をオンにする

まず、ChatGPTデスクトップアプリの設定を変更します。

「実行中はスリープしない」をオンにする#

ChatGPTの設定にある、次の項目をオンにします。

1
2
実行中はスリープしない
ChatGPT がタスクを実行中はコンピューターをスリープさせません

OpenAIの公式マニュアルでは、この設定は英語でPrevent sleep while runningと案内されています。

長いタスクを任せて離席するときは、必ずオンにしておきたい設定です。

「このMacをスリープさせない」をオンにする#

リモート接続の設定には、次の項目もあります。

1
2
この Mac をスリープさせない
電源接続中でリモートアクセス有効時はスリープしないようにします

これもオンにします。

OpenAIの公式マニュアルでは、MacBookをホストにする場合、蓋を開け、電源へ接続し、ホスト側の設定でスリープを防ぐよう案内されています。

ここまでがChatGPT側の基本設定

2つの設定をオンにすると、タスク実行中やリモートアクセス中にMacがスリープしにくくなります。

常時接続したいならMac側のスリープ設定も確認する#

AC接続中のMac本体を起動状態に保つ
AC接続中のMac本体を起動状態に保つ

今回のMacでは、最初に次の設定になっていました。

1
2
AC Power:
 sleep 1

sleep 1は、AC電源につないでいてもアイドル状態が続くと短時間で本体がスリープする設定です。

ChatGPTの防止要求が動いている間は問題ありません。しかし、防止要求が何らかの理由で一瞬でも途切れると、すでにアイドル時間を超えているため、すぐスリープする可能性があります。

「タスクの実行中だけでなく、何もしていない状態からいつでもスマホで接続したい」場合は、Mac側でもAC接続中のアイドルスリープを無効にしておくと安定します。

現在の設定を確認する#

BASH
1
pmset -g custom

AC Powerにあるsleepを確認します。

AC接続中のアイドルスリープを無効にする#

BASH
1
sudo pmset -c sleep 0

パスワードの入力中は文字が表示されません。そのままMacのログインパスワードを入力して、Returnキーを押します。

このコマンドの意味は次のとおりです。

部分意味
sudo管理者権限で実行する
pmsetMacの電源管理設定を変更する
-c電源アダプター接続中の設定だけを変更する
sleep 0アイドルによるシステムスリープを無効にする

Macのローカルpmsetマニュアルでも、-cは充電器接続時、sleep0は無効化を意味します。

バッテリー時まで無効にしない

常時接続が目的でも、-aで全電源状態を変更するのはおすすめしません。

バッテリー駆動中までスリープを無効にすると、電源アダプターが外れたときにバッテリーを使い切る可能性があります。今回はAC接続中だけを対象にしました。

設定できたか確認する#

設定後、もう一度確認します。

BASH
1
pmset -g custom

次のようにAC Powersleep0なら設定完了です。

1
2
3
AC Power:
 displaysleep 15
 sleep 0

displaysleep 15は、画面を15分で消灯する設定です。

本体のアイドルスリープを無効にしても、画面は別に消灯できます。画面を一晩中点灯させる必要はありません。

現在の電源がACかバッテリーかは、次のコマンドで確認できます。

BASH
1
pmset -g batt

AC接続中は、次のように表示されます。

1
Now drawing from 'AC Power'

Battery Powerと表示された場合は、電源アダプターが外れています。その状態ではバッテリー側のスリープ設定が使われます。

スリープ防止要求も確認できる#

現在、どのアプリがスリープを防いでいるかは次のコマンドで確認できます。

BASH
1
pmset -g assertions

今回、タスク実行中はChatGPTが次の要求を出していました。

1
2
PreventUserIdleSystemSleep 1
ChatGPT: NoIdleSleepAssertion named: "Electron"

この表示があれば、ChatGPTがアイドルスリープを防止しています。

ただし、常時リモート接続を目的にするなら、この一時的な要求だけへ依存しないほうが安全です。今回のように要求が解除されるタイミングがあるためです。

Mac側をsleep 0にしていれば、ChatGPTの要求が一時的に途切れても、AC接続中のアイドルスリープは発生しません。

一時的にスリープを防ぐならcaffeinateも使える#

Macの設定を恒久的に変更したくない場合は、caffeinateも使えます。

BASH
1
caffeinate -s

-sは、AC接続中にシステムスリープを防ぐ指定です。

ターミナルで実行している間だけ有効で、Ctrl+Cを押すと終了します。

使い分けは次のとおりです。

方法向いている場面
ChatGPTのスリープ防止設定タスク実行中に離席する
caffeinate -s数時間だけ一時的に起動しておく
sudo pmset -c sleep 0AC接続中はいつでもリモート接続したい

設定変更後に半日テストした結果#

朝から夜までリモート接続を検証する
朝から夜までリモート接続を検証する

設定変更後は、スマホから定期的にCodexへ接続し、状態を確認しました。

確認した内容は次のとおりです。

  • Current Power State: 4で通常起動を維持
  • UserIsActive: 0でもスリープしない
  • 約12時間、Sleepイベントなし
  • ChatGPT/Codexのローカルサーバーが稼働
  • スマホから継続してチャット可能

UserIsActive: 0は、キーボードやトラックパッドを操作していない状態です。

つまり、誰もMacを触っていなくても、AC接続中のsleep 0が効いて起動状態を維持できました。

今回の結果

ChatGPT側の2つの設定と、Mac側のAC接続時スリープ無効化を組み合わせることで、リモート接続は安定しました。

常時起動するときの注意点#

MacBookを風通しのよい場所で常時起動する
MacBookを風通しのよい場所で常時起動する

MacBookを常時起動しても、何もしていない時間までCPUが全力で動くわけではありません。

今回の確認ではCPUの約85%がアイドルで、温度・性能警告もありませんでした。

ただし、次の点には注意します。

  • 硬く平らで、風通しのよい場所へ置く
  • 布やクッションの上へ置かない
  • 電源アダプターが外れていないか確認する
  • macOSとChatGPTアプリを更新する
  • 本体が熱い、ファンが回り続ける場合はアクティビティモニタを確認する
  • 使わない期間は手動でスリープまたはシャットダウンする

Appleも、電源接続中にディスプレイがオフでも自動スリープさせない設定を用意しています。一方で、スリープを遅らせたり無効にしたりすると消費電力は増えます。

元の設定へ戻す方法#

常時接続が不要になったら、たとえばAC接続中のアイドルスリープを10分へ戻せます。

BASH
1
sudo pmset -c sleep 10

変更後は、必ず次のコマンドで確認します。

BASH
1
pmset -g custom

まとめ#

Codexのリモート接続が切れたときは、ネットワークだけでなくMac本体のスリープも確認する必要があります。

今回の原因は、ChatGPTのスリープ防止要求が解除された直後に、Macがアイドルスリープへ入ったことでした。

対策は次の3段階です。

  1. ChatGPTの「実行中はスリープしない」をオンにする
  2. リモート設定の「このMacをスリープさせない」をオンにする
  3. 常時接続したい場合はsudo pmset -c sleep 0で、AC接続中のアイドルスリープを無効にする

画面は消灯したままで大丈夫です。

蓋を開け、電源とネットワークを維持し、ChatGPTアプリを起動しておけば、スマホからCodexを使いやすい状態を保てるので困っている方はぜひ参考にしてみてくださいね!

Thanks for reading!

最後まで読んでくれてありがとう🔥


関連記事