
Continue Codex Work
FreeEfficiently resume interrupted Codex sessions with actionable context.
Free · Opens the source repo
What Continue Codex Work does
Continue Codex Work is a specialized skill designed for developers and designers who utilize the OpenAI Codex CLI. This skill allows users to recover actionable context from previous Codex sessions, enabling them to seamlessly continue their work without the need to replay entire session histories. Instead of using the codex resume command, which can be inefficient for longer sessions, this skill selectively reconstructs only the relevant context needed to proceed. By leveraging local rollout files stored in ~/.codex/sessions, it focuses on the most recent user and assistant interactions, recent tool calls, and files that were edited, providing a streamlined approach to resuming work.
The skill operates through a single script call that extracts context from Codex sessions. Users can specify a session ID or search for sessions by keywords, allowing for quick retrieval of relevant context. The output is a structured Markdown briefing that summarizes key details such as session information, the last user requests, and the current workspace state. This briefing serves as a guide for users to understand where they left off and what needs to be addressed next.
Continue Codex Work is particularly useful in scenarios where a Codex session was interrupted or cut off mid-task. Users can easily identify the reason for the session's end and strategize their next steps accordingly. The skill also emphasizes the importance of verifying the current workspace state before making any changes, ensuring that users are working with the most accurate information available. Overall, this skill is ideal for anyone looking to enhance their productivity when working with Codex, making it easier to pick up where they left off without losing valuable context.
When to use it
Use this skill when you need to continue work from a previous Codex session that was interrupted or incomplete.
When not to use it
This skill is not suitable for sessions that do not have any recorded history or for users unfamiliar with the Codex CLI.
What you can build with it
Resuming an Interrupted Session
After a Codex session was cut off mid-task, use this skill to recover the last user requests and tool calls to continue your work.
Inspecting Prior Sessions
Before starting a new task, retrieve and review the context of previous Codex sessions to ensure continuity in your project.
Managing Multiple Projects
Easily switch between different Codex projects by listing sessions across all projects and selecting the relevant context to resume.
How to install Continue Codex Work
View source1. Install with the skills CLI
npx skills add daymade/claude-code-skills/continue-codex-work --agent claude-code2. Or install it manually
Download the skill folder and drop it into ~/.claude/skills/ for all projects, or .claude/skills/ to scope it to one repo. Restart Claude Code so it picks up the new skill.
Anthropic's agentic coding CLI, and the reference implementation of Agent Skills. Drop a skill folder into ~/.claude/skills and Claude Code loads it automatically whenever a task matches the skill's description. Claude Code docs
Inside SKILL.md
Written by daymadeContinue Codex Work
Overview
Recover actionable context from a prior Codex CLI session and continue execution in the current conversation. Codex records each session as a rollout JSONL under ~/.codex/sessions/YYYY/MM/DD/rollout-*.jsonl (with an optional state_*.sqlite index). Use those local files as the source of truth, then continue with concrete edits and checks — not just summarizing.
Why this exists instead of codex resume: replaying a full rollout re-feeds every reasoning step, tool call, and tool output back into the context window. For long sessions that wastes the window on resolved turns and stale output. This skill selectively reconstructs only actionable context — the last compaction's surviving requests, recent user/assistant turns, the tool calls and files edited, and how the session ended — giving a fresh start with prior knowledge.
This is the Codex sibling of continue-claude-work. The two are deliberately split because the on-disk formats differ: Claude Code writes ~/.claude/projects/<encoded>/<session>.jsonl, Codex writes ~/.codex/sessions/.../rollout-*.jsonl with a different record schema. Use this skill for Codex sessions; use continue-claude-work for Claude Code sessions.
File Structure Reference
For the rollout directory layout, the record/payload schema, and the compaction format, see references/file_structure.md.
Workflow
Step 1: Extract Context (single script call)
Run the bundled extractor. It handles session discovery (via the shared _core), rollout parsing, noise filtering, and workspace state in one call:
# Latest Codex session for the current project (cwd)
python3 scripts/extract_codex_resume.py
# A specific session by id (full or unambiguous prefix)
python3 scripts/extract_codex_resume.py --session <SESSION_ID>
# Search sessions by a keyword in the title
python3 scripts/extract_codex_resume.py --query "skill migrator"
# List recent sessions for the current project
python3 scripts/extract_codex_resume.py --list
# List across all projects (not just the current cwd)
python3 scripts/extract_codex_resume.py --all-projects --list
Expected output: a structured Markdown briefing. What you should see:
- A
# Codex Resume Context Briefingheader, then## Session Info(id, project cwd, last-active time, title, Codex version). - A one-line
**Session end reason**— the single most important routing signal (see Step 2). ## Compact Summary— if the session was compacted, the surviving user/assistant thread (system preamble and re-injectedAGENTS.mdare stripped out).## Last User Requestsand## Last Assistant Responses— the most recent turns.## Recent Tool Calls,## Files Edited in Session(fromapply_patchresults),## Errors Encountered.## Current Workspace State— git branch, uncommitted changes, recent commits.
If instead you see No Codex sessions found for <path>, the current directory has no Codex history — try --all-projects --list to find the right project, or pass --session <id> directly.
Step 2: Branch by Session End Reason
The briefing's Session end reason tells you how the prior run stopped. Route on it:
| End reason | What it means | Strategy |
|---|---|---|
| Clean exit | The agent had the last word (a completed turn). | Read the last user request that was addressed; continue from any pending work. |
| In progress | Tools ran but the agent left no closing message — cut off mid-task. | This is the common resume case. Read the recent tool calls + files edited, verify what landed, and finish the turn the agent was in. |
| Interrupted | Tool calls were dispatched but never returned (hard stop / ctrl-c). | Re-check whether those actions took effect, then retry or move on. |
| Abandoned | A user message got no response. | Treat the last user message as the current request. |
| Error cascade | Repeated tool failures. | Do not retry blindly — diagnose the root cause first. |
Step 3: Reconcile and Continue
Before making changes:
- Confirm the current directory matches the session's
cwd. - If the git branch differs from what the briefing shows, note it and decide whether to switch.
- Inspect the files listed under Files Edited — verify the prior run's changes actually landed (a rollout records that a patch was attempted; confirm the current file state).
- Do not assume old claims hold without checking — compaction and tool output are lossy.
Then:
- Implement the next concrete step aligned with the latest user request.
- Run deterministic verification (tests, type-checks, build).
- If blocked, state the exact blocker and propose one next action.
Step 4: Report
Respond concisely:
- Context recovered: which session, key findings from the briefing.
- Work executed: files changed, commands run, test results.
- Remaining: pending tasks, if any.
How the Script Works
Session discovery reuses the shared core
Discovery goes through _core.codex.collect_codex (bundled into scripts/_core/), the same schema-tolerant reader the local-conversation-history skill uses: it prefers the state_*.sqlite index and falls back to scanning raw rollout JSONL when the DB is missing or its schema has drifted. So listing, --query, and latest-for-project all share one tested implementation.
Rollout parsing
Codex's rollout schema is not Claude's. The parser reads:
- User / assistant turns from the event stream (
event_msg/user_message,event_msg/agent_message,task_complete.last_agent_message) — these store plain strings and mirror theresponse_item/messageitems, so we avoid double-counting and sidestepoutput_textcontent that isn't needed here. - Files edited from
event_msg/patch_apply_end— the keys of itschangesmap are the filesapply_patchtouched. - Tool calls from
response_item/function_callandcustom_tool_call, paired with their*_outputbycall_id(an unpaired call means it never returned). - Compaction from
compactedrecords — Codex replaces the compacted window with areplacement_historyof messages (not a single summary), and re-injects the system preamble; the parser keeps only the user/assistant turns.
Session end reason detection
Classified from the tail of the rollout: a trailing task_complete/agent_message is completed; unpaired tool calls are interrupted; tools that ran with no closing message are in progress; a trailing user message is abandoned; three or more tool failures are an error cascade.
Noise filtering
Codex re-injects large system blocks after compaction and between turns — the permissions block, the agent-role message, and the project's AGENTS.md. The parser drops these using the shared is_noise_text (which recognizes <permissions instructions, <system-reminder, # AGENTS.md instructions for, and similar prefixes) so the briefing shows the real conversation, not the harness scaffolding.
Guardrails
- Do not run
codex resumeorcodex --continue— this skill provides context recovery within the current conversation. - Do not treat the compact summary or tool output as complete truth — they are lossy. Always verify claims against the current workspace.
- Do not overwrite unrelated working-tree changes.
- Do not load a whole rollout file into context — always use the script (rollouts are routinely multiple MB).
Limitations
- Cannot recover sessions whose rollout files were deleted from
~/.codex/sessions/. - Cannot access sessions from other machines (files are local only).
- Tool-call previews are truncated — for the full command or patch, read the rollout line directly.
- Compaction is lossy — early-conversation detail may be gone.
- Codex has no per-session auto-memory equivalent to Claude Code's
MEMORY.md; the project'sAGENTS.mdis deliberately filtered out as re-injected noise, so read it separately if you need the project's standing instructions.
Example Trigger Phrases
- "continue the Codex session
019f66..." - "codex got cut off mid-task, pick up where it left off"
- "don't
codex resume, just read the rollout and keep going" - "what was Codex doing in my last session in this repo?"
- "find the Codex run where I built the skill migrator and continue it"
Related Skills
continue-claude-work— the same capability for Claude Code sessions (~/.claude). If the prior session was Claude, not Codex, use that skill instead.local-conversation-history— lists both Claude and Codex conversations across every config home. Use it first when you are not sure which session (or which provider) you want, then bring the Codex session id here.
Frequently asked questions about Continue Codex Work
Similar skills
Rhino 3D Scripting
Streamline your Rhinoceros 3D scripting tasks.
MVVM Toolkit
Streamline ViewModel development with source generators.
FreeCAD Scripts
Generate Python scripts for FreeCAD automation and modeling.
Azure Architecture Builder
Design and deploy Azure infrastructure using natural language.
Command Development
Streamline your command creation for Claude Code.
Create Cowork Plugin
Easily build and package plugins through guided sessions.
