codex - 💡(How to fix) Fix Mobile Remote Control does not discover SSH remote project threads despite documented remote development environment support

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…

Code Example

{
  "method": "thread/list",
  "params": {
    "archived": false,
    "limit": 200,
    "sortKey": "updated_at",
    "sourceKinds": []
  }
}
RAW_BUFFERClick to expand / collapse

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

Codex Version 26.513.31313 (2867), Mobile ChatGPT App Version 1.2026.125

What subscription do you have?

Pro

What platform is your computer?

Darwin 24.6.0 x86_64 i386, IOS 26.4.2

What issue are you seeing?

Codex Desktop can connect to a project that lives in an SSH remote environment. The documentation says that, in this setup, a phone connects to the Codex App host while Codex works in the remote environment:

A remote development environment

Use an SSH host or managed devbox when the project already lives in a remote environment. Connect the Codex App host to that environment first; your phone still connects to the Codex App host, and Codex works in the remote environment with its dependencies, security policies, and compute resources.

For SSH setup details, see connect to an SSH host.

Source: https://developers.openai.com/codex/remote-connections

In practice, when an SSH remote project is visible and usable in Codex Desktop, Codex mobile Remote Control does not show that remote project or its threads. The mobile Projects list appears to be derived from the Desktop host's local thread/list response instead.

The observed mobile request is a plain local thread/list:

{
  "method": "thread/list",
  "params": {
    "archived": false,
    "limit": 200,
    "sortKey": "updated_at",
    "sourceKinds": []
  }
}

The response contains local Desktop-host threads with local cwd values. I did not observe a request that lists configured remote projects or proxies thread/list to the SSH remote app-server / remote Codex state.

What steps can reproduce the bug?

  1. Install Codex Desktop.
  2. Configure an SSH remote host or managed remote development environment.
  3. Connect a project that lives in that remote environment.
  4. Verify that the remote project appears and works in Codex Desktop.
  5. Start or resume one or more threads in that remote project.
  6. Pair Codex mobile / ChatGPT mobile with the Desktop host using Remote Control.
  7. Open the mobile sidebar and inspect Projects.

What is the expected behavior?

When Codex Desktop has an SSH remote project connected and working:

  1. Mobile Remote Control should show that remote project.
  2. Mobile should list the remote project's threads.
  3. Opening a remote thread from mobile should resume it successfully.
  4. Subsequent turns, file operations, approvals, and shell execution should run in the documented remote environment.

Instead, the SSH remote project and its threads are missing. Mobile appears to show projects inferred from local Desktop-host thread history.

Additional information

I checked the public openai/codex app-server code to understand whether this is only a sidebar issue or a deeper remote-thread lifecycle issue.

My reading is that the current public app-server contract does not seem to carry enough remote-project identity through the thread lifecycle. A mobile client can receive a Thread from thread/list, but that object does not appear to say which SSH host / remote project / remote environment owns it. Later calls such as thread/resume and turn/start also appear to address threads only by threadId inside the current app-server process.

That is the important part: if mobile gets a remote-looking thread row from the Desktop host, the Desktop host still needs a way to resolve that thread back to the SSH remote state. I could not find that bridge in the public code.

Supporting details:

  • ThreadListParams and Thread do not appear to carry environmentId, hostId, remotePath, or another remote-project identity.
  • thread/resume appears to load history through the current app-server's ThreadStore, not through a remote project/thread registry.
  • turn/start appears to address an already-loaded thread in the current app-server's thread_manager, so a remote thread must first be resolved into the correct remote execution context.

So this may require more than adding remote-looking rows to thread/list; remote thread resume also needs to resolve the backing remote state and associate it with the correct remote execution environment.

This is an important Remote Control workflow. SSH remote projects and managed devboxes let users run agents inside safer containers or remote development environments while controlling them from mobile through the paired Desktop app. That is the documented promise: the phone connects to the Codex App host, but Codex works in the remote environment with that environment's dependencies, security policies, and compute resources.

Related but different issues:

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING