Last updated: 2026-05-09
AI coding agents (Claude Code, Codex CLI, Cursor) each store sessions in proprietary formats. There's no way to continue a conversation started in one tool inside another. Developers are locked into whichever tool they started with.
Repo: Internal (liwala/sheal) — not public
Language: TypeScript / Node.js
What it does: Analyzes AI coding sessions to extract learnings, detect failure patterns, and improve agent behavior. Core feature is sheal retro — a session retrospective that summarizes what happened, what worked, and what didn't.
Session reading: sheal has the most mature multi-agent session parser we've found:
- Reads Claude Code sessions from
~/.claude/projects/<slug>/<session-id>.jsonl - Reads Codex CLI sessions from
~/.codex/sessions/YYYY/MM/DD/rollout-*.jsonl - Reads Gemini CLI, AMP, and Cursor sessions
- Normalizes all formats into a common
SessionEntrytype - Integrates with Entire.io's
entire/checkpoints/v1git branch for committed checkpoints
Key commands: sheal check (environment health), sheal retro (session retrospective), sheal learn (knowledge extraction), sheal cost (token cost analysis), sheal browse (TUI), sheal graph (dependency graphs), sheal digest (multi-session summaries), sheal export (export sessions).
What it does NOT do:
- Does not transfer sessions between tools
- Does not write sessions back in another tool's format
- Does not allow continuing a Claude conversation in Codex
- Read-only: analyzes sessions but never modifies them
How session-porter differs: session-porter is purpose-built for cross-agent portability. We reused sheal's parsing logic (with attribution) but added the missing piece: bidirectional format conversion and direct transfer (session-porter transfer <id> --to codex). sheal reads sessions to learn from them; session-porter reads sessions to move them.
URL: entire.io | GitHub CLI Funding: $60M launch (Feb 2026) What it does: "Version control for AI agent sessions." Hooks into git to capture AI sessions alongside commits. Creates a searchable record of how code was written.
How it works:
- Open-source CLI called "Checkpoints" hooks into your git workflow
- Captures prompts, responses, files modified, timestamps, token usage
- Stores everything on a separate git branch:
entire/checkpoints/v1 - Sessions indexed alongside commits — you can trace which AI session produced which code
- Supports Claude Code and Gemini CLI at launch, more agents planned
Data format: Each checkpoint is a directory on the git branch:
<checkpoint-id[:2]>/<checkpoint-id[2:]>/
├── metadata.json # Root summary
├── 0/
│ ├── metadata.json # Session metadata
│ ├── full.jsonl # Full transcript
│ └── prompt.txt # User prompts
What it does NOT do:
- Does not convert between agent formats
- Does not allow transferring a session from Claude to Codex
- Focused on recording and indexing, not portability
- Tied to git repos — no support for ad-hoc sessions outside repos
How session-porter differs: Entire.io records sessions for audit/attribution. session-porter moves sessions between tools for workflow continuity. They're complementary: Entire.io answers "who wrote this code?", session-porter answers "how do I continue this conversation in another tool?"
Repo: ZeroSumQuant/claude-conversation-extractor
Language: Python
What it does: Extracts and exports Claude Code conversations from ~/.claude/projects/. Provides an interactive TUI (claude-start) and a plain CLI (claude-extract).
Features:
- List all Claude Code conversations
- Export specific chats by number or export recent sessions
- Export as Markdown, JSON, or HTML
- Search through conversation history
- Include tool use, MCP responses, and system messages
- Backup all conversations at once
What it does NOT do:
- Claude Code only — no Codex, Cursor, or Gemini support
- Export only — cannot import or write sessions back
- No format conversion between agents
- No transfer capability
How session-porter differs: claude-conversation-extractor is a solid single-tool exporter. session-porter does everything it does for Claude (list, export to JSON/markdown) but also reads Codex sessions and can write sessions into either tool's format for cross-agent continuation.
Repo: simonw/claude-code-transcripts Language: Python What it does: Converts Claude Code session JSONL files into browsable, mobile-friendly HTML transcripts with pagination. Can upload to GitHub Gists for sharing.
Features:
- Interactive session picker
- Multi-page HTML output with pagination
- Image rendering from tool results
- GitHub Gist upload with shareable preview URLs
- Filter by repo
- Jinja2 templates for customizable output
Limitations:
- Claude Code only — no other agents
- Output only (HTML) — not a portable format
- Web-based commands currently broken due to unofficial API changes
- No import or transfer capability
How session-porter differs: simon's tool is for publishing/sharing transcripts as pretty HTML. session-porter is for moving sessions between tools. Different use cases entirely.
Repo: Ometh12/Codex_Relay What it does: Transfers Codex CLI sessions between devices. Export on one machine, import on another via cloud storage or USB.
Features:
- Export/import Codex sessions across macOS, Windows, Linux
- Local vault for session storage
- Preview before importing
- Conflict resolution
- Automatic backups
What it does NOT do:
- Codex-to-Codex only — no cross-agent conversion
- Does not read Claude Code, Cursor, or any other format
- No format normalization
How session-porter differs: Codex_Relay moves sessions between devices (same format). session-porter moves sessions between tools (different formats). Codex_Relay = same tool, different machines. session-porter = different tools, same machine.
Repo: jimmc414/cctrace What it does: Exports Claude Code sessions to Markdown and XML. v2.0 adds "portable sessions" — export a session to git, push it, and others can import to continue where they left off.
Features:
- Export as Markdown or XML
- Portable session export: includes conversation history, file snapshots, todos, plans, project config
- Git-based sharing: push a portable session, others pull and resume
- Includes tool use and system messages
Key insight: cctrace is the closest competitor — it has cross-machine portability via git. But it's still Claude-to-Claude only. It doesn't convert between agent formats.
How session-porter differs: cctrace transfers Claude sessions between machines (via git). session-porter transfers sessions between different tools (Claude <-> Codex). cctrace = same agent, different machines. session-porter = different agents, same or different machines.
Repo: tobitege/codlogs What it does: Search, export, and sanitize local Codex CLI sessions. Export as HTML or Markdown with options for images and tool results.
Limitations: Codex only, export only, no cross-agent support.
Repo: jduncan-rva/skill-porter What it does: Converts Claude Code skills to Gemini CLI extensions and vice versa. Uses MCP for ~85% code reuse.
Important distinction: skill-porter converts skills/tools, not sessions. It's about moving capabilities between agents, not conversation history. Complementary to session-porter — one moves the tools, the other moves the conversation.
| Tool | What | URL |
|---|---|---|
| claude-session-export | Go CLI, exports Claude sessions to GitHub Gist | robzolkos/claude-session-export |
| claude-JSONL-browser | Web-based JSONL to Markdown viewer | withLinda/claude-JSONL-browser |
| claude-code-log | Python CLI, JSONL to HTML | daaain/claude-code-log |
| claudebin | Share Claude sessions as resumable URLs | producthunt |
| Claude Explorer | Unified archive + MCP tools for all Claude sessions | Community |
| claude-mem | Session memory plugin — compresses and injects context | Community |
| Codex History Viewer | VS Code extension for Codex/Claude session browsing | VS Marketplace |
All of these are single-agent, export-only tools. None convert between formats.
Open GitHub issues on anthropics/claude-code showing demand for what session-porter does:
- #18645: Session Export/Import for Cross-Machine Portability
- #31992: Cross-machine session resume
- #32992: Universal session portability across all Claude Code surfaces
- #45358: Cross-machine session sync
- #47926: Allow resuming Claude Code sessions across devices
These are all Claude-to-Claude requests. Nobody has even asked for cross-agent transfer yet — session-porter is ahead of demand.
Several Chrome extensions export conversations from the Claude.ai web interface (not Claude Code CLI):
| Tool | Repo | What |
|---|---|---|
| claude-exporter | agoramachina/claude-exporter | Chrome extension, bulk export, JSON/MD/text |
| Claude-Conversation-Exporter | socketteer/Claude-Conversation-Exporter | Chrome extension, similar features |
| claude-export | ryanschiang/claude-export | Browser script, MD/JSON/PNG |
| claude-chat-exporter | agarwalvishal/claude-chat-exporter | JS tool, markdown export |
Not competitors — these export from the Claude.ai web app, not Claude Code CLI. Different product, different storage, different format.
Storage: SQLite database at ~/Library/Application Support/Cursor/User/globalStorage/state.vscdb
Keys: composer.composerData, workbench.panel.aichat.view.aichat.chatdata, aiService.prompts
Export tools:
- cursor-history — CLI to browse/search/export Cursor chat history
- MyCursorData — Python tool, exports from SQLite to text files
- CursorChat Downloader — VS Code extension
- cursor-chat-transfer — Transfer chats between Cursor workspaces/devices
Future opportunity: Adding Cursor as a third agent in session-porter would cover the three most popular AI coding tools.
Read Sessions Export Cross-Agent Transfer/Write
Claude Codex Formats Conversion Into Target
────── ───── ─────── ────────── ───────────
session-porter ✅ ✅ 4 ✅ ✅
sheal ✅ ✅ 2 ❌ ❌
Entire.io ✅ ❌ 1 ❌ ❌
cctrace ✅ ❌ 2 ❌ ✅ (same-agent)
claude-conv-extract ✅ ❌ 3 ❌ ❌
claude-code-transc ✅ ❌ 1 ❌ ❌
Codex_Relay ❌ ✅ 1 ❌ ✅ (same-agent)
codlogs ❌ ✅ 2 ❌ ❌
skill-porter ❌ ❌ — ✅ (skills) ❌
session-porter is the only tool that reads both Claude Code and Codex sessions AND can write/transfer sessions between them. cctrace and Codex_Relay can transfer within the same agent, but neither crosses the agent boundary.
- Cross-agent portability: No other tool converts between Claude Code and Codex formats
- Bidirectional transfer: Not just export — we write directly into the target tool's session directory
- Multi-agent awareness: Single CLI reads from both tools, unified listing
- Lightweight: Node.js, single dependency (commander), no Python, no SQLite, no git branch manipulation
- Built on proven parsing: Adapted from sheal's battle-tested JSONL parsers
- Cursor support: Read from
state.vscdbSQLite, would cover the top 3 AI coding tools - Gemini CLI support: sheal already has a parser (
gemini-native.ts) we could adapt - Entire.io integration: Read from
entire/checkpoints/v1git branch for committed sessions - npm publish: One command to make it globally installable
- Session merge: Combine sessions from multiple tools into one continuous conversation