Codex History Viewer - Codex and Claude CodeBrowse, search, organize, and resume past Codex CLI / Claude Code sessions through the official VS Code extensions or prepared CLI commands. Latest release: 2.20.2 (2026-11-10).
Why Use This Extension?Codex and Claude Code sessions can become hard to revisit once they are no longer active in the editor. Codex History Viewer keeps those local session files useful by presenting them in a searchable session history browser inside VS Code. Use it to find past prompts, reuse useful answers, inspect file changes, organize sessions with tags and notes, resume same-source sessions, and prepare handoff context for other AI tools. Highlights
Quick Start
History and Pinned OrganizationHistory and Pinned separate project organization into display and scope controls. Display can switch between List View and Project View, while scope can switch between All Project Groups and Current Project Group. Project matching is case-insensitive across platforms. Project views preserve the existing layout choice: session-list history becomes To choose each view's startup behavior and defaults, see Startup Display. Project folders can have extension-local aliases from the History or Pinned project context menu. Aliases are stored in VS Code extension state without changing Codex or Claude Code history files. When set, aliases appear in project headings, session descriptions, tooltips, filter summaries, Status, and Search scope/session display while the original path remains available in detailed metadata. Project associations can link another project's history into the current project display or group related projects together without moving the original history files. Associations are available from project context menus and are reflected in History, Pinned, Search, File AI Change History, and handoff content. History, Pinned, and History Insights can target Active Only, Active + Archived, Archived Only, Hidden Only, or All sessions when the corresponding sources are available. Hidden sessions can come from either active or archived storage. Hidden and archived states are identified in tree descriptions and tooltips. History also has a Compression filter with Compressed + Uncompressed, Compressed Only, and Uncompressed Only choices. It is available in the pane's ... menu and Filter History.... Search and History Insights follow this History condition; Pinned keeps its independent filters. Compressed Only requires compressed Codex histories to be enabled. The Command Palette groups History and Pinned view options into Filter..., Change Sort Order..., and Change Presentation... commands for each view. Individual options remain available in the pane menus, and existing command IDs remain usable in custom keybindings. Pinned has its own project scope, source, visibility target, date, tag filters, and saved sort preference. It does not follow History/Search filter state, so saved sessions can stay focused on a different project or source while you browse and search elsewhere. History can sort by started date, last activity date, name, or source session file size. Pinned can sort by pinned time, started date, last activity date, name, or source session file size. When Tooltip Mode is set to Compact or Detailed, History and Pinned session tooltips also show the source session file size. Use Show timestamp and Show project/path under History List > Session rows to simplify session rows in History, Pinned, and Search. The two elements can be hidden independently, while their full timestamp and project information remain available in session tooltips. Session ViewerThe Session Viewer renders local session files as readable timelines. It supports Markdown, Mermaid diagrams, syntax-highlighted fenced code blocks, KaTeX-compatible math, assistant usage metadata, environment snapshots, tool execution metadata, and grouped file-change cards from patch activity. GFM task-list markers render as read-only checkboxes without modifying the stored session content. Markdown tables use clearer cell spacing and separators, wrap long content, and scroll horizontally within the table when needed. Each table has an action for copying only that table in its original Markdown form. Fenced The resume button follows the resume method selected separately for Codex and Claude Code. Extension and CLI uses a split button: the last used method becomes the main action, while the dropdown always lists both methods. CLI actions enter the resume command in a new VS Code integrated terminal without pressing Enter. The History, Pinned, and Search context menus follow the same source-specific settings. When you edit the last prompt in Codex, the edited continuation becomes that conversation's main history. If Codex writes it to a new session file, an open Session Viewer keeps displaying its current file, including during auto-refresh and manual reload. A notice and Go to main history let you switch explicitly. While viewing the previous history, this action replaces the resume button; normal resume actions return after switching. The notice is available even when Branch Navigation is disabled. The Session Viewer shows the validated session ID and session file name with actions to copy the ID, copy the full file path, or reveal the file in its containing folder. The same actions are available under Session Information in the History, Pinned, and Search context menus. Tree context menus provide actions for individual sessions and multi-selection. See Session Actions for supported commands and selection rules. The toggle immediately to the right of Custom Title switches the current viewer between a dedicated tab and a temporary tab. Its tooltip shows Dedicated tab or Temporary tab according to the current state. Switching preserves the displayed history, scroll position, selection, search, and expanded cards, while other open tabs keep their state. Selecting another history reuses the most recently active temporary tab unless that history is already open. Pinning remains a separate action. Large histories can use the Codex and Claude Code sessions can use an opt-in turn timeline. Patch group cards can show compact file summaries and an in-place Open all diffs / Close all diffs action. With the turn timeline enabled, Codex and Claude Code changes are grouped into one diff card per turn. Changes to the same file are combined when their confirmation and completeness status match. Each file row has a history icon in both collapsed and expanded diff cards, with the tooltip File AI Change History. It opens the workspace file's history and jumps to the selected change. When a row combines several changes, it jumps to the first included change. This action works regardless of the Explorer context menu setting. Claude Code file changes use recorded edit results to distinguish applied changes from failed, interrupted, or unapplied edits. Overwrites are treated as updates to existing files. Unconfirmed or incomplete records are labeled, and unconfirmed changes do not contribute to confirmed History Insights totals. Request interruptions from Codex and Claude Code render as dedicated timeline cards. When available, details include reason, duration, turn ID, rollback state, and rolled-back turn count. Recognized Claude Code session and agent process shutdown interruptions are excluded from ordinary user-message search and human request counts, including request extraction for Resume and Handoff. Claude Code peer and coordinator messages received from other sessions render as dedicated cross-session cards. They remain searchable as assistant-derived content and are excluded from previews, Resume, Handoff, and human-message analysis. Claude Code internal task notifications and agent reminders appear as Task notification and Internal reminder cards. Task notifications include an expandable Notification details section. Notifications are displayed without duplicating the same notification recorded in another format or changing existing message numbers. Their text remains readable and copyable, while they are excluded from ordinary user-message search, counts, previews, and request extraction for Resume and Handoff. Claude Code conversation compaction summaries are retained as context, available with Show details and in Markdown transcripts. They are excluded from ordinary user-message search, previews, and request counts. Messages and tool results explicitly preserved during compaction in Claude Code child agent histories remain available in the Session Viewer, search, and statistics. Codex page-selection context is likewise kept out of ordinary user messages; its raw text remains available in the detail view. Progress updates and thinking text saved in Claude Code histories also appear in the timeline without enabling Show details. Progress updates are shown directly, while thinking text is expandable. Both support search, bookmarks, copying, and Markdown export. Additional user input cards show user text sent while Claude Code was running. To display bookmarks from the Claude Code extension, enable Open Settings > History Sources > Claude Code > Display Claude Code bookmarks. This setting is disabled by default and requires the Claude Code source and Show date guide and bookmarks to be enabled. Matching cards in main Claude Code session histories and their date-guide markers show blue read-only marks, separately from this extension's yellow bookmarks. These marks cannot be removed here; add or remove them in the Claude Code extension and the changes are reflected automatically. The two sets of bookmarks remain independent. Session tabs preserve useful state across reload and auto-refresh, including scroll position, selected message, expanded cards/diffs, detail visibility, diff wrapping, and in-page search state. The experimental opt-in Restore extension tabs after reload setting can also restore session tabs, File AI Change History, History Insights, and the dedicated settings page after Developer: Reload Window or VS Code restart. It is disabled by default because VS Code can defer tab restoration and may occasionally create duplicate tabs when the same history is opened again. When restoration is enabled, multiple temporary session tabs retain their histories and tab modes across restart. Restoring a long Codex history also loads its referenced earlier history when available. If a referenced file is missing or unreadable, the viewer shows an incomplete-history notice even when Show details is off. The session timeline can keep the current user prompt visible at the top while you scroll. Codex memory citation information recorded for intermediate and final responses is rendered as a collapsible section instead of being left as raw metadata in the message body. Session runtime context and local-command output are likewise shown as collapsed cards instead of raw user messages. Attachments and ReferencesThe Session Viewer keeps attachments and file references out of the message body and renders them as cards instead.
For files sent by Claude Code, Search includes recorded file paths and descriptions when tool-call content is enabled, and recorded results when tool-output content is enabled. Sending a file counts as a tool call in History Insights; it does not create a file-change entry in History Insights or File AI Change History. SearchSearch is local, cancellable, and backed by an incremental search index. It can search message text, configured tool metadata, titles, tags, notes, and attachment metadata. Updates may require cached history, search, or analysis data to be rebuilt automatically. The first history load, search, or use of File AI Change History or History Insights after such an update may take longer. Local file-backed search caches use incremental reads and writes. Indexed message text is decoded when needed to reduce JavaScript heap usage. Large histories still require RAM and disk space, and individual large sessions can temporarily use additional memory during loading or searching. Saved Claude Code progress updates and thinking text are included in the Assistant role. Selecting a matching result opens the corresponding card and expands thinking text when needed. In-page search also includes collapsed thinking text. Supported query forms include normal substring search, Search follows the current History target, including date, project scope, project filter, source, visibility, tags, and compression. Hidden Only searches hidden sessions, while All searches both visible and hidden sessions. Search does not follow Pinned filters, and it does not create Search results from filters alone. The global search input combines manual search and search history. Search history is shared with in-page search in the Session Viewer and File AI Change History, stores only query text, and can be selected to run or removed individually with the trash button. Save Current Search... offers Query only and Query and filters. The latter saves the query and the date, project, source, display-target, tag, and compression filters used for the displayed search results. Running that preset reapplies its filters to History and Search; Pinned is unaffected. Saved dates remain the dates captured when the preset was created. Query-only presets continue to use the current History filters, and both preset types use the current role and case-sensitivity settings. The same query can be saved with different filters. Saved searches remain shared across projects and can be removed individually from Run Saved Search.... If a preset requires a disabled source, archived sessions, or compressed histories, the extension explains why it cannot run instead of silently widening the search scope. Opening a Search result can pass the same query into the Session Viewer's in-page search. In-page search in the Session Viewer and File AI Change History supports the same query forms, including exact matching and regular expressions, and can show search-history suggestions below the search input. Project aliases are shown in Search scope and result display, but they are not added to the search index or treated as searchable hit text. The search index can be tuned with
Attachment indexing includes labels, paths, MIME types, file kinds, and bounded text from Claude Code text documents. PDF / Office / binary / base64 document contents, raw image Base64 or data URI payloads, and Codex referenced-file contents are not indexed. Codex Archived SessionsCodex History Viewer can optionally read Codex Archive and restore operations prefer the official Codex provider. Moving archived sessions back to normal Codex history can fall back to a filesystem move when the official provider is unavailable. Pins, annotations, bookmarks, and saved session positions are relocated when the session path changes. Use Hide Sessions and Show Sessions from History, Pinned, or Search to change extension-local visibility without modifying the original session file. Hiding works for sessions in both active and archived storage. Hidden sessions remain available in File AI Change History. Compressed Codex Histories (Experimental)Enable Include compressed Codex histories ( When enabled, compressed histories are available to the history lists, Session Viewer, Search, History Insights, and File AI Change History. Use History > ... > Compression or Filter History... to show compressed histories, uncompressed histories, or both. If the same history exists as both The extension uses a bundled WebAssembly decoder, with no external decompression command or runtime download. Reading does not create decompressed copies on disk or retain a separate cache of the complete decompressed text. Existing search and analysis caches still store derived data. Compressed reads are limited to 1 GiB of decoded data per file read; invalid or oversized streams stop with an error. This feature reads histories already compressed by Codex. It does not add a command for compressing existing histories. Turning it off preserves the original files, pins, and annotations. Session Data Export and RestoreExport Sessions can save either a sanitized Markdown transcript or the original session data. Export original session data includes the provider session files and extension-managed metadata for tags, notes, custom titles, hidden state, pins, and bookmarks for messages and other timeline entries. Read-only bookmarks displayed from the Claude Code extension are separate from extension-managed metadata and are not included in metadata exports or restored by Import Sessions. Import Sessions can restore the session data and its metadata together, or restore only the selected part when that option is available. For Codex sessions, the active or archived storage location is also restored. A confirmation summarizes the planned session-data and metadata changes before anything is written. Original-data export and import preserve compressed Codex files. If an import overwrites an existing history stored in the other format, the incoming data is converted to the destination's format before replacing it. Markdown export produces a readable transcript from either format. Handoff to Other AIHandoff actions appear under Handoff to Other AI for eligible active Codex / Claude Code sessions when After a handoff file is created, the completion notification can open the file, copy the handoff prompt, or copy the generated file's absolute path to the clipboard. Handoff files are stored in this extension's VS Code global storage and include a tail-prioritized transcript excerpt, the latest user request, the source session path, recoverable file changes, and attachment summaries. Tool calls, tool outputs, and binary attachment payloads are intentionally omitted. The saved text used for Claude Code progress and thinking cards is omitted from handoff files. Progress reports recorded as ordinary assistant messages remain eligible for the transcript excerpt, subject to its length limit. When project associations are configured, handoff generation follows the associated project display and includes path mapping context for the receiving AI. File AI Change HistoryFile AI Change History starts from a workspace file and shows the Codex / Claude Code changes that touched that file over time.
Use it when you want to answer questions such as:
Open this view with the File AI Change History icon on a Session Viewer diff card, or run Show File AI Change History for a workspace file. The Explorer file context menu entry is opt-in: enable File Change History > Explorer Context Menu: Enabled to use it from Explorer. Opening from a diff card loads up to 100 changes around the selected change first. Load more adds the remaining history. If the selected change cannot be located in the available history, the viewer displays a notice. The view is scoped to the current workspace and selected file. It supports Codex / Claude Code source toggles, in-page search with shared query history and richer query syntax, incremental Load more, previous/next navigation, and Open in History links back to the matching diff card in the original session. Diff code is syntax-highlighted when the language can be determined from the file path; otherwise, it is displayed as plain text. File AI Change History follows project associations when resolving related history, so associated project displays and path mappings are reflected when possible. Hidden sessions remain part of its candidate history. History InsightsHistory Insights turns the current History target into a fixed analytics snapshot. Open it from Show History Insights in the History view header or from the Command Palette.
The view includes an activity heatmap, token and turn statistics, file-change summaries, breakdowns by source, model, project, and tool, and rankings of active sessions and frequently changed files. Partial logs are shown as confirmed lower bounds or unavailable values instead of being treated as exact zeros. Reaggregate updates changed sessions while keeping the same target set. Apply History filters replaces the snapshot with the current History target. The filter panel can refine source, date range, visibility target, related project groups, and tags. These changes stay inside History Insights by default; they update the History view only when Also apply to History is selected before applying them. The snapshot also preserves History's compression condition when other filters are refined. Claude Code file-change totals exclude failed, interrupted, unapplied, and unconfirmed edits; incomplete records are reflected in data quality. Selecting a date cell opens its sessions in History. The History and Search actions on each project row apply that project while preserving the other snapshot conditions. The Search action reruns the current search when one is available, then opens the Search view. Frequently changed file entries can open the existing File AI Change History view or the corresponding workspace file. Agent RunsAgent Runs supports Codex and Claude Code sessions, including Claude Code child and descendant agents and delegated worker forks. Both sources use the existing When Agent Runs is enabled and its relationship data is ready, sub-agent sessions with an available parent are omitted from History. They remain reachable from the parent session's Agent Runs panel, Search, and explicit Pinned entries. Sub-agent sessions whose parent cannot be resolved safely remain visible in History.
The Agent Runs action in a Codex or Claude Code session view opens a right-side relationship tree containing the parent, siblings, and descendants of the current session. The current route is blue and other agent routes are orange. The open icon on each available node opens that related session directly. An already open target keeps its tab mode. A newly opened target inherits the source viewer's dedicated or temporary mode and opens in a separate tab, preserving the source viewer and other temporary tabs. Codex and Claude Code sub-agent histories are included in Search, History Insights, and File AI Change History whether Agent Runs is on or off, subject to each feature's filters. Use Open Parent Session to open a sub-agent's parent session. Relationships use explicit agent metadata and leave the original history files unchanged. Ordinary conversation forks remain part of Branch Navigation. Branch NavigationBranch Navigation recognizes locally forked Codex session histories, including histories created with Fork locally in the Codex app or Continue in new task in the Codex extension, and Claude Code histories created with Fork conversation. It lets you move between Fork destinations without leaving their respective session views. Branch Navigation also includes histories before and after Codex prompt edits within the same conversation. Cards in the Session Viewer's history selector and previews on the previous/next buttons show Before edit and After edit labels for these routes. The original session files remain available for viewing.
Inline controls at a branch point switch to the previous or next route. The shared route-tree action shows the shared history, branch points, and the start and end of each route. Selecting a route node switches the same session view to the corresponding stored session and message position. Enable ConfigurationRun Open Settings from Control or the Command Palette to open the categorized settings page. Settings can be edited at the User, Workspace, or Workspace Folder level when supported by their scope. The Maintenance page can reset managed user settings, export or import scope-specific JSON settings backups, rebuild the history cache or search index, run cleanup actions, and open the standard VS Code settings for advanced editing. On Linux Remote SSH, Open Settings > Maintenance > Troubleshooting includes the experimental Stop a remote Codex App Server for VS Code action. To use it, enable the Codex history source and run the extension on the remote workspace host in a trusted workspace. It requires Python 3.9 or later on the remote host and Linux pidfd support. Stopping a server may interrupt all conversations and running tasks it handles. Common settings include:
Startup DisplayUnder Open Settings > History List, use History startup display or Pinned startup display to configure each view independently. These are User settings shared across workspaces. Restore previous state ( All keys below use the
Changes to these settings take effect after Developer: Reload Window or a VS Code restart. Manual view changes remain available and are saved even when starting from configured defaults. Suggested SettingsThe defaults are designed for regular use. These settings are useful starting points for consistent startup views, a lighter UI, richer search, or more active refresh behavior:
If history, search, or analysis results look stale, run Open Settings > Maintenance > Rebuild Cache or Control > Rebuild Cache. After confirmation, it recreates the history cache, search index, and analysis data. CommandsMost actions are available from view title buttons and tree context menus. For the primary user-facing commands with descriptions, see: Codex Integration Notes
What's New in 2.20.2
ChangelogSee CHANGELOG. SecurityUse Codex History Viewer v2.19.0 or later. See SECURITY for the Markdown and diagram-rendering security updates and the development/build Node.js update addressing Brotli CVE-2026-111497. Do not install or redistribute v1.2.1 or earlier VSIX files. PrivacyThis extension reads local session files and renders them inside VS Code. For Claude Code sessions in the standard local project layout, it can also read matching entries from Buttons for GitHub, GitHub Sponsors, and project resources open fixed GitHub pages in your external browser only when selected. The extension does not add session content or local paths to those URLs. If you use Copy Quick Prompt or Copy Handoff Prompt to Clipboard, this extension copies session context to your clipboard. Data is only sent externally if you paste it into another tool or extension. When you open a session as a Markdown transcript, the generated transcript includes local paths such as the session file path and CWD. Review before sharing. Settings backup JSON files exported from the Maintenance page may contain configured local folder paths. Workspace- and folder-scoped backups may also contain the current workspace or selected folder's absolute path or URI in target metadata. Review them before sharing. Project ScopeCodex History Viewer is intentionally local-first. Features that cannot be implemented using only locally available session data and require the extension to access external services over the network are outside the project scope. The extension will not request, store, or use sign-in credentials such as account IDs, passwords, API keys, or access tokens. This includes, for example, live lookups of account quota, subscription status, billing information, and costs. Features that require continuously updated provider pricing or account-plan data are also outside the project scope, even when authentication is not required. Supported ProvidersCodex History Viewer currently focuses on Codex and Claude Code session history. Support for additional providers may be considered in the future at the maintainer's discretion, and only when they can be routinely used, tested, and maintained by the maintainer over the long term without compromising the extension's quality, compatibility, or security. DisclaimerCodex History Viewer is an independent project and is not affiliated with, endorsed by, or officially associated with OpenAI, Anthropic, Codex, or Claude Code. This extension works with locally stored session and history files created by official tools and extensions. Their file formats and internal behaviors may change without notice, which may affect compatibility. Archive, restore, delete, import, and other file operations are designed to be conservative, but they may move or modify local files and extension-managed metadata. The author and contributors cannot guarantee recovery of lost or corrupted data. Please keep backups of important session data. |




