Codex Desktop background exec intermittently deletes ~/.codex/skills/.system
What happened?
On Codex Desktop, the Codex-managed system skills directory under ~/.codex/skills/.system repeatedly disappears and later reappears. When it is absent, new turns do not get the bundled system skills in the available-skills list.
The missing skills are:
imagegenopenai-docsplugin-creatorskill-creatorskill-installer
Observed timeline
Local timezone: EDT, April 23, 2026.
22:53:09:~/.codex/skills/.systemwas present with all five expectedSKILL.mdfiles and.codex-system-skills.marker.22:56:24:codex_chroniclelaunched a childcodex execprocess with--ephemeral,--ignore-user-config,--ignore-rules, and--config skills.bundled.enabled=false.22:56:25:~/.codex/skillsmtime/ctime changed.23:01:51:~/.codex/skills/.systemwas missing. A search only foundplugin-creatorin a temp plugin area andopenai-docsundervendor_imports; none of the expected system skills existed under~/.codex/skills/.system.23:02:57:~/.codex/skillschanged again, and the.systemdirectory was later present again.
This also happened earlier in the same session: a check saw the full .system directory with all system skills, and a follow-up check about 15 seconds later found the directory gone.
Why this looks like a Codex bug
The Codex binary appears to contain a built-in system-skills sync path. Running strings against the desktop app's codex binary shows strings including:
remove existing system skills dircreate system skills dirwrite system skill file.codex-system-skills.marker
That suggests Codex owns this directory and likely removes/recreates it during system-skill sync. The observed failure mode looks like a delete-before-rewrite race or a background/ephemeral process running the cleanup path while skills.bundled.enabled=false, so it removes the global system skills but does not rewrite them.
Expected behavior
- Background or ephemeral
codex execjobs, especially ones launched withskills.bundled.enabled=false, should not mutate the global~/.codex/skills/.systemdirectory. - System skill refresh should be atomic, e.g. write to a temporary directory and rename into place, so there is never a window where the directory is missing.
- Disabling bundled skills for one process should not delete the user's shared system skills installation.
Actual behavior
~/.codex/skills/.system flickers between present and absent. When absent, system skills are not available in new turns/sessions.
Environment
- Codex Desktop:
26.422.21459/ build2049 codex-cli:0.124.0-alpha.2- macOS:
26.0.1(25A362) - Chronicle/memories enabled in the desktop app
Suggested fix
The safest fix is likely:
- Do not run global system-skill installation/removal from ephemeral/background
codex execprocesses. - Never remove
~/.codex/skills/.systemwhenskills.bundled.enabled=false. - Make the system-skill sync atomic: write
~/.codex/skills/.system.tmp-*, validate contents and marker, then rename into place.
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗