claude-code-exporter
Export and aggregate Claude Code conversations with CLI and MCP server support
GitHubスター
10
ユーザー評価
未評価
フォーク
0
イシュー
0
閲覧数
2
お気に入り
0
Claude Code Exporter 🚀
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
- Install the package globally:
npm install -g claude-code-exporter
- Add to Claude Desktop config (
~/Library/Application Support/Claude/claude_desktop_config.json
):
{
"mcpServers": {
"claude-code-exporter": {
"command": "npx",
"args": ["claude-code-exporter", "mcp"]
}
}
}
- 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 directoryAGGREGATE_NESTED=true
- Default to nested structureAGGREGATE_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
- Fork the repository
- Create feature branch (
git checkout -b feature/amazing
) - Commit changes (
git commit -m 'feat: add amazing feature'
) - Push branch (
git push origin feature/amazing
) - Open Pull Request
📝 License
MIT License - see LICENSE for details.
🔗 Links
Made with ❤️ for the Claude Code community