Skip to content

developerisnow/claude-code-exporter

Repository files navigation

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

About

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

Topics

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Packages

No packages published