This repository is first and foremost an automatic rewrite of the original Codex log viewer implementation into a browser-native frontend. Original project: timvw/codex-transcripts.
The primary deliverable is the JS/HTML/CSS viewer:
codex_log_viewer.jscodex_log_viewer.htmlcodex_log_viewer.css{ "timestamp": ..., "payload": ... }).1) Set the source file in codex_log_viewer.html:
<meta name="codex-log-source" content="example.jsonl" />
2) Serve the repo over HTTP:
python3 -m http.server 8000
3) Open:
http://localhost:8000/codex_log_viewer.html
Optional URL overrides:
http://localhost:8000/codex_log_viewer.html?source=example.jsonl
http://localhost:8000/codex_log_viewer.html?source=example.jsonl&title=Codex%20Session%20Log
http://localhost:8000/codex_log_viewer.html?source=example.jsonl&showTokenUsage=true
http://localhost:8000/codex_log_viewer.html?source=example.jsonl&collapseOutputCharThreshold=15000&collapseOutputLineThreshold=300
Notes:
source is resolved relative to codex_log_viewer.html.Token Usage filter checkbox (or showTokenUsage=true) to show them.file://, fetch may be blocked by browser security. Serve via HTTP.Exported session artifacts are stored in:
codex_sessions/codex_sessions/index.html (session export index page)Naming scheme uses migration-style timestamps with meaningful suffixes, for example:
20260213134203_redacted_current_codex_session_jsonl_export.jsonl20260213134203_redacted_current_codex_session_jsonl_export.htmlSKILL.md)This repository includes a vendored Codex skill for conversation exports:
skills/conversation-log-export/SKILL.mdWhat this file is:
Related files in the same skill:
skills/conversation-log-export/scripts/export_current_conversation.py (implementation)skills/conversation-log-export/agents/openai.yaml (skill metadata for agent UI/default prompt)Current filtering behavior documented in SKILL.md:
session_meta, turn_context, event_msg, and compacted.event_msg rows where payload.type is token_count.response_item rows where payload.type is reasoning or function_call_output.response_item messages.# AGENTS.md instructions for ... with <INSTRUCTIONS>...</INSTRUCTIONS>).<timestamp>_<goal-slug>.jsonl (no _conversation_only suffix).<goal-slug>.--include row:<type>,event:<type>,response:<type>,role:<role>--exclude row:<type>,event:<type>,response:<type>,role:<role>--list-types to print observed selector values and default keep/drop status.codex_sessions/index.html so new sessions appear automatically.Run from this repository:
python3 skills/conversation-log-export/scripts/export_current_conversation.py --with-html
python3 skills/conversation-log-export/scripts/export_current_conversation.py --list-types
python3 skills/conversation-log-export/scripts/export_current_conversation.py --include row:event_msg,row:compacted
python3 skills/conversation-log-export/scripts/export_current_conversation.py --include response:reasoning,response:function_call_output
LGPL 2.0