Move existing Codex chats/threads into saved Codex Projects by resolving chat titles and project names, generating a safe move plan, and launching a terminal helper that quits Codex, patches local Codex state after exit, then reopens Codex. Use when the user asks to organize Codex chats by Project, move chats into Projects, re-parent projectless Codex threads, or fix chats appearing outside the intended Project.
79
99%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No known issues
Use this skill to move existing Codex chats into saved Project directories when the Codex UI does not expose a direct move action. The bundled helper performs the fragile state edits only after Codex has fully exited, backs up touched files, verifies the result, and reopens Codex by default.
codex_app.list_threads and codex_app.list_projects./tmp.scripts/launch-chat-organizer.sh <plan.json> from this skill directory.Create a JSON plan with this shape:
{
"version": 1,
"codexHome": "/Users/example/.codex",
"reopenCodex": true,
"moves": [
{
"threadId": "019f0000-0000-7000-9000-000000000000",
"threadTitle": "Fix link checker CI",
"targetProjectName": "GH",
"targetCwd": "/Users/example/Documents/GH"
}
]
}Rules:
list_threads; do not guess IDs from titles.list_projects; do not infer project directories from display names.codexHome to ${CODEX_HOME} when set, otherwise ${HOME}/.codex.reopenCodex to true unless the user asks otherwise./tmp because the external terminal helper must be able to read it after Codex quits.From the skill directory:
scripts/launch-chat-organizer.sh /tmp/codex-chat-organizer-plan.jsonUseful options:
--dry-run: open a terminal and print the intended state changes without quitting Codex or editing files.--no-reopen: apply the move but leave Codex closed.CODEX_CHAT_ORGANIZER_TERMINAL: set to terminal, iterm, wezterm, or ghostty to prefer a terminal. If unset, the launcher checks ~/.codex/chat-organizer-terminal, then falls back through common macOS terminals.~/.codex/backups/codex-chat-organizer/<timestamp>/.Run scripts/test-fixture.mjs to exercise the patcher against a temporary Codex home fixture. Run the skill-creator quick_validate.py on the skill folder after edits.