要点まとめ
- Cursor、Mac版Codexアプリ、Windsurfは、タスク完了や承認待ちの際にmacOS通知センターへデスクトップ通知を送ります。
- エディタごとにWebhookやフックを設定する代わりに、NotiFerryでmacOS通知センターの新着アラートをiPhoneの無料ntfyアプリへ転送できます。
- 1つの設定でCursor、Codex、Claude Code、Xcodeの通知をすべて同じiPhoneトピックへまとめられます。
- プロンプトやソースコードの断片を隠したい場合は「アプリ名とタイトルのみ」または「汎用通知」を選べます。
Cursor・Codex・WindsurfがMacで通知を出すタイミング
最新のAI搭載IDEやデスクトップエージェントは、長時間タスクの完了時やユーザーの判断が必要なタイミングでmacOSのネイティブ通知を発行します。
- Cursor(Agent / Background Agent): ウィンドウが非アクティブな状態でエージェントのターンが完了したときや、ターミナルコマンドの実行承認(Run command)を求めるときにmacOS通知を送ります。
- Codex(Macデスクトップアプリ & CLI): タスク完了時やサンドボックス外の操作承認が必要なときにmacOS通知(CLIの場合はターミナル経由のOSC通知またはフック)を発行します。
- Windsurf(Cascade): 長時間のCascadeフローが一時停止または完了した際に、macOS通知センターへアラートを送ります。
まず システム設定 → 通知 を開き、お使いのエディタの「通知を許可」がオンになっており、通知スタイルが「バナー」または「通知」になっていることを確認してください。また、エージェント実行中に別ウィンドウへ切り替える(または画面をロックする)ことで、エディタが「ユーザーが画面を見ていない」と判断して確実に通知を発行します。
AIエディタの通知をiPhoneで受け取る3つの方法
| 方法 | 対応ツール | 特徴・トレードオフ |
|---|---|---|
| macOS通知センター転送(NotiFerry + ntfy) | Cursor、Codex、Windsurf、Claude Code、Xcodeすべて | 1回の設定で全ツールに対応。エディタ側のスクリプト設定が不要。買い切りライセンス(7日間無料トライアルあり)。 |
| CLIラッパー / シェルフック + ntfy | ターミナルから起動するコマンド・フック対応CLIのみ | 完全無料(ntfy.shまたはセルフホスト)。ただしCursorやWindsurfのGUIチャット内の承認待ちにはフックできない。 |
| 画面共有・リモートデスクトップで常時確認 | すべてのデスクトップアプリ | スマホから画面は見えるが、「いつ終わったか」のプッシュ通知は来ないため、何度も画面を開いて確認する必要がある。 |
NotiFerryでCursor・Codexの通知をiPhoneへ転送する手順
- macOSの通知設定を確認:
システム設定 → 通知でCursor、Codex、Windsurf(およびGhosttyやiTerm2などのターミナル)の通知が許可されていることを確認します。 - NotiFerryをインストールしてフォルダを許可: NotiFerryはフルディスクアクセス(Full Disk Access)を要求せず、macOS通知センターの単一フォルダ(
group.com.apple.usernoted)への読み取り専用アクセスのみを使用します。 - iPhoneのntfyアプリでQRコードをスキャン: App Storeから無料のntfyアプリをインストールし、NotiFerryが表示するランダムな専用トピックのQRコードを読み取ってテスト通知を受信します。
- 対象アプリとプライバシーモードを選択: 転送対象リストでCursorやCodexにチェックを入れます。プロンプト内容やファイル名を伏せたい場合は、「アプリ名とタイトルのみ」または「汎用通知」を選択します。
代替案:ターミナルコマンドにntfyのcurlを繋げる(CLIのみ)
GUIエディタではなくターミナルからエージェントやテストを実行している場合は、コマンドの末尾にcurlを繋げるだけで無料でiPhoneへ通知を送れます。
codex "認証ミドルウェアのリファクタリングとテスト実行" \
&& curl -s -H "Title: Codex 完了" -d "タスクが正常に完了しました" https://ntfy.sh/your-private-topic \
|| curl -s -H "Title: Codex エラー" -H "Priority: high" -d "コマンドが停止しました" https://ntfy.sh/your-private-topicシェルスクリプトやterminal-notifierと組み合わせる方法は、terminal-notifier・CLI通知をiPhoneへ送るガイドで詳しく解説しています。
MacとiPhoneでの動作イメージ
macOSの通知センターフォルダに読み取り専用アクセスを許可し(フルディスクアクセス不要)、iPhoneの無料アプリ「ntfy」で専用トピックを購読します。テスト通知の受信を確認すると、7日間の無料トライアルが開始されます。

よくある質問
CursorやCodexには、タスク完了をiPhoneへ直接プッシュ通知する機能はありますか?
デスクトップのローカル作業セッションについては、標準のiPhoneプッシュ機能はありません。Cursor、Mac版Codexアプリ、Windsurfは、エージェントの実行完了やコマンド承認待ちの際にmacOS通知センターへデスクトップ通知を送りますが、AppleはMacローカルの通知をiPhoneへミラーリングしないため、ntfyスクリプトまたはmacOS通知転送アプリが必要になります。
Claude CodeとCursorを併用している場合、同じiPhoneトピックで両方受け取れますか?
はい。NotiFerryはmacOS通知センターから読み取るため、Cursor、Codex、Windsurf、GhosttyやiTerm2で動くClaude Code、さらにXcodeのビルド完了通知まで、ツールごとに別々の設定を行うことなく1つの専用ntfyトピックへまとめて転送できます。
コードの断片やファイルパスをiPhoneのロック画面に表示させないことはできますか?
はい。NotiFerryでは、通知全文を送る「Full Notification Text」以外に、「App & Title Only(アプリ名とタイトルのみ)」または本文を一切含めない「Generic Notification(汎用通知)」を選べます。これにより、CursorやCodexが入力を待っていることだけを把握し、プロンプトやパスの本文をntfyサーバーへ送らない運用が可能です。
エディタのウィンドウを閉じたり最小化したりしても通知は届きますか?
はい、エージェントのプロセスが動作しておりmacOS通知センターへバナーや通知を送る限り転送されます。むしろ、エディタが最前面(フォーカス状態)にあるときは通知を抑制するアプリが多いため、別のウィンドウに切り替えたり画面をロックして席を離れたりしたときのほうが確実に通知が発生します。