Skip to content

aspectrr/crush-exporter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

4 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Crush Conversation Exporter

Export Crush CLI conversations to Markdown, JSON, or HTML format.

Features

  • Export Crush conversations from ~/.crush/crush.db or custom database paths
  • Filter options: Export by session ID, recent sessions, or export all
  • Multiple output formats: Markdown (default), JSON, HTML
  • Clean formatting: Proper message structure with tool results, user messages, and assistant responses
  • Cross-platform support: Works on macOS, Linux, and Windows
  • Custom database paths: Use any crush.db file location with --db flag

Installation

Requires uv.

git clone https://github.com/collinpfeifer/crush-exporter.git
cd crush-exporter
uv sync

Usage

All commands are run via uv run:

# List all sessions
uv run crush-export --list

# Export a specific session
uv run crush-export --extract <session-id>

# Export recent 5 sessions
uv run crush-export --recent 5

# Export all sessions
uv run crush-export --all

Advanced Usage

# Specify custom output directory
uv run crush-export --recent 3 --output ~/crush-backups

# Export as JSON
uv run crush-export --format json --all

# Export as HTML
uv run crush-export --format html --recent 5

# Use custom database path
uv run crush-export --db /path/to/crush.db --list

# Export specific session from custom database
uv run crush-export --db /tmp/crush-backup.db --extract <session-id>

Database Structure

The tool reads from Crush's SQLite database (~/.crush/crush.db):

  • sessions: Conversation metadata (title, timestamps, token counts)
  • messages: Individual messages with role, parts, model info
  • files: File references per session
  • read_files: Files read during sessions

License

MIT License

About

๐Ÿ’˜ Export conversations from Crush

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages