claude-code-exporter

Export and aggregate Claude Code conversations with CLI and MCP server support

GitHub Stars

10

User Rating

Not Rated

Forks

0

Issues

0

Views

1

Favorites

0

README
Claude Code Exporter šŸš€

npm version License: MIT Node.js Version

Export and aggregate Claude Code conversations with powerful filtering and organization features.

✨ Features
  • šŸ“¤ Multiple Export Modes - Prompts only, outputs only, or full conversations
  • šŸ“ Multiple Formats - Export to Markdown, JSON, or both
  • šŸ  Dual Directory Support - Works with ~/.claude and ~/.config/claude
  • šŸ“Š Aggregate Mode - Combine prompts across all projects
  • šŸ“… Period Filtering - Filter by days, weeks, months, or years
  • šŸ—“ļø Period Grouping - Group exports by time periods
  • šŸŽÆ Smart Organization - Timestamp-based directories with clear naming
  • šŸ’¬ Interactive Mode - User-friendly prompts with defaults
  • šŸ”§ CLI & API - Use as command-line tool or Node.js library
  • šŸ¤– MCP Server - Model Context Protocol support for Claude Desktop (v2.0.1+)
šŸš€ Quick Start
# Install globally
npm install -g claude-code-exporter

# Export current project
claude-prompts

# Export with aggregation
claude-prompts --aggregate

# Export last 7 days
claude-prompts --aggregate --period=7d

# Export grouped by days
claude-prompts --aggregate --period=7d --periodGroup=d --nested
šŸ“¦ Installation
Global (Recommended)
npm install -g claude-code-exporter
Local Project
npm install claude-code-exporter
Without Installation
npx claude-code-exporter /path/to/project
šŸ“– Usage
Basic Commands
# Interactive mode
claude-prompts

# Export specific project
claude-prompts /path/to/project

# Export full conversations
claude-prompts --full /path/to/project

# Export to JSON
claude-prompts --json /path/to/project

# List available sessions
claude-prompts --list /path/to/project
Advanced Aggregation
# Aggregate all projects
claude-prompts --aggregate

# Aggregate with nested structure
claude-prompts --aggregate --nested

# Filter by time period
claude-prompts --aggregate --period=30d    # Last 30 days
claude-prompts --aggregate --period=2w     # Last 2 weeks
claude-prompts --aggregate --period=3m     # Last 3 months

# Group by time period
claude-prompts --aggregate --period=1m --periodGroup=w  # Group by weeks
claude-prompts --aggregate --period=1y --periodGroup=m  # Group by months
CLI Options
Option Short Description
--help -h Show help
--version -v Show version
--prompts -p Export user prompts only (default)
--outputs -o Export assistant outputs only
--full -f Export full conversations
--markdown -m Export as Markdown (default)
--json -j Export as JSON
--all-formats Export in both formats
--aggregate -a Aggregate prompts across projects
--nested Create nested folder structure
--period Filter by time period (e.g., 7d, 2w, 1m)
--periodGroup Group by period (d, w, m, y)
--both-dirs Process both Claude directories
--no-interactive Disable interactive prompts
--quiet -q Suppress output
--verbose -V Enable verbose logging
šŸ“Š Export Formats
Prompts Only (Default)

Exports only user messages, perfect for:

  • šŸ“ Creating prompt libraries
  • šŸ” Analyzing your questions
  • šŸ“š Building documentation
Outputs Only

Exports only assistant responses, ideal for:

  • šŸ’» Collecting code examples
  • šŸ“– Building knowledge bases
  • šŸŽÆ Extracting solutions
Full Conversation

Exports complete dialogue, best for:

  • šŸ“œ Complete documentation
  • šŸŽ“ Learning from interactions
  • šŸ› Debugging conversations
šŸ“ Output Structure
Standard Export
claude-prompts/
ā”œā”€ā”€ 2d002199-untitled-prompts.md
ā”œā”€ā”€ 33c13f1c-react-hooks-full.md
└── 73d2983f-api-design-outputs.json
Aggregated Export
aggregated-prompts/
ā”œā”€ā”€ aggregated-20250628-project1.md
ā”œā”€ā”€ aggregated-20250628-project2.json
└── aggregated-20250628-project3.txt
Nested Aggregate
aggregated-prompts/
ā”œā”€ā”€ project1/
│   └── session1/
│       ā”œā”€ā”€ prompts.md
│       ā”œā”€ā”€ outputs.txt
│       └── full.json
└── project2/
    └── session1/
        └── ...
Period Grouped
aggregated-prompts/
ā”œā”€ā”€ 20250628-Dd/  # Daily groups
│   └── sessions...
ā”œā”€ā”€ 2025-W26/     # Weekly groups
│   └── sessions...
└── 2025-06M/     # Monthly groups
    └── sessions...
šŸ¤– MCP Server Integration (v2.0.1+)
Setup for Claude Desktop
  1. Install the package globally:
npm install -g claude-code-exporter
  1. Add to Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json):
{
  "mcpServers": {
    "claude-code-exporter": {
      "command": "npx",
      "args": ["claude-code-exporter", "mcp"]
    }
  }
}
  1. Restart Claude Desktop and use the available tools:
Available MCP Tools
šŸ“¤ export_conversation

Export Claude Code conversations with advanced filtering:

  • projectPath (required): Project directory path
  • outputDir: Output directory (default: ./claude-prompts)
  • exportMode: "prompts", "full", or "outputs"
  • exportFormat: "markdown", "json", or "both"
  • period: Time filter (e.g., "7d", "2w", "3m", "1y")
  • periodGroup: Group by "d", "w", "m", or "y"
  • nested: Create nested directory structure
  • verbose: Enable detailed logging

Example: "Export my project at /path/to/project with period 7d and nested structure"

šŸ“Š aggregate_sessions

Aggregate sessions across multiple projects:

  • claudeHome: Claude home directory (auto-detected)
  • outputDir: Output directory (default: ./aggregated-prompts)
  • includeStats: Include detailed statistics
  • groupBy: "project", "date", or "none"
  • bothDirs: Process both Claude directories
  • period: Time filter (e.g., "7d", "2w", "3m")
  • verbose: Enable detailed logging

Example: "Aggregate all my Claude sessions from the last 2 weeks with bothDirs enabled"

šŸ“‹ list_sessions

List available Claude sessions with metadata:

  • projectPath: Specific project (optional, lists all if omitted)
  • claudeHome: Claude home directory (auto-detected)
  • bothDirs: List from both Claude directories
  • period: Time filter (e.g., "7d", "2w", "3m")
  • verbose: Include detailed session information

Example: "List all my Claude sessions from the last 7 days with verbose details"

šŸ”§ Programmatic API
const ClaudePromptExporter = require('claude-code-exporter');

// Basic usage
const exporter = new ClaudePromptExporter('/path/to/project');
const result = await exporter.export('./output');

// With options
const exporter = new ClaudePromptExporter('/path/to/project', {
  exportMode: ClaudePromptExporter.ExportMode.FULL_CONVERSATION,
  exportFormat: ClaudePromptExporter.ExportFormat.BOTH,
  aggregate: true,
  period: '7d',
  periodGroup: 'd'
});

// Aggregate multiple projects
const result = await exporter.aggregate('./aggregated-output');
āš™ļø Configuration
Requirements
  • Node.js: v20.0.0 or higher (required for MCP server)
  • Claude Code: Installed with sessions in standard directories
Environment
  • CLAUDE_HOME - Override Claude home directory
  • AGGREGATE_NESTED=true - Default to nested structure
  • AGGREGATE_BOTH=true - Process both directories by default
šŸ› Troubleshooting
Common Issues
  • "No Claude sessions found" → Check project path matches Claude usage
  • "No sessions with [type] found" → Try --full mode
  • Multiple directories detected → Use --claude-home to specify
  • Period validation error → Ensure period group ≤ period range
Debug Mode
claude-prompts --verbose /path/to/project
šŸ¤ Contributing
  1. Fork the repository
  2. Create feature branch (git checkout -b feature/amazing)
  3. Commit changes (git commit -m 'feat: add amazing feature')
  4. Push branch (git push origin feature/amazing)
  5. Open Pull Request
šŸ“ License

MIT License - see LICENSE for details.

šŸ”— Links

Made with ā¤ļø for the Claude Code community

Author Information
Alex
Useai.proWarsaw

21

Followers

105

Repositories

6

Gists

18

Total Contributions

Top Contributors

Threads