Chrome and Computer Use fail when desktop app uses a custom CODEX_CLI_PATH build
Summary
The ChatGPT/Codex desktop app accepts CODEX_CLI_PATH to run a locally built Codex CLI, but enabling that override makes both the Chrome plugin and Computer Use unavailable on macOS.
Reproduction
- Build Codex locally and point
CODEX_CLI_PATHat the resulting binary. - Launch the packaged ChatGPT desktop app (observed on release
26.707.30751). - Install and enable the bundled Chrome plugin and ChatGPT Chrome extension.
- Start a Codex task that invokes Chrome or Computer Use.
Actual behavior
Chrome setup fails with:
Browser is not available: extension
Computer Use fails with:
SkyComputerUseTransportError: Sky Computer Use native pipe startup failed
The desktop logs repeatedly report:
browser-use native pipe rejected socket peer reason=missing-code-signing-identity
The packaged app, Chrome native host, browser runtime, and extension can all be correctly installed and signed. A normal local Codex build is ad-hoc signed and has no Apple Team ID, so the packaged native-pipe peer authorizer rejects the custom CLI path.
Expected behavior
A developer-supported override such as CODEX_CLI_PATH should remain compatible with desktop capabilities, or the app should provide an explicit, user-controlled development trust workflow and an actionable error explaining the incompatibility.
Possible trust mechanisms include an explicit binary hash, a user-selected signing identity, or a clearly marked local-development opt-in. If custom CLI builds are intentionally unsupported with Chrome and Computer Use, that limitation should be documented next to CODEX_CLI_PATH and surfaced in the UI instead of appearing as an extension installation failure.
Impact
This prevents developers who rely on local Codex builds from using Chrome and Computer Use in the packaged desktop app, even though the custom CLI override itself continues to work for ordinary tasks.
1 Comment
Corroborating this on a newer current build with an intentional custom
CODEX_CLI_PATHruntime:26.721.41059(build5848), arm6426.721.1000502(1000502)TeamIdentifier=not setObserved result:
At the corresponding attempts,
SkyComputerUseServicerecords:A read-only relay experiment also rules out a tempting workaround: the bundled, OpenAI-signed
SkyComputerUseClient mcpexecutable successfully handles MCP initialization andtools/list, but a read-onlylist_appscall still reaches the service's signature verification and fails with-67062. Running the signed client as a custom stdio MCP therefore does not bypass the process-ancestry authorization boundary.The installed Desktop code also shows that
CODEX_BROWSER_USE_PEER_AUTHORIZATION=1only enables the authorizer in a non-packaged/dev mode; setting it to0cannot disable authorization in a packaged build. The native authorization module contains OpenAI Team ID2DC432GLL2, signing-identifier allowlists, and peer/parent/grandparent checks, consistent with the ancestry findings in #30155.This leaves no supported compatibility path for an ad-hoc custom CLI while preserving native Computer Use. An explicit user-approved trust record for an exact custom binary hash, or an OpenAI-signed broker/relay designed for
CODEX_CLI_PATH, would preserve the security boundary without requiring developers to discard local fixes.