Codex Desktop: spawned subagents with Computer Use receive image omitted while parent thread receives screenshots
Environment
- App: Codex Desktop for macOS
- Codex version:
26.506.31421 - Codex build:
2620 - Computer Use app version shown in tool output:
780 - macOS:
26.3.1 (a), build25D771280a - Architecture: Apple Silicon /
arm64 - Subscription: ChatGPT Pro
- Target app: iPhone Mirroring /
com.apple.ScreenContinuity - Also tested: Finder /
com.apple.finder
Summary
When using Computer Use directly from the parent Codex thread, get_app_state("com.apple.ScreenContinuity") returns a visible screenshot of the iPhone Mirroring window.
However, when the same Computer Use call is made from a spawned subagent (gpt-5.3-codex-spark, high reasoning), the subagent receives:
<image content omitted because you do not support image input>
This happens even though:
- macOS Screen Recording and Accessibility permissions are granted for
Codex.appandCodex Computer Use.app; - Codex app-level approval is granted for the target app;
list_appsworks in the subagent;get_app_stateworks in the subagent at the accessibility-tree level.
The result is that subagents can operate only from macOS Accessibility metadata, not screenshots. This is especially blocking for apps like iPhone Mirroring, where the iOS screen content is not exposed as a useful macOS accessibility tree.
Steps to reproduce
- Open Codex Desktop on macOS.
- Ensure Computer Use is installed and enabled.
- Grant macOS permissions:
- Privacy & Security -> Screen Recording / Screen & System Audio Recording
- Privacy & Security -> Accessibility
for both Codex.app and Codex Computer Use.app.
- Open iPhone Mirroring (
com.apple.ScreenContinuity) and connect to an iPhone. - In the parent Codex thread, call Computer Use:
get_app_state("com.apple.ScreenContinuity"). - Observe that the parent thread receives a visible screenshot of the iPhone Mirroring window.
- Spawn a subagent, for example:
- model:
gpt-5.3-codex-spark - reasoning effort:
high
- Ask the subagent to use only Computer Use:
list_appsget_app_state("com.apple.ScreenContinuity")- optionally
get_app_state("com.apple.finder")
- Observe that the subagent receives accessibility state, but the image is omitted.
Actual behavior
In the parent thread:
get_app_state("com.apple.ScreenContinuity")includes a screenshot.- The model can visually inspect the iPhone Mirroring window.
In the spawned subagent:
list_appsfindscom.apple.ScreenContinuity.get_app_state("com.apple.ScreenContinuity")returns only the top-level macOS window/menu accessibility tree.- The image is omitted with:
<image content omitted because you do not support image input>
For Finder, the same image omission happens, but Finder still provides enough accessibility metadata to identify the desktop/window. For iPhone Mirroring, the accessibility tree contains only the wrapper window and menu, not the iOS app content.
Expected behavior
A spawned subagent with Computer Use should receive the same screenshot/image context as the parent thread when calling get_app_state for an approved target app.
If screenshots are intentionally unsupported for certain subagent models, the app should fail clearly before the task starts or document that Computer Use in subagents is accessibility-tree-only.
Why this matters
The official Computer Use flow depends on screenshots being returned to the model. Without screenshots, subagents cannot visually inspect many real desktop workflows.
This is especially problematic for:
- iPhone Mirroring /
com.apple.ScreenContinuity - remote desktop / streamed UI windows
- apps that do not expose rich accessibility trees
- any pixel-only or canvas-like app UI
Related observations
- Official Computer Use docs describe separate macOS permissions and Codex app approvals: https://developers.openai.com/codex/app/computer-use
- Official Computer Use API docs describe the loop as screenshot-based: https://developers.openai.com/api/docs/guides/tools-computer-use
- A similar iPhone Mirroring limitation is discussed here: UI scripting does not capture text from inside the iPhone Mirroring window, so screenshot + OCR is needed: https://www.macscripter.net/t/iphone-mirroring/77733
- Related Codex issues around Computer Use approvals / screenshot targeting:
- https://github.com/openai/codex/issues/18896
- https://github.com/openai/codex/issues/21668
Impact
This blocks using Spark subagents for visual Computer Use workflows. In the parent thread, Computer Use can see the target app. In the subagent, the same app becomes effectively unreadable if the accessibility tree is not enough.
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗