Repository navigation
feat: add opt-in appAccess for Codex app-access prompts - #12
Open
devayush-bynd wants to merge 1 commit into
Open
devayush-bynd wants to merge 1 commit into
devayush-bynd wants to merge 1 commit into
Conversation
Codex 0.164 forwards app-access prompts as mcpServer/elicitation/request. With approval_policy unset, every native app failed with "Computer Use was not approved to use X" because the plugin declined them. Add an appAccess option ("decline" by default, matching current behavior; "accept" approves the app and asks Codex to remember it).
Also make the plugin work with the current Codex bundle and runtime:
- send callTimeoutSeconds to node_repl's js tool; its 30 s default kills long calls (a 40 s call failed at 30.6 s before this change)
- look for codex in ChatGPT.app/Contents/Resources/codex-cli/bin/codex
- probe native apps with getApp in the doctor, because listApps hangs and resets the JS kernel after 30 s in Codex 0.164; report a declined app as a warning instead of a failure
devayush-bynd
force-pushed
the
feat/app-access-option
branch
from
October 26, 2026 15:37
6293be7 to
04fc346
Compare
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What breaks
With Codex CLI
0.164.0-alpha.11.1and Computer Use26.1021.1001631(ChatGPT desktop app), every native app fails:The app-server now forwards each app-access decision as
mcpServer/elicitation/request, and the plugin declines it unconditionally. Two other things in the same build also stop the plugin from working:codexmoved inside the bundle, andcua.listApps()hangs and then resets the JS kernel.Changes
appAccessoption —"decline"by default (current behaviour, and the only safe default for an option that approves app access), or"accept"to answer Codex's prompts with approval and ask Codex to remember the app (_meta.persist = "always")./computer-use-doctorreports which policy applies.timeout_ms— thenode_repljstool now receives the plugin'scallTimeoutSeconds, instead of relying on the runtime's 30 s default.codexat/Applications/ChatGPT.app/Contents/Resources/codex-cli/bin/codex, where current bundles put it.cua.getApp("com.apple.finder")) instead of listing every app, becausecua.listApps()hangs in this build. A declined app is reported as a warning (the App access check explains the fix), not a failure. Other platforms keep the inventory check, because binding an app there needs an open window.Without
appAccess: "accept"the behaviour is unchanged: prompts are still declined and the model still receives the note listing the ways to allow the app.Evidence
Measured on macOS 26.6.2 (arm64) against the real engine:
timeout_ms: a 40 sawaitfailed at 30.6 s (js execution timed out; kernel reset) without the argument, and succeeded at 40.5 s withtimeout_ms: 90000.timeout_ms: 300000is accepted, so passingcallTimeoutSecondsstraight through is safe.cua.listApps(): timed out at 31.6 s and reset the kernel, even withtimeout_msset.cua.getApp("com.apple.finder")answered in ~1.1 s./computer-use-doctorpasses every check, includingEngine reachable (Finder attached)and a Finder screenshot;appAccess: "accept"also attached to an app that had previously been declined.Tests
bun run check— format, lint, typecheck and all 83 tests pass.timeout_msargument, and the doctor's app-access reporting.