[Feature Request] Codex App: support invokable file opener apps for Default open destination

Open 💬 2 comments Opened Jun 8, 2026 by andrewli81

What variant of Codex are you using?

App (macOS desktop)

What feature would you like to see?

Codex Desktop currently exposes a "Default open destination" setting, but the available destinations appear to be a fixed set of built-in editor targets. That makes it hard for another macOS app to integrate as a file opener unless it impersonates one of the known editors.

I would like Codex App to support an invokable file-opener contract for third-party apps, similar in spirit to how editors like Zed can be launched for a file/line from external tools.

Concretely, this could be one or more of:

  • Let users configure an arbitrary command template for file opens, e.g. /Applications/Orca.app/.../orca file open {path} --line {line} --column {column}.
  • Let apps register as open destinations through a documented macOS URL scheme, app bundle metadata, or config file contract.
  • Include enough context for remote files, such as the remote authority/SSH target, workspace root, file path, line, and column.

The motivating integration is Orca Build: when I click a file reference in Codex, I want Codex to ask Orca to open that file in the corresponding Orca worktree/editor tab, including for SSH-backed paths like ssh-remote+arca.codex.

There are related open requests for custom editors / arbitrary commands, e.g. #15373 and #10428. This request is specifically for a stable app integration contract that another desktop app can implement, including remote-file metadata. It may need coordination between Codex Desktop and apps that want to become open destinations.

Additional information

This likely needs collaboration from the Codex desktop team because the current open-destination picker seems to validate against built-in target IDs. It would be useful if the integration did not require each destination app to be added to Codex source code individually.

View original on GitHub ↗

This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗