iOS Codex remote project picker does not mirror Desktop Codex projects

Open 💬 4 comments Opened May 23, 2026 by clamalo
💡 Likely answer: A maintainer (github-actions[bot], contributor) responded on this thread — see the highlighted reply below.

What version of the Codex App are you using?

  • Codex App: 26.519.41501 (build 3044)
  • Bundled Codex CLI in app: 0.133.0-alpha.1
  • Standalone Codex CLI / app-server daemon: 0.133.0
  • Host OS: macOS 26.5 (25F71), arm64
  • Mobile client: ChatGPT iOS app using Codex remote connections, observed through iPhone Mirroring

What subscription do you have?

ChatGPT Pro

What platform is your computer?

macOS arm64 host connected to ChatGPT iOS through Codex remote access.

What issue are you seeing?

When using ChatGPT on iOS to connect to a Mac running Codex Desktop, the mobile Codex project picker does not appear to mirror the projects saved in the Mac Codex Desktop app.

In my repro, a local project saved in Codex Desktop was missing from the iOS project picker, while another project shown on iOS was not present in Desktop Codex's saved project order. This makes the mobile project picker feel like it is using a separate source of truth from the desktop app.

This also appears to block a common Mac mini remote-agent setup: use the Mac mini as the always-on Codex host, then have that Mac connect onward to SSH remote projects that only the Mac can reach. The iOS app asks for a local path instead of exposing the Mac-managed remote project, so there is no usable path to select for a remote project that exists only through the Mac host.

In other words, this workflow does not work reliably:

iPhone ChatGPT app -> Mac mini Codex host -> SSH/VPN/private remote project

The phone should not need direct SSH/VPN access or a local path for the remote project. The Mac host already has the Codex Desktop state, SSH config, keys, network access, and/or VPN access.

What steps can reproduce the bug?

  1. On the Mac, open Codex Desktop.
  2. Add/save one or more local projects in Codex Desktop.
  3. Pair ChatGPT iOS Codex remote connections to that Mac.
  4. Open the Codex project picker in the iOS app.
  5. Compare the projects visible in iOS with the projects saved in Codex Desktop.
  6. Separately, configure a Mac-managed SSH remote connection/project in Codex Desktop, where the Mac can reach the SSH host but the phone may not be able to.
  7. Try to start or resume that Mac-managed SSH remote project from the iOS app.

I validated the iOS side through iPhone Mirroring. The iOS Codex screen showed the Mac host connected and listed only a subset/different set of projects.

I could not use Computer Use to directly inspect/click inside the Codex Desktop app because the automation layer refused access to com.openai.codex for safety reasons, so I validated the desktop side by reading Codex's local host state instead.

The host state showed saved desktop projects like this, with project names redacted:

{
  "project-order": [
    "/Users/<user>/Documents/<desktop-only-project>",
    "/Users/<user>/Documents/<shared-project>"
  ],
  "electron-saved-workspace-roots": [
    "/Users/<user>/Documents/<desktop-only-project>",
    "/Users/<user>/Documents/<shared-project>"
  ],
  "codex-managed-remote-connections": [
    {
      "hostId": "remote-ssh-discovered:<ssh-host>",
      "displayName": "<ssh-host>",
      "source": "discovered"
    }
  ],
  "selected-remote-host-id": "remote-ssh-discovered:<ssh-host>"
}

The iOS project picker for the connected Mac host showed:

<mobile-visible-project>
<shared-project>

So the desktop-saved project was missing from iOS, and the mobile-visible project was not part of Desktop Codex's saved project list.

What is the expected behavior?

The iOS Codex project picker should use the Mac Codex host's project state as the source of truth, or the UI should clearly explain that it is not showing Desktop Codex projects.

For local projects saved in Codex Desktop, the iOS project picker should show the same saved projects when connected to that Mac host.

For Mac-managed SSH remote projects, the iOS app should expose those projects as host-backed remote projects instead of requiring the phone to enter a local filesystem path. The phone should be able to say, effectively, "start this project through the connected Mac host," while the Mac handles the SSH connection and filesystem access.

Additional information

This seems related to:

Those issues discuss SSH remote projects not appearing in mobile remote control / mobile needing to configure SSH directly. This issue adds a concrete local-project mismatch: even before SSH remote project routing, the iOS project picker does not appear to mirror Desktop Codex's saved local projects for the connected Mac host.

Possible fix:

  • Use the connected Mac Codex host as the authoritative project source for iOS remote connections.
  • Include Desktop Codex saved local projects in the host app-server/project discovery response used by mobile.
  • Include Mac-managed SSH remote projects as first-class project entries, not as paths the phone has to resolve.
  • Preserve project identity across project list, thread list, thread resume, and turn start APIs.
  • Render local projects and SSH remote projects distinctly in the mobile picker.
  • If Mac-managed SSH remote projects are intentionally unsupported, show that explicitly in the mobile UI instead of presenting a path-entry flow that cannot work for them.

Workarounds:

  • For local Mac projects, manually adding a path from the iOS app may make a project appear, but that creates a separate/mobile-origin project entry and does not reliably mirror Desktop Codex's saved projects.
  • For SSH remote projects, the current workarounds are using Codex Desktop directly on the Mac, screen sharing into the Mac, configuring direct SSH from the phone if the phone can reach the host and has the right keys/VPN, or cloning/mounting the remote project onto the Mac as a local path.

View original on GitHub ↗

4 Comments

github-actions[bot] contributor · 3 months ago

Potential duplicates detected. Please review them and close your issue if it is a duplicate.

  • #22806
  • #23527
  • #23062
  • #23952
  • #24212

Powered by Codex Action

nurdgit · 2 months ago

Codex mobile connects successfully but only shows Chats, not Projects or SSH projects.
Reproduces with Windows host, WSL remote-control host, and Mac mini host.
Stale enrollment reset and re-pairing did not fix it.
Desktop Codex shows the projects; mobile picker does not.

jingweike · 1 month ago

Confirmed a deterministic narrower trigger on Codex/ChatGPT Desktop 26.715.31925 (build 5551), macOS 26.5.2 arm64, Codex CLI 0.144.1.

A project explicitly saved on the host but containing zero Codex tasks/threads is absent from the Remote project picker. After the project receives one local thread, it becomes remotely selectable. A project whose historical threads are all archived remains selectable, so visibility appears to depend on whether any thread record has ever existed rather than whether the project is registered.

Read-only diagnostics:

  • The remote host is reachable; unavailableHosts is empty.
  • The host’s Remote catalog contains five projects.
  • Local thread state contains history for exactly those same five project roots.
  • codex doctor --json passes installation, authentication, configuration, network, state-path, and rollout/database-parity checks. Its only failure is the expected TERM=dumb result from the noninteractive diagnostic shell.

Expected: Remote should mirror the host’s explicitly registered project catalog, including projects with tasks: [], without scanning or exposing arbitrary filesystem folders.

Suggested fix: build the Remote catalog from registered host projects ∪ thread-derived project buckets; preserve a registered project through zero → one → zero task transitions and remove it only after explicit unregister.

Minimum tests:

  1. Registered project plus empty thread/list remains returned.
  2. Refresh from one task to zero tasks preserves the project.
  3. Explicit unregister removes it.
  4. A new Remote task can target the returned empty-project ID.
JoelAlexander · 26 days ago

I can reproduce the desktop/remote project-list mismatch on Windows as well.

Environment

  • Codex / ChatGPT desktop app: 26.727.6591.0
  • Host OS: Windows 11 Pro, x64 (10.0.26200)

Key trigger

The project appears in the remote-project list only after I initiate a brand-new chat inside that project.

Moving an existing chat into the project does not make the project appear in the remote-project list. This suggests that new-chat creation updates or creates remote project metadata, while the move-existing-chat flow does not perform the same indexing/synchronization step.

Reproduction

  1. Open the ChatGPT/Codex desktop app on Windows.
  2. Create or select a local project.
  3. Move an existing chat into that project.
  4. Confirm that the project and moved chat appear normally in the desktop app.
  5. Open the remote-project picker for the connected Windows host.
  6. Observe that the project is absent.
  7. Return to the desktop app and initiate a new chat inside the same project.
  8. Reopen or refresh the remote-project picker.
  9. Observe that the project now appears.

Expected

Moving an existing chat into a project should register or refresh that project in the same way as initiating a new chat. The remote-project picker should show the project regardless of whether its first/current chat was newly created there or moved into it.

Actual

The desktop app shows the project after an existing chat is moved into it, but the remote-project list does not. Starting a new chat in the project causes it to appear remotely.

This looks like a missing project-index or synchronization update in the move-existing-chat path rather than general project data loss. It also confirms that the issue is not macOS/iOS-specific; the same behavior occurs with a Windows desktop host.