Exporting Reports
Export Command Overview
OpenCode Monitor provides powerful export capabilities for creating reports and integrating with other tools.
Basic Export Syntax
ocmonitor export <report_type> [path] [options]Export Types
1. Sessions Export
Export detailed session data:
# Export all sessions to CSV
ocmonitor export sessions ~/.local/share/opencode/storage/message --format csv --output sessions_report.csv
# Export to JSON
ocmonitor export sessions ~/.local/share/opencode/storage/message --format json --output sessions_data.json
# Export recent sessions only
ocmonitor export sessions ~/.local/share/opencode/storage/message --limit 50 --format csv2. Daily Reports Export
# Export daily breakdown
ocmonitor export daily ~/.local/share/opencode/storage/message --format csv --output daily_usage.csv
# Last 30 days
ocmonitor export daily ~/.local/share/opencode/storage/message --days 30 --format json3. Weekly Reports Export
# Export weekly data
ocmonitor export weekly ~/.local/share/opencode/storage/message --format csv --output weekly_report.csv
# Last 12 weeks
ocmonitor export weekly ~/.local/share/opencode/storage/message --weeks 12 --format json4. Monthly Reports Export
# Export monthly analysis
ocmonitor export monthly ~/.local/share/opencode/storage/message --format csv --output monthly_analysis.csv
# Last 6 months
ocmonitor export monthly ~/.local/share/opencode/storage/message --months 6 --format json5. Model Usage Export
# Export model breakdown
ocmonitor export models ~/.local/share/opencode/storage/message --format csv --output model_usage.csv
# JSON format with metadata
ocmonitor export models ~/.local/share/opencode/storage/message --format json --include-metadata6. Project Usage Export
# Export project breakdown
ocmonitor export projects ~/.local/share/opencode/storage/message --format csv --output project_usage.csv
# JSON format with detailed metadata
ocmonitor export projects ~/.local/share/opencode/storage/message --format json --include-metadata
# Filter by date range
ocmonitor export projects ~/.local/share/opencode/storage/message --start-date 2024-01-01 --end-date 2024-01-31 --format csvExport Options
| Option | Description | Example |
|---|---|---|
--format | Output format (csv, json) | --format csv |
--output | Output filename | --output report.csv |
--limit | Limit number of records | --limit 100 |
--days | Number of days to include | --days 30 |
--weeks | Number of weeks to include | --weeks 12 |
--months | Number of months to include | --months 6 |
--include-metadata | Include additional metadata | --include-metadata |
--include-raw-data | Include raw session data | --include-raw-data |
--start-date | Start date for filtering (YYYY-MM-DD) | --start-date 2024-01-01 |
--end-date | End date for filtering (YYYY-MM-DD) | --end-date 2024-01-31 |
--timeframe | Predefined timeframe filter | --timeframe weekly |
CSV Export Example
ocmonitor export sessions ~/.local/share/opencode/storage/message --format csv --output sessions.csvGenerated CSV Structure:
session_id,date,start_time,end_time,duration_minutes,model,total_cost,input_tokens,output_tokens,cache_tokens
ses_20250118_143022,2025-01-18,14:30:22,14:53:37,23.25,claude-sonnet-4,2.45,15420,8340,2100
ses_20250118_120830,2025-01-18,12:08:30,12:53:38,45.13,claude-opus-4,4.32,18650,9240,1850JSON Export Example
ocmonitor export sessions ~/.local/share/opencode/storage/message --format json --output sessions.json --include-metadataGenerated JSON Structure:
{
"metadata": {
"export_date": "2025-01-18T15:30:00Z",
"tool_version": "1.0.0",
"total_sessions": 25,
"date_range": {
"start": "2025-01-01",
"end": "2025-01-18"
}
},
"sessions": [
{
"session_id": "ses_20250118_143022",
"date": "2025-01-18",
"start_time": "14:30:22",
"end_time": "14:53:37",
"duration_minutes": 23.25,
"model": "claude-sonnet-4",
"total_cost": 2.45,
"tokens": {
"input": 15420,
"output": 8340,
"cache": 2100,
"total": 25860
},
"cost_breakdown": {
"input_cost": 0.46,
"output_cost": 1.25,
"cache_cost": 0.63,
"total_cost": 2.45
}
}
]
}Automated Export Scripts
Daily Export Automation
Create a script for daily exports:
#!/bin/bash
# daily_export.sh
DATE=$(date +%Y%m%d)
EXPORT_DIR="./reports"
MESSAGES_PATH="~/.local/share/opencode/storage/message"
mkdir -p $EXPORT_DIR
# Export daily report
ocmonitor export daily $MESSAGES_PATH \
--format csv \
--output "$EXPORT_DIR/daily_${DATE}.csv"
# Export sessions
ocmonitor export sessions $MESSAGES_PATH \
--format json \
--output "$EXPORT_DIR/sessions_${DATE}.json" \
--include-metadata
echo "Reports exported to $EXPORT_DIR/"Weekly Report Generation
#!/bin/bash
# weekly_report.sh
WEEK=$(date +%Y_W%U)
ocmonitor export weekly ~/.local/share/opencode/storage/message \
--format csv \
--output "weekly_report_${WEEK}.csv" \
--weeks 1
ocmonitor export models ~/.local/share/opencode/storage/message \
--format csv \
--output "model_usage_${WEEK}.csv"