Codex App notification doesn't work when using it with remote connection

Resolved 💬 14 comments Opened May 4, 2026 by yiteng-guo Closed Aug 26, 2026

What version of the Codex App are you using (From “About Codex” dialog)?

26.429.30905

What subscription do you have?

API

What platform is your computer?

remote linux; desktop macOS

What issue are you seeing?

Codex App should show a notification when a turn completes according to "Turn completion notifications" configuration. This works for a local chat but doesn't work for a remote project. I can't get a notification after a turn completes in a remote project.

What steps can reproduce the bug?

  • Create a remote project.
  • Ask codex "sleep 3s"
  • Put Codex App in the background.
  • No notification received after 3s.

What is the expected behavior?

_No response_

Additional information

_No response_

View original on GitHub ↗

14 Comments

yiteng-guo · 3 months ago

The remote cli version is

codex-cli 0.128.0
ishaanrathodd · 3 months ago

can confirm this

dharamf · 2 months ago

I asked Codex to debug and it captured a local-vs-remote comparison with macOS notification logs, and this looks like the remote path never calls the native notification API.

Setup:

  • Desktop app on macOS [Version 26.602.71036]
  • Remote project connected over SSH / Coder
  • Test shape: put Codex in the background, run a short turn, wait for completion

Local run works:

  • 22:26:14 Codex loses focus: kLSNotifyLostFrontmost
  • 22:26:24 Codex calls addNotificationRequest for com.openai.codex
  • usernoted logs scheduled for delivery
  • usernoted logs Presenting ... as banner

Relevant local log excerpts:

Codex ... [com.openai.codex] Adding notification request 1D37-6FBA to destinations: Default
usernotificationsd ... [com.openai.codex] Forwarding addRequest: com.openai.codex
usernoted ... Added request <NotificationRecord app:"com.openai.codex" ...>
usernoted ... successfully processed by pipeline, scheduled for delivery.
usernoted ... Delivering ... to [ .alert .lockScreen .notificationCenter ]
usernoted ... Presenting ... as banner (["badge", "sound", "alert"])

Remote run fails:

  • 22:28:53 Codex loses focus: kLSNotifyLostFrontmost
  • 22:31:21 Codex loses focus again
  • There is no matching addNotificationRequest
  • There is no Forwarding addRequest: com.openai.codex
  • There is no Presenting ... as banner
jonathanlaniado · 2 months ago

Has anyone figured out any workarounds for this?

jonathanlaniado · 1 month ago

Still having this issue.

arthurlapertosa · 1 month ago

Same issue here on Windows with ChatGPT/Codex Desktop 26.715.7063.0. Local conversations correctly produce Windows toast notifications when turns finish, but conversations running through remote connections do not produce a toast; only the blue completion/unread indicator appears on the chat item in the sidebar. Turn completion notifications are enabled. This used to work in the standalone Codex app, but stopped after the transition into the unified ChatGPT desktop app. Please investigate and fix this regression, since reliable completion notifications are especially important for long-running remote workflows.

clamalo · 1 month ago

Additional code evidence from the current macOS ChatGPT app, which includes Codex:

  • App version: 26.721.30844
  • Bundle ID: com.openai.codex
  • Platform: macOS

I inspected the packaged renderer code. The desktop notification setup registers turn-complete notifications for the local app-server manager. It then starts the same service for each non-local manager with this option:

includeTurnNotifications: false

The service creates its addTurnCompletedListener(...) only when that option is not false. Approval and question listeners are outside this condition. This explains why remote SSH or remote-control threads can still ask for approval or input, but do not show a macOS turn-complete notification.

The effective structure is:

[
  startNotificationService(localManager, options),
  ...nonLocalManagers.map(manager =>
    startNotificationService(manager, {
      ...options,
      includeTurnNotifications: false,
    })
  ),
]

The Dock badge uses a separate shared unread count. It does not directly exclude remote threads. However, it can count a remote thread only after the remote completion state enters the shared unread list. This can explain why both the banner and Dock number are absent when the remote completion state is not added or synchronized.

Cloud remote tasks use a different path. The app checks only the newest 20 current tasks. It checks every 15 seconds while a task is running and every 60 seconds otherwise. The first result only creates a baseline. A notification is sent only after the app observes has_unread_turn change from false to true. This path can miss a completion if the first check occurs after completion, if the task is outside the newest 20, or if the state change is not observed.

The local logs contain show turn-complete entries. I found no corresponding remote-turn-... notification entries.

For remote-host threads, removing the forced includeTurnNotifications: false setting, with suitable duplicate-notification tests, appears to be the direct fix. The cloud-task path would be more reliable with a direct completion event instead of transition-only polling.

ma08 · 1 month ago

Confirming this still reproduces on a newer unified ChatGPT desktop build, and our runtime evidence independently matches the includeTurnNotifications: false finding above.

Setup:

  • macOS ChatGPT desktop app 26.721.41059
  • Linux GCP VM connected as an SSH remote host
  • Remote Codex CLI/app-server 0.145.0 (latest stable at test time)
  • Turn completion notifications set to Always

Fresh A/B test on July 24, 2026:

  • Local Mac thread completed at 16:47:03 PDT.
  • Desktop logs emitted:
  • [desktop-notifications] show turn-complete
  • [notifications-service] forward show kind=turn-complete
  • [desktop-notifications] show notification kind=turn-complete
  • GCP SSH thread completed at 16:47:24 PDT.
  • The remote Codex notify hook received the exact agent-turn-complete payload at 16:47:25 PDT, proving the remote app-server emitted completion normally.
  • The ChatGPT desktop app emitted no corresponding show turn-complete, forward show, or show notification entry.

Additional isolating evidence:

  • A later request_user_input question from an active thread on the same GCP SSH host successfully produced a native desktop notification:
  • [desktop-notifications] show question
  • notification ID contained question-remote-ssh-discovered:...
  • Therefore the SSH connection, remote thread synchronization, macOS notification permissions, and general remote notification path are working. The missing behavior is specifically remote turn-completion notification registration/selection.

This strongly corroborates the packaged-code observation that question/approval listeners remain active for non-local managers while turn-completion listeners are explicitly excluded.

_Written by Codex via the developer's authenticated GitHub account._

youyun863 · 22 days ago

I can reproduce a closely related issue with Codex Remote on iPhone.

Environment:

  • iPhone 17 Pro Max
  • Latest iOS and latest ChatGPT mobile app
  • macOS Codex desktop app on my Mac
  • Mobile Remote connected to the Mac

When a Codex task finishes on the Mac and returns to the state where it is waiting for the user's next instruction, my iPhone often receives no completion notification. This is especially disruptive because I cannot remain in front of the computer while longer Codex tasks are running.

I also sometimes see delayed or missing approval notifications through Remote. The mobile app may only reflect the completed state after I reopen or manually refresh it.

Expected behavior:

  • Prompt completion notifications when the remote task finishes
  • Prompt notifications when approval or additional user input is required
  • Notifications should work while the phone is locked or the app is in the background

I can provide additional screenshots, timestamps, reproduction details, or testing assistance if needed.

Falbahar55 · 17 days ago

I can confirm this issue with Codex Remote on macOS + iPhone.

Setup:

  • ChatGPT/Codex desktop app on macOS: version 260807.1515
  • Subscription: Pro
  • iPhone connected to the Mac through Codex Remote
  • The remote connection itself works correctly: I can open the same Codex thread from the iPhone and monitor/control it remotely
  • Codex notifications are enabled in ChatGPT notification settings on iPhone
  • Other ChatGPT push notifications reach the iPhone normally

Observed behavior:

  • I have never received a Codex push notification on the iPhone when a remote turn/task completes.
  • I have to manually open Codex on the phone and check whether the task has finished.
  • This has been the behavior since I started using Codex Remote, not just a recent one-off failure.

Expected behavior:

  • When a Codex turn running on the connected Mac completes, the linked iPhone should receive a push notification while the ChatGPT app is not open.

Given that normal ChatGPT push notifications work on the same iPhone and Codex notifications are enabled, this appears specific to the Codex Remote completion-notification path rather than iOS notification permissions.

exevil · 7 days ago

Still reproducible with Mac-to-Mac Remote Control. Tasks and scheduled automations run on the remote Mac mini, but the controlling Mac never receives completion notifications. Local notifications work and permissions are enabled.

Submitted through /feedback: 01a01efd-f7eb-7742-8cb2-3cabaf53d2dc (no logs attached).

yiteng-guo · 7 days ago

Looks like this is fixed in 26.818.22352! I'll close this if I see other people report the same thing.

arthurlapertosa · 7 days ago

@yiteng-guo on the windows version it wasn't 😕
I guess I'll open a new issue specifically for windows

yiteng-guo · 2 days ago

closing this since I'm able to confirm this works on two macbooks.