From oma
Analyzes conversation histories from AI tools (Claude, Codex, Gemini, Qwen, Cursor) to generate themed daily/period work summaries. Filters by date/time window for standups, retros, and logs.
npx claudepluginhub first-fluke/oh-my-agent --plugin omaThis skill uses the workspace's default tool permissions.
Analyze AI tool conversation histories for a given period and generate themed work summaries.
Analyzes worklog files to generate daily standups, weekly summaries, monthly reviews, performance reviews, and resume-ready bullets using Python script.
Generates structured daily journal entries from AI agent's perspective, capturing projects, wins, frustrations, learnings, and emotions. Useful for diary, journal, or self-reflection requests.
Converts Claude Code JSONL conversation logs to Markdown for retrospectives, with incremental/full/project-specific options, index summaries, and analysis templates like growth tracking and bug patterns.
Share bugs, ideas, or general feedback.
Analyze AI tool conversation histories for a given period and generate themed work summaries.
Collect AI tool conversation history for a date or window and synthesize it into a themed, project-oriented recap with saved Markdown output.
oma retrooma dashboardoma statsoma recap --json or fallback sources.agents/results/recap/{date}.md or range filenameoma recap --json~/.claude/history.jsonl.agents/oma-config.yaml for language behavior| Action | SSL primitive | Evidence |
|---|---|---|
| Resolve date/window | INFER | Natural-language date rules |
| Collect history | CALL_TOOL | oma recap --json or jq fallback |
| Read extracted records | READ | Conversation history |
| Group themes/projects | INFER | Time/content grouping rules |
| Validate output shape | VALIDATE | Daily or multi-day template |
| Write recap | WRITE | .agents/results/recap/ |
| Report summary | NOTIFY | Displayed recap |
oma recap --jsonjq fallback for Claude historyoma recap --json
oma recap --window 7d --json
oma recap --date YYYY-MM-DD --json
| Scope | Resource target |
|---|---|
LOCAL_FS | Conversation history and recap output files |
PROCESS | oma recap, jq, date commands |
USER_DATA | Conversation prompts and project activity |
MEMORY | Theme grouping and summary notes |
.agents/results/recap/.Determine the target date or window from the user's natural language input. Default is today.
Resolution rules:
--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).oma recap --json.agents/results/recap/.agents/oma-config.yaml~/.claude/history.jsonl