Repository navigation
Allow Codex Desktop to connect to an externally managed App Server #40134
Description
What variant of Codex are you using?
App
What feature would you like to see?
Codex App Server already supports stdio, WebSocket, and Unix socket transports, and the Codex CLI can connect to an existing App Server with codex --remote. Codex Desktop does not appear to provide a documented way to connect to an externally managed App Server.
Please allow Codex Desktop to connect to an existing App Server endpoint at startup, for example:
open -a Codex --args --remote unix:///path/to/codex-app-server.sockor:
open -a Codex --args --remote ws://127.0.0.1:4500A persistent setting such as desktop.app_server_endpoint would also be useful.
Required behavior:
- Desktop and another trusted local client can connect to the same App Server.
- Threads created by either client appear immediately in Desktop.
- Both clients receive thread and turn notifications.
- Desktop can navigate directly to externally created threads.
- Either client can append turns to an idle thread.
- Active-writer and approval ownership are explicitly defined.
- Disconnecting one client does not leave a lock that blocks the other.
- Local WebSocket and Unix socket connections support capability-token authentication.
- Existing
codex://threads/<thread-id>navigation works for externally created threads.
The App Server must support multiple collaborating clients, not merely multiple transport connections.
Additional information
Related issues document narrower symptoms of the current split-process approach:
- Desktop sidebar does not live-register threads created by external app-server until restart #36363: externally created threads are not registered in the running Desktop sidebar until restart.
- Desktop never resumes threads that appear while the app is running (created by an external app-server client) - endless loading, resumeState=null, until app restart #30916: threads created by an external App Server can open with an endless loading state until Desktop restarts.
This request is broader than those bugs: it asks for a supported Desktop startup/configuration mode that connects Desktop and trusted local integrations to the same App Server instance, with explicit multi-client lifecycle and ownership semantics.
Official App Server documentation: https://learn.chatgpt.com/docs/app-server
Activity
SIMON-WORLD commentedon Sep 3, 2026
Concrete production use case for this request from a trusted local orchestration integration.
I currently have a working flow roughly like:
The external App Server path itself works well for sustained execution. In a recent Windows production test, a thread created this way ran for roughly 16 minutes, modified files, ran tests, committed and pushed its work, and remained durably readable through App Server afterward.
The operational gap was human visibility: because the orchestrator and Codex Desktop were attached to separate App Server processes, the successfully created thread was not live-registered in the already-running Desktop sidebar. That is the same core failure mode tracked in #36363, now reproduced in a real Windows orchestration workload rather than a short synthetic thread.
For this use case, returning to UI automation is not desirable. The App Server protocol is already the appropriate execution boundary; what is missing is a supported way for Desktop and a trusted local controller to participate in the same authoritative server/session plane.
Current upstream work appears to make this direction even more relevant:
thread/startedto connections of the running server.I do not assume that this means Desktop can already attach to an externally managed daemon; that is still the capability requested by this issue.
One additional distinction may be important for the eventual contract: sharing the App Server appears to solve only part of the problem. #40935 reports that a custom client connected to the exact App Server process used by Desktop can create a task that is immediately visible/openable in Desktop, while the App Server
projectIdand Desktop saved-project assignment still remain separate.So the desired end state for an external orchestrator would ideally include two explicit contracts:
For our integration, the important properties would be deterministic thread identity, immediate Desktop visibility, explicit active-writer/approval ownership, reconnect without duplicate execution, and no direct access to Desktop databases or UI automation.
I can provide a sanitized sequence diagram and App Server request/notification timeline from the production reproduction if useful.
yvettehuang199212-sketch commentedon Oct 9, 2026
我们需要一个运行在同一台 Windows 电脑上的受限桥接程序,将输入提交给 Codex Desktop 已有线程,不创建替代线程。
请确认当前受支持的接入方式及最低版本:
如果 Windows 桌面暂不支持,请明确说明。本文不附会话、凭证、业务材料或私有标识。
关联:#41014
dwyler741 commentedon Oct 12, 2026
Could maintainers clarify the currently supported external-client contract for macOS Codex Desktop using app-server
0.162.0-alpha.17.2?The integration needs an external UI to use Desktop's actual host and persistent conversation, including its authorized tools and question, approval, and result callbacks. The official app-server documentation describes transports, but does not establish how an external client binds to the already-running Desktop host.
Please point to the public contract or documentation. No credentials, private session identifiers, user content, or logs are attached.