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.
npx skills add https://github.com/first-fluke/oh-my-agent --skill oma-recap
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: ~12:00, PM: 12:00~18:00, Evening: 18:00~..agents/results/recap/.language setting in .agents/oma-config.yaml if configured.10. No em dashes: Use commas, periods, or parentheses instead of — (em dash).
oma recap --json.agents/results/recap/.agents/oma-config.yaml~/.claude/history.jsonlIntegration with protocols.io API for managing scientific protocols. This skill should be used when working with protocols.io to search, create, update, or publish protocols; manage protocol steps and materials; handle discussions and comments; organize workspaces; upload and manage files; or integrate protocols.io functionality into workflows. Applicable for protocol discovery, collaborative protocol development, experiment tracking, lab protocol management, and scientific documentation.
Analyzes job descriptions and generates tailored resumes that highlight relevant experience, skills, and achievements to maximize interview chances
Generate Excalidraw diagrams from natural language descriptions. Use when asked to "create a diagram", "make a flowchart", "visualize a process", "draw a system architecture", "create a mind map", or "generate an Excalidraw file". Supports flowcharts, relationship diagrams, mind maps, and system architecture diagrams. Outputs .excalidraw JSON files that can be opened directly in Excalidraw.
Build and distribute Expo development clients locally or via TestFlight
Use when you have a written implementation plan to execute in a separate session with review checkpoints
Data structure for annotated matrices in single-cell analysis. Use when working with .h5ad files or integrating with the scverse ecosystem. This is the data format skill—for analysis workflows use scanpy; for probabilistic models use scvi-tools; for population-scale queries use cellxgene-census.
Benchling R&D platform integration. Access registry (DNA, proteins), inventory, ELN entries, workflows via API, build Benchling Apps, query Data Warehouse, for lab data management automation.
Comprehensive molecular biology toolkit. Use for sequence manipulation, file parsing (FASTA/GenBank/PDB), phylogenetics, and programmatic NCBI/PubMed access (Bio.Entrez). Best for batch processing, custom bioinformatics pipelines, BLAST automation. For quick lookups use gget; for multi-service integration use bioservices.
Take first-fluke/oh-my-agent-oma-recap from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.