Export, import, and restore Claude Code sessions.
Claude Code stores conversation history in ~/.claude/projects/ as JSONL files. ccsession extracts those sessions into portable formats for archival, analysis, or sharing — and can import them back into another environment.
pip install -e .ccsession export --export-name my-sessionExports to .claude-sessions/my-session/ with:
trajectory.json— structured JSON for analysis (linked tool calls, sub-agents, statistics)RENDERED.md— human-readable markdown (renders on GitHub)session/main.jsonl— raw session transcriptsession/agents/— sub-agent session filessession/tool-results/— tool-result sidecar files.ccsession-manifest.json— metadata (required for import)
# Export a specific session by ID
ccsession export --session-id f33cdb42-0a41-40d4-91eb-c89c109af38a
# Export to a custom directory
ccsession export --output-dir /path/to/output --export-name my-session
# Legacy format (flat files to ~/claude_sessions/exports/)
ccsession export --mode classicccsession import .claude-sessions/my-session/
claude -c # Lists available sessions, including the imported oneImport validates the manifest, generates a new session ID, rewrites internal UUIDs while preserving message threading, and copies everything to ~/.claude/projects/.
# Import into a different project
ccsession import .claude-sessions/my-session/ --project-path /path/to/project
# Skip config or auxiliary files
ccsession import .claude-sessions/my-session/ --skip-config
ccsession import .claude-sessions/my-session/ --skip-auxiliaryIf an import causes problems:
ccsession restore # Show snapshot info
ccsession restore --restore # Restore pre-import stateccsession --quiet export ... # Errors and success only
ccsession --verbose export ... # Detailed outputpip install -e ".[dev]"
pytest tests/ -vBased on cctrace by @jimmc414.
MIT