Clarify expected codex app-server thread visibility in Desktop history and why custom-client threads are recorded as vscode
I am evaluating whether a phone-oriented custom client built on codex app-server can create or resume threads that later appear in Codex Desktop history.
I do not need exact live-session takeover. I only need thread continuity:
- create or resume a Codex thread from a different client
- return to Codex Desktop later
- see the same thread and appended messages in the desktop app
I ran a local spike and got results that are promising, but confusing relative to the sourceKinds docs.
Environment
- Codex Desktop
0.118.0-alpha.2 - macOS
26.4.0 - local custom client launched via
codex app-server - custom
initialize.clientInfo.name = codex_mobile_mirror_spike - custom
thread/start.serviceName = codex_mobile_mirror_spike
Relevant docs
The codex app-server docs say:
thread/listdefaults to interactive sources only:cliandvscodesourceKindsincludesappServer
Source:
Reproduction
- Start
codex app-server. - Send
initializewith a custom client name. - Call
thread/start. - Call
turn/startwith a unique marker message. - Call
thread/read,thread/list, andthread/listwithsourceKinds: ["appServer"]. - Call
thread/resumeand append a second message withturn/start.
What I observed
thread/startsucceeded and created thread019d4fc4-e260-7373-b36a-1ccf899e4d95.- After the first turn, default
thread/listincluded that thread with preview: APPSERVER-SPIKE-20260402-205636: please reply with a short acknowledgement for interoperability testing.thread/resumealso worked, and a second turn appended successfully.- The surprising part is that the created thread was reported as
source: "vscode"in: thread/startthread/read- default
thread/list thread/listwithsourceKinds: ["appServer"]returned no results before or after the turns, including for this thread.
Why this is confusing
From the docs, I expected one of two things:
- A custom
app-serverclient createsappServerthreads, and Desktop may or may not show them. - A custom
app-serverclient createsvscode-like interactive threads, and Desktop shows them.
In practice, my custom client appears to get the second behavior, but the docs do not explain whether that is expected and stable.
Questions
- Is it expected that a custom client using
codex app-servercreates threads that are persisted assource: "vscode"rather thansource: "appServer"? - Is Desktop thread-history visibility for custom
app-serverclients considered supported behavior, or is this currently incidental? - If custom clients are expected to appear in Desktop history, should the docs say that explicitly?
- If
appServeris intended to be a real persisted source kind for custom clients, what conditions actually produce it?
Why this matters
This determines whether it is viable to build a phone-native Codex companion client on top of official APIs instead of relying on remote desktop control.
Remote-control approaches such as Sunshine, Moonlight, and RustDesk can move pixels around, but they are poor fits for Codex's split-pane desktop UI on a phone. Thread continuity is a much better product shape if it is officially supported.
Suggested docs clarification
It would help a lot if the docs explicitly answered one of these:
- Custom
app-serverclients create Desktop-visible interactive threads by default. - Desktop only guarantees history visibility for some thread source kinds.
appServerthreads are different from Desktop-visible interactive threads, and custom clients need a specific integration path to get Desktop interoperability.
References
- Codex App Server docs: https://developers.openai.com/codex/app-server/
- Codex IDE extension docs: https://developers.openai.com/codex/ide/
- Codex repo: https://github.com/openai/codex
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗