Analyze conversation histories from multiple AI tools (Claude, Codex, Gemini, Qwen, Cursor) and generate themed daily/period work summaries. Filter by date or time window.
Analyze AI tool conversation histories for a given period and generate themed work summaries.
oma retrooma dashboardoma statsDetermine the target date or window from the user's natural language input. Default is today.
--date YYYY-MM-DD--date YYYY-MM-DD--window Nd--window 1d)Extract normalized conversation history via CLI.
# Default (today, all tools)
oma recap --json
# Time window
oma recap --window 7d --json
# Specific date
oma recap --date 2026-04-10 --json
# Tool filter
oma recap --tool claude,gemini --json
Fallback when CLI is not installed — process Claude history only via inline jq:
TARGET_DATE=$(date +%Y-%m-%d)
TZ=Asia/Seoul start_ts=$(date -j -f "%Y-%m-%d %H:%M:%S" "${TARGET_DATE} 00:00:00" +%s)000
end_ts=$((start_ts + 86400000))
TZ=Asia/Seoul jq -r --argjson start "$start_ts" --argjson end "$end_ts" '
select(.timestamp >= $start and .timestamp < $end and .display != null and .display != "") |
{
time: (.timestamp / 1000 | localtime | strftime("%H:%M")),
project: (.project | split("/") | .[-1]),
prompt: (.display | gsub("\n"; " ") | if length > 150 then .[0:150] + "..." else . end)
}
' ~/.claude/history.jsonl
Read all extracted data and analyze with the following criteria:
Grouping rules:
Cross-tool analysis:
Extract from each theme:
Save results to .agents/results/recap/{date}.md and display simultaneously.
Output in the following markdown format. Response language follows language setting in .agents/oma-config.yaml.
## {date} Recap
> **TL;DR**
> - {What I accomplished 1 — project name + outcome}
> - {What I accomplished 2}
> - {What I accomplished 3}
### Overview
2-3 sentence summary of the day. Written from "I did X" perspective.
Focus on outcomes and progress, not tool ratios or technical details.
### {Theme 1} (AM 09:36~11:30)
- Core work performed
- Key decisions
- 2-4 bullets per theme
### {Theme 2} (PM 13:33~15:21)
- Core work performed
- Key decisions
### Miscellaneous
- Brief summary of sub-15-minute tasks
### Tool Usage Patterns
- Tool usage ratios and primary purposes
- Notable tool-switching patterns
For any multi-day window, use a project-driven structure like a sprint report. Focus on what was accomplished per project, not day-by-day chronology.
## {start} ~ {end} Monthly Recap
> **TL;DR**
> - {What I accomplished 1 — project name + outcome}
> - {What I accomplished 2}
> - {What I accomplished 3}
### Overview
3-5 sentence narrative of the month. Major focus shifts week-by-week,
key milestones achieved, and overall direction. Written from "I did X" perspective.
### {Project A}
What this project is, what was accomplished during the period.
- Key milestone or deliverable 1
- Key milestone or deliverable 2
- Key decision made
- Current status (shipped / in progress / blocked)
### {Project B}
- ...
### Side Projects
Projects with <30 prompts, summarized briefly.
- {project}: one-line summary
- {project}: one-line summary
### Tool Usage Patterns
- Tool usage ratios and how they evolved over the month
- Notable shifts (e.g., "started using Codex mid-month")
Multi-day grouping rules:
Save to .agents/results/recap/{date}.md.
For window ranges, use {start-date}~{end-date}.md format.
# Example paths
.agents/results/recap/2026-04-12.md
.agents/results/recap/2026-04-06~2026-04-12.md
(AM/PM/Evening HH:MM~HH:MM). AM: .agents/results/recap/.language setting in .agents/oma-config.yaml if configured.— (em dash).