Support adding custom editors in "Open In" menu
Open 💬 18 comments Opened Feb 2, 2026 by frederik-uni
💡 Likely answer: A maintainer (etraut-openai, contributor)
responded on this thread — see the highlighted reply below.
What feature would you like to see?
Open in seems to be limited to some defaults and cant be extended. I use alacritty & zed and both aren't options, which aren't that popular, but would be nice if it would be possible to add custom options(icon+command)
Additional information
_No response_
18 Comments
Can you provide more context? I'm not sure which Codex program you're using (app, web, CLI, extension) or what you mean by "open in".
Ah, I figured out what you mean. I presume you're using the desktop app on macOS.
my bad.
yes thats what I mean
is there any developments on this or workarounds? I would love to have it open alacritty + neovim
Yeah, would like to use Zed editor!
I would love to be able to use Typora to open markdown files. Typora is my default app for opening .md files - maybe provide a Default Editor option that will open a file using the OS default?
I am closing
https://github.com/openai/codex/issues/12933#issuecomment-3968604657
which asks the same - a way to add editors or previewers.
I my case I can't find Emacs on the list.
Adding support for Alacritty would be great.
Adding support for opening files in vim/neovim would be great as well, though I know it might be niche so it is what it is :/
On macOS, supporting the standard "open with…" functionality would already solve this for most users. Anyone else with special needs can ask Codex to write an Apple Script for their use-case. My manual workaround: Right click on a link, select "copy path", open the terminal and type
open+ command+v.Workaround: Use any app as Codex's "Default open destination" on macOS
Codex uses a hardcoded allowlist of known editors for its "Default open destination" dropdown. Custom
.appbundles don't appear even when properly registered with Launch Services. This workaround creates a tiny AppleScript app that masquerades as a recognized editor (e.g. TextMate) but routes every file to its real macOS default handler — so files open in whatever app macOS would normally use.This also works if you want files to always open in a specific app that is NOT already the default macOS handler (like Zed, Alacritty+Neovim, IntelliJ LightEdit, etc.) — just modify the AppleScript in the script below.
Install
Save this as
install.sh, runchmod +x install.sh, then./install.sh:Then open Codex → Settings → Default open destination → select TextMate.
Files will now route through the fake TextMate to their real default macOS handler.
Customization
Want files to open in a specific app instead? Change the
do shell script "open "line in the script:Already have TextMate installed? Change
APP,CFBundleName, andCFBundleIdentifierto a different editor from Codex's allowlist that you don't use:| Editor | App name | Bundle ID |
|--------------|---------------------|------------------------------|
| TextMate |
TextMate.app|com.macromates.TextMate|| BBEdit |
BBEdit.app|com.barebones.bbedit|| Sublime Text |
Sublime Text.app|com.sublimetext.4|Additional macOS desktop case for this issue.
Environment:
.md) are associated with CotEditor in Finder / Launch ServicesObserved behavior:
.mdfile uses CotEditor as expected.Open withmenu does not respect the macOS default app.Cursor,Antigravity,Finder, andTerminal..md.Expected behavior:
Open with default appaction that uses the standard macOS default handler for the file type.Current workaround:
Open in Finder, then open the file from Finder.This feels less like a custom-editor request and more like Codex Desktop bypassing the OS default-open behavior for files.
Qoder is another strong use case for this feature.
I use Codex App together with Qoder, and having Qoder available in the
Open Inmenu would make file navigation much faster during a session. A configurable editor entry would cover this cleanly: pick a label/icon and map it to a custom command or URL scheme, with file path and line/column placeholders when available.That would let users wire up editors beyond the built-in list, including Qoder, team-specific wrappers, and internal IDE distributions.
Add Qoder pleace. i had to switch between Codex and Qoder now.
it would be great to support this!
Adding another concrete macOS Desktop case, specifically for Markdown + Typora.
Environment:
26.609.4111427.0(26A5353q)/Applications/Typora.appabnerworks.Typora.md/.markdownare registered with Launch Services to open in TyporaObserved behavior:
Open withmenu.Default appitem, plus a second-level fixed list such asVS Code,Zed,Finder,Terminal, andGhostty.Expected behavior:
Default appmore explicit in the file menu, e.g.Open with system default app, and ensure it reliably uses macOS Launch Services for the clicked file type.Why this matters:
Default appbehavior is not obvious enough to discover confidently.Current workaround:
.mdfiles and use Codex'sDefault appitem, or open the file in Finder first.A first-class custom destination, or clearer OS-default wording, would make this much less confusing.
The markdown previewer Marked is also pretty popular.
As of at least Version 26.616.51431 • Released Jun 20, 2026, you can now add something like the following to
config.tomlto add support for custom editors:The full custom file handler API is:
[desktop.custom_file_handlers.<id>]: file handler id suffix. Must start with an alphanumeric character and may contain alphanumeric characters,.,_, or-; Codex exposes it ascustom:<id>.label: required display name.icon: required icon source. This can be a bundled asset such asapps/vscode.pngor/apps/vscode.png, a base64data:image/...URL, afile:URI, or an absolute local image path. Unsupported icon sources fall back to the default VS Code icon.command: required executable path or command name to detect and launch.args: optional string array prepended before Codex's input. Defaults to[].input: optional input mode. Defaults topath, which appends the opened path afterargs.json_argumentappends a JSON argument withtarget,path,appPath, andlocation.json_stdinwrites JSON to stdin and additionally includeshostConfig,remoteWorkspaceRoot, andremotePath.supports_ssh: optional boolean. Defaults tofalse; set totruefor custom handlers that can open SSH workspaces.For anyone wanting to try this with Neovim + tmux, I published my custom handler code here:
https://github.com/mantoni/codex-nvim-tmux-open
It uses
desktop.custom_file_handlers.nvimwith a custom icon and command, supports Codexargs, and handles both file targets and directory/worktree targets.