Install
openclaw skills install codex-sessions-managerUse this skill when the user wants to inspect, search, export, verify, clean up, delete, restore, or purge local Codex sessions stored under a Codex root such as ~/.codex.
openclaw skills install codex-sessions-managerThis skill manages local Codex sessions through the codex-sessions toolkit.
Use it when the user wants to work with local Codex conversation history instead of the current live conversation.
This repository provides:
The project is not a UI product, TUI, detail page, incremental scanner, or automatic cleanup service.
Install the CLI before using fallback commands:
npm install -g codex-sessions-manager
This provides:
codex-sessions
codex-sessions-mcp
For local development, build the repository first:
cd <path-to-codex-sessions-repo>
npm install
npm run build
The default Codex root is:
~/.codex
Use --root <path-to-codex-root> when working with another Codex root.
Use this skill for requests like:
Do not use this skill for:
If the codex-sessions MCP server is available in the current agent session, use these tools:
inspect_rootlist_sessionslist_projectsget_sessionexport_session_backuppreview_delete_sessionsdelete_sessions (requires confirm=true to execute; pass trash=true for recoverable deletion)list_trashrestore_sessions (requires confirm=true)purge_trash (requires confirm=true)cleanup_session_indexes (requires confirm=true to rewrite JSONL indexes)cleanup_stale_indexes (requires confirm=true to rewrite JSONL indexes)verify_sessionsUse MCP tools first. CLI is the fallback when MCP is unavailable or blocked.
For session lookup, narrow in this order:
get_sessionFor project-aware listing, pass project to list_sessions or use groupBy="project".
For time filters, pass updatedAfter, updatedBefore, createdAfter, or createdBefore. Date-only filters use the local calendar day. Timezone-less datetime strings must be rejected.
Prefer the installed CLI:
codex-sessions doctor --root <path-to-codex-root>
codex-sessions doctor --root <path-to-codex-root> --json
codex-sessions list --root <path-to-codex-root> --limit 20
codex-sessions list --root <path-to-codex-root> --project TEXT
codex-sessions list --root <path-to-codex-root> --group-by project
codex-sessions list --root <path-to-codex-root> --updated-after 2026-04-01 --updated-before 2026-04-30
codex-sessions projects --root <path-to-codex-root>
codex-sessions show <session-id> --root <path-to-codex-root>
codex-sessions export <session-id> --root <path-to-codex-root> --output ./backup.json
codex-sessions delete <session-id...> --root <path-to-codex-root>
codex-sessions delete <session-id...> --root <path-to-codex-root> --yes
codex-sessions delete <session-id...> --root <path-to-codex-root> --trash
codex-sessions delete <session-id...> --root <path-to-codex-root> --trash --yes
codex-sessions trash-list --root <path-to-codex-root>
codex-sessions restore <trash-id-or-session-id> --root <path-to-codex-root>
codex-sessions restore <trash-id-or-session-id> --root <path-to-codex-root> --yes
codex-sessions purge <trash-id-or-session-id> --root <path-to-codex-root>
codex-sessions purge <trash-id-or-session-id> --root <path-to-codex-root> --yes
codex-sessions cleanup-index <session-id...> --root <path-to-codex-root>
codex-sessions cleanup-index <session-id...> --root <path-to-codex-root> --yes
codex-sessions cleanup-stale --root <path-to-codex-root>
codex-sessions cleanup-stale --root <path-to-codex-root> --yes
codex-sessions verify <session-id...> --root <path-to-codex-root>
When working from a cloned repository instead, run commands from the built repository:
cd <path-to-codex-sessions-repo>
Commands:
node dist/cli/index.js doctor --root <path-to-codex-root>
node dist/cli/index.js doctor --root <path-to-codex-root> --json
node dist/cli/index.js list --root <path-to-codex-root> --limit 20
node dist/cli/index.js list --root <path-to-codex-root> --project TEXT
node dist/cli/index.js list --root <path-to-codex-root> --group-by project
node dist/cli/index.js list --root <path-to-codex-root> --updated-after 2026-04-01 --updated-before 2026-04-30
node dist/cli/index.js projects --root <path-to-codex-root>
node dist/cli/index.js show <session-id> --root <path-to-codex-root>
node dist/cli/index.js export <session-id> --root <path-to-codex-root> --output ./backup.json
node dist/cli/index.js delete <session-id...> --root <path-to-codex-root>
node dist/cli/index.js delete <session-id...> --root <path-to-codex-root> --yes
node dist/cli/index.js delete <session-id...> --root <path-to-codex-root> --trash
node dist/cli/index.js delete <session-id...> --root <path-to-codex-root> --trash --yes
node dist/cli/index.js trash-list --root <path-to-codex-root>
node dist/cli/index.js restore <trash-id-or-session-id> --root <path-to-codex-root>
node dist/cli/index.js restore <trash-id-or-session-id> --root <path-to-codex-root> --yes
node dist/cli/index.js purge <trash-id-or-session-id> --root <path-to-codex-root>
node dist/cli/index.js purge <trash-id-or-session-id> --root <path-to-codex-root> --yes
node dist/cli/index.js cleanup-index <session-id...> --root <path-to-codex-root>
node dist/cli/index.js cleanup-index <session-id...> --root <path-to-codex-root> --yes
node dist/cli/index.js cleanup-stale --root <path-to-codex-root>
node dist/cli/index.js cleanup-stale --root <path-to-codex-root> --yes
node dist/cli/index.js verify <session-id...> --root <path-to-codex-root>
inspect_root or CLI doctor before delete, restore, purge, or cleanup when Codex storage may have changed.delete without --yes is preview-only.delete_sessions without confirm=true is preview-only.--trash --yes or MCP trash=true, confirm=true.delete --trash without --yes only previews moving sessions to trash.restore and purge require --yes in CLI mode.restore_sessions and purge_trash require confirm=true.purge removes only the trash entry and must not touch live sessions.cleanup-index and cleanup-stale rewrite session_index.jsonl and history.jsonl. They do not delete raw files or SQLite rows, but they still require --yes.cleanup_session_indexes and cleanup_stale_indexes require confirm=true to rewrite JSONL indexes.verify, doctor, or inspect_root reports warnings, tell the user. Do not claim the root is fully clean.Codex /side creates an ephemeral side conversation with a separate transcript. In local storage, it can appear as a separate child thread linked to a parent thread.
When a user asks about side conversations:
Do not build or imply support for: