Repository navigation
Computer Use: SkyComputerUseClient SIGKILL'd (Code Signature Invalid) when codex CLI is launched outside Codex.app process tree (e.g. via ACP adapter) #21200
Description
What version of the Codex App are you using (From "About Codex" dialog)?
26.422.71525 (build 2210)
What subscription do you have?
Plus
What platform is your computer?
Darwin 25.4.0 arm64 arm
macOS 15.x on Apple Silicon. Computer Use plugin: 1.0.758 (~/.codex/plugins/cache/openai-bundled/computer-use/1.0.758/).
What issue are you seeing?
The bundled SkyComputerUseClient helper is SIGKILL'd by the kernel with Code Signature Invalid every time the Codex CLI is launched outside the Codex.app process tree — for example, when Codex is spawned as a subprocess by a third-party ACP adapter (codex-acp, etc.) that hosts Codex's stdio JSON-RPC behind a different parent process.
Crash signature in ~/Library/Logs/DiagnosticReports/SkyComputerUseClient-*.ips:
Exception Type: EXC_CRASH (SIGKILL (Code Signature Invalid))
bundleID: com.openai.sky.CUAService.cli
procName: SkyComputerUseClient
codeSigningTeamID: 2DC432GLL2
bug_type: 309
Both the Codex.app and the Computer Use plugin pass codesign --verify --deep --strict and spctl --assess — the bundles are correctly signed. The same Codex CLI binary works inside Codex.app. This points to a macOS launch-constraint rather than a signing issue: the helper requires its launching ancestor to be Codex.app; any other parent triggers SIGKILL at exec.
Additional symptoms during a long ACP-driven session:
- 30+ orphaned
SkyComputerUseClient mcpprocesses accumulate (each turn produces a fresh crash) - Crash reports flood
~/Library/Logs/DiagnosticReports/ - Significant RSS growth in the parent (codex) waiting on the helper handshake
This is distinct from #18549, which captures the generic crash without specifying the external-parent trigger. It is also distinct from #19544 (Apple-event auth failure from Homebrew CLI) — different layer, different error.
What steps can reproduce the bug?
- Install Codex.app + the bundled Computer Use plugin (
1.0.758). - Install any ACP-mode adapter that spawns Codex as a subprocess. For example,
codex-acp(stdio JSON-RPC bridge). - Configure your ACP client (an editor or test harness) to launch Codex via that adapter — i.e., not through
Codex.app's window. - Send any prompt that does not request Computer Use.
- Observe
Console.app"Crash Reports" filtered toSkyComputerUseClient— a fresh.ipsper dispatch turn. ps aux | grep SkyComputerUseClientshows accumulating zombie processes that don't reap.
Notably:
- Disabling the Computer Use plugin in the Codex.app preferences UI does NOT prevent these crashes. The launcher attempts to spawn the helper before the runtime feature-flag check fires.
- Disabling the
[plugins.computer-use]block in~/.codex/config.tomlreduces but does not eliminate the spawn attempts.
What is the expected behavior?
When the Codex CLI is launched outside Codex.app and Computer Use is not requested by the model, the launcher should either:
- Detect the parent-process bundle ID does not match
Codex.appand skip the helper launch entirely (cleanest), or - Honor the
~/.codex/config.tomlplugin-disable flag earlier in the launcher path so the helper is never spawned when the plugin is configured off, or - Trap
Code Signature InvalidSIGKILLs from the helper as a non-fatal "Computer Use unavailable in this context" condition.
Additional information
Reliable workaround (applied locally, eliminates all crashes):
Two parts, both required:
-
Disable plugin entries in
~/.codex/config.toml(the[plugins.computer-use]block / equivalent). -
Rename all
SkyComputerUseClientbinaries under~/.codex/plugins/cache/openai-bundled/computer-use/<ver>/...so the launcher cannot find them. On a1.0.758install the targets are:~/.codex/plugins/cache/openai-bundled/computer-use/1.0.758/Codex Computer Use.app/Contents/SharedSupport/SkyComputerUseClient.app/Contents/MacOS/SkyComputerUseClient(Add
.disabledsuffix; the launcher logs an ENOENT and proceeds.)
Either step alone is insufficient — the config flag is checked after the spawn attempt, and renaming alone leaves the config still pointing at the path.
Why this matters: the ACP-adapter pattern is increasingly common for embedding Codex into third-party agent runtimes, IDE plugins, and orchestrators. Without the workaround, every ACP turn produces a crash report and a zombie process, and the helpers' SIGKILL'd state can wedge the parent on long sessions.
Related: #18549 (generic crash report).
Activity
github-actions commentedon May 5, 2026
Potential duplicates detected. Please review them and close your issue if it is a duplicate.
Powered by Codex Action
frozename commentedon May 5, 2026
The duplicate-detector flagged #19544 and #20851 — neither is a duplicate, addressing each:
#19544 ("Homebrew CLI cannot use Computer Use") — different failure mode. That issue's error is
Apple event error -10000: Sender process is not authenticated, an AppleScript/TCC layer auth failure that occurs during a Computer Use call (list_apps). This issue isEXC_CRASH (SIGKILL (Code Signature Invalid))at helper-process exec, before Computer Use is even invoked. Thecode_signing_idmismatch on launch is a kernel launch-constraint, not Apple Event TCC.#20851 ("Feature request: first-class Computer Use support from the Codex CLI") — opposite direction. That asks for Computer Use to work from the CLI. This issue is about a crash that happens when Computer Use is not being requested at all — the helper is spawned anyway and SIGKILL'd, generating crash reports and zombie processes per turn.
Closest existing issue is #18549, which captures the generic SIGKILL on the helper. This issue narrows the repro to the external-parent (ACP-adapter) launch path and includes a working two-part workaround that doesn't appear in the #18549 thread.
eddyaipt commentedon May 10, 2026
One mitigation that would help adapter-driven launches is to separate 'Codex CLI is available' from 'Computer Use is available' during startup. If the helper fails its code-signature / parent-process preflight, exposing a clear capability downgrade instead of repeatedly attempting launch would keep the rest of the agent run alive and make the failure much easier to diagnose in logs.
IgorGanapolsky commentedon May 14, 2026
"SIGKILL Code Signature Invalid" when launched outside the .app process is almost always a bundle-ID / signature mismatch — the SkyComputerUseClient is signed with the Codex.app Team ID, and when it's spawned by a CLI process that isn't itself signed with that Team ID (or running inside the .app's translocation/quarantine context), macOS Gatekeeper SIGKILLs it.
Quick confirmation:
If the SIGKILL log line shows a Gatekeeper or amfid rejection, the fix is to launch via the .app (so Gatekeeper sees the parent chain) rather than the CLI directly, or to ensure the CLI binary itself is signed with the same Team ID.
I documented this and 5 other root causes for "Computer Use unavailable" on macOS: https://igorganapolsky.github.io/openclaw-mac-ai-workstation-setup/troubleshooting.html
Free script in the repo (
scripts/self-diagnose.mjs) captures the codesign + bundle ID comparison into a redacted bundle. $19 quick read on that page confirms the root cause same-day.