Codex.app on macOS no longer shows custom prompts from ~/.codex/prompts
Summary
Codex.app on macOS stopped showing custom slash prompts from ~/.codex/prompts.
The prompt files still exist on disk, the / popup opens, but it only shows built-in items / skills and never surfaces the custom prompts.
Environment
- Codex.app version:
26.309.31024 - Codex.app bundle version:
962 - Bundled CLI version:
codex-cli 0.115.0-alpha.4 - macOS: Sequoia (Apple Silicon)
Expected behavior
Files in ~/.codex/prompts/*.md should appear as slash commands in Codex.app, for example /pickup.
Actual behavior
~/.codex/promptscontains valid prompt files- the
/popup opens in Codex.app - custom prompts do not appear at all
- only built-in commands / skills are shown
Prompt files present
acceptpr.md
fixissue.md
handoff.md
landpr.md
pickup.md
raise.md
rams.md
sectriage.md
Repro
- Put valid prompt files in
~/.codex/prompts - Launch Codex.app
- Open a new thread
- Type
/ - Search for a known custom prompt such as
pickup
Result
No custom prompts are shown.
What I verified locally
- The prompt files are still present and readable on disk.
- The prompt contents are valid markdown with frontmatter.
- I removed an unrelated malformed file from
~/.codex/agentsthat had been breaking conversation startup; conversation startup is fixed now. - After startup was fixed, custom prompts were still missing globally in the app.
State reset attempts that did not fix it
I tried all of the following:
- full app restart
- removing a suspicious persisted preference key:
~/Library/Application Support/Codex/Preferences- removed
migrated_user_scripts_toggle - clearing and rebuilding:
~/Library/Application Support/Codex/Local Storage~/Library/Application Support/Codex/Session Storage
After these resets:
- the
/popup still opens - custom prompts are still missing
Log evidence
Fresh desktop logs show the app asking for skills, but I could not find prompt-list activity:
2026-03-12T10:37:49.672Z info [electron-message-handler] Skills/list request cwdsCount=1 forceReload=false
2026-03-12T10:37:51.579Z info [ElectronAppServerConnection] ... method=skills/list ...
2026-03-12T10:38:58.321Z info [electron-message-handler] Skills/list request cwdsCount=1 forceReload=false
2026-03-12T10:39:00.430Z info [ElectronAppServerConnection] ... method=skills/list ...
I did not see corresponding prompts/list or list_custom_prompts requests in the fresh app logs during this failure.
Notes
I found prompt-related strings in the installed app/binary (for example custom prompts, list_custom_prompts_response, and Type / to open the command popup; Tab autocompletes slash commands.), so this looks like a regression in prompt discovery / desktop prompt enumeration rather than missing prompt files.
9 Comments
Potential duplicates detected. Please review them and close your issue if it is a duplicate.
Powered by Codex Action
I was able to drop back to the prior version to restore the prompt functionality for Mac: https://persistent.oaistatic.com/codex-app-prod/Codex-darwin-arm64-26.305.950.zip
I'll check whether this was an intended change. We announced a few months ago that custom prompts were deprecated and will eventually no longer be supported. Please move to skills, which provide a superset of custom prompt functionality.
How are skills a superset?
It seems that they have different behaviors, are you able to isolate a skill so that the model can never just use it automatically?
I propose a solution for improving skills to be a true superset of custom prompts in #16172
Seems like this is the PR that did it: https://github.com/openai/codex/pull/16115
What are we supposed to be using now?
@jgmontoya, use skills. They provide a superset of the functionality of custom prompts. If you have existing custom prompts, codex can convert them to skills for you.
Thanks for the pointer! One thing I noticed: custom prompts supported
$ARGUMENTS,$1-$9positional substitution, and named$KEY=valueplaceholders (https://developers.openai.com/codex/custom-prompts). Skills don't have any argument substitution mechanism, the SKILL.md body is injected verbatim and the model interprets arguments from natural language.The natural-language approach seems to work well in practice (tested it), but calling skills a "superset" of custom prompts isn't quite accurate when structured argument passing is lost. Is there a plan to add argument support to skills?
There's no plans to add positional argument substitution to skills. We've found that it's just not necessary, and it adds a bunch of needless complexity.