Session Recap
rohitg00/agentmemory
Summarizes recent agent sessions for the current project by date, with each session's title, status, observation count and top highlights from memory.
Writes a narrative Journey Into report on a project's whole development history, built from the timeline that claude-mem has recorded.
$ npx skills add thedotmack/claude-mem --skill timeline-report -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install thedotmack/claude-mem timeline-report --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/thedotmack/claude-mem.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugin/skills/timeline-report .claude/skills/timeline-report && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "timeline-report" agent skill from https://github.com/thedotmack/claude-mem/tree/main/plugin/skills/timeline-report into .claude/skills/timeline-report/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "timeline-report", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/thedotmack/claude-mem/tree/main/plugin/skills/timeline-reportType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add thedotmack/claude-mem --skill timeline-report -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install thedotmack/claude-mem timeline-report --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/thedotmack/claude-mem.git skills-src && mkdir -p .agents/skills && cp -r skills-src/plugin/skills/timeline-report .agents/skills/timeline-report && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "timeline-report" agent skill from https://github.com/thedotmack/claude-mem/tree/main/plugin/skills/timeline-report into .agents/skills/timeline-report/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "timeline-report", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add thedotmack/claude-mem --skill timeline-report -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install thedotmack/claude-mem timeline-report --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/thedotmack/claude-mem.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/plugin/skills/timeline-report .cursor/skills/timeline-report && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "timeline-report" agent skill from https://github.com/thedotmack/claude-mem/tree/main/plugin/skills/timeline-report into .cursor/skills/timeline-report/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "timeline-report", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/thedotmack/claude-mem.git --path plugin/skills/timeline-report--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add thedotmack/claude-mem --skill timeline-report -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install thedotmack/claude-mem timeline-report --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/thedotmack/claude-mem.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/plugin/skills/timeline-report .gemini/skills/timeline-report && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "timeline-report" agent skill from https://github.com/thedotmack/claude-mem/tree/main/plugin/skills/timeline-report into .gemini/skills/timeline-report/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "timeline-report", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install thedotmack/claude-mem timeline-reportInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add thedotmack/claude-mem --skill timeline-report -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/thedotmack/claude-mem.git skills-src && mkdir -p .github/skills && cp -r skills-src/plugin/skills/timeline-report .github/skills/timeline-report && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "timeline-report" agent skill from https://github.com/thedotmack/claude-mem/tree/main/plugin/skills/timeline-report into .github/skills/timeline-report/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "timeline-report", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add thedotmack/claude-mem --skill timeline-report -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install thedotmack/claude-mem timeline-report --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/thedotmack/claude-mem.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/plugin/skills/timeline-report .opencode/skills/timeline-report && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "timeline-report" agent skill from https://github.com/thedotmack/claude-mem/tree/main/plugin/skills/timeline-report into .opencode/skills/timeline-report/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "timeline-report", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
timeline-reportWrites a narrative Journey Into report on a project's whole development history, built from the timeline that claude-mem has recorded.
The agent first settles which project to analyze, asking if it is unclear and using the directory name otherwise. In a git worktree it switches to the parent project's name, because that is where the recorded history lives. It then resolves the claude-mem worker port from the CLAUDE_MEM_WORKER_PORT variable, the settings file in ~/.claude-mem, or a per-user default.
With the port known, it fetches the complete compressed timeline from the local worker API with curl, a markdown history of every observation, session boundary and summary for that project. From that it writes a long narrative of how the project developed. The claude-mem worker must be running and the project must already have observations recorded. The excerpt is cut off, so the report's later steps are not described.
4 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit fa8ab09. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
gitcurlnodeFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git and curl, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Project Timeline Report loads about 3.1k tokens when it runs. Until then it costs about 64 tokens; SKILL.md has 612 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from thedotmack/claude-mem at commit fa8ab09, republished under its Apache-2.0 licence (© thedotmack). 612 words, ~3,142 tokens.
.claude/skills/timeline-report/SKILL.md (or your agent's skills folder).Generate a comprehensive narrative analysis of a project's entire development history using claude-mem's persistent memory timeline.
Use when users ask for:
The claude-mem worker must be running. The project must have claude-mem observations recorded.
Resolve the worker port (do this once at the start and reuse $WORKER_PORT in every curl call below):
WORKER_PORT="${CLAUDE_MEM_WORKER_PORT:-$(node -e "const fs=require('fs'),p=require('path'),os=require('os');const uid=(typeof process.getuid==='function'?process.getuid():77);const fallback=String(37700+(uid%100));try{const s=JSON.parse(fs.readFileSync(p.join(os.homedir(),'.claude-mem','settings.json'),'utf-8'));process.stdout.write(String(s.CLAUDE_MEM_WORKER_PORT||fallback));}catch{process.stdout.write(fallback);}" 2>/dev/null)}"This honors CLAUDE_MEM_WORKER_PORT env, then ~/.claude-mem/settings.json, then falls back to the per-UID default 37700 + (uid % 100) — matching how the worker itself picks its port. Required for multi-account setups (#2101) and any user who has overridden the default port (#2103).
Ask the user which project to analyze if not obvious from context. The project name is typically the directory name of the project (e.g., "tokyo", "my-app"). If the user says "this project", use the current working directory's basename.
Worktree Detection: Before using the directory basename, check if the current directory is a git worktree. In a worktree, the data source is the parent project, not the worktree directory itself. Run:
git_dir=$(git rev-parse --git-dir 2>/dev/null)
git_common_dir=$(git rev-parse --git-common-dir 2>/dev/null)
if [ "$git_dir" != "$git_common_dir" ]; then
# We're in a worktree — resolve the parent project name
parent_project=$(basename "$(dirname "$git_common_dir")")
echo "Worktree detected. Parent project: $parent_project"
else
parent_project=$(basename "$PWD")
fi
echo "$parent_project"If a worktree is detected, use $parent_project (the basename of the parent repo) as the project name for all API calls. Inform the user: "Detected git worktree. Using parent project '[name]' as the data source."
Use Bash to fetch the complete timeline from the claude-mem worker API:
curl -s "http://localhost:${WORKER_PORT}/api/context/inject?project=PROJECT_NAME&full=true"This returns the entire compressed timeline -- every observation, session boundary, and summary across the project's full history. The response is pre-formatted markdown optimized for LLM consumption.
Token estimates: The full timeline size depends on the project's history:
If the response is empty or returns an error, the worker may not be running or the project name may be wrong. Try curl -s "http://localhost:${WORKER_PORT}/api/search?query=*&limit=1" to verify the worker is healthy.
Before proceeding, estimate the token count of the fetched timeline (roughly 1 token per 4 characters). Report this to the user:
Timeline fetched: ~X observations, estimated ~Yk tokens.
This analysis will consume approximately Yk input tokens + ~5-10k output tokens.
Proceed? (y/n)Wait for user confirmation before continuing if the timeline exceeds 100K tokens.
Deploy an Agent (using the Task tool) with the full timeline and the following analysis prompt. Pass the ENTIRE timeline as context to the agent. The agent should also be instructed to query the SQLite database at ~/.claude-mem/claude-mem.db for the Token Economics section.
Agent prompt:
You are a technical historian analyzing a software project's complete development timeline from claude-mem's persistent memory system. The timeline below contains every observation, session boundary, and summary recorded across the project's entire history.
You also have access to the claude-mem SQLite database at ~/.claude-mem/claude-mem.db. Use it to run queries for the Token Economics & Memory ROI section. The database has an "observations" table with columns: id, memory_session_id, project, text, type, title, subtitle, facts, narrative, concepts, files_read, files_modified, prompt_number, discovery_tokens, created_at, created_at_epoch, content_hash, generated_by_model, relevance_count, merged_into_project, agent_type, agent_id, metadata.
Write a comprehensive narrative report titled "Journey Into [PROJECT_NAME]" that covers:
## Required Sections
1. **Project Genesis** -- When and how the project started. What were the first commits, the initial vision, the founding technical decisions? What problem was being solved?
2. **Architectural Evolution** -- How did the architecture change over time? What were the major pivots? Why did they happen? Trace the evolution from initial design through each significant restructuring.
3. **Key Breakthroughs** -- Identify the "aha" moments: when a difficult problem was finally solved, when a new approach unlocked progress, when a prototype first worked. These are the observations where the tone shifts from investigation to resolution.
4. **Work Patterns** -- Analyze the rhythm of development. Identify debugging cycles (clusters of bug fixes), feature sprints (rapid observation sequences), refactoring phases (architectural changes without new features), and exploration phases (many discoveries without changes).
5. **Technical Debt** -- Track where shortcuts were taken and when they were paid back. Identify patterns of accumulation (rapid feature work) and resolution (dedicated refactoring sessions).
6. **Challenges and Debugging Sagas** -- The hardest problems encountered. Multi-session debugging efforts, architectural dead-ends that required backtracking, platform-specific issues that took days to resolve.
7. **Memory and Continuity** -- How did persistent memory (claude-mem itself, if applicable) affect the development process? Were there moments where recalled context from prior sessions saved significant time or prevented repeated mistakes?
8. **Token Economics & Memory ROI** -- Quantitative analysis of how memory recall saved work:
- Query the database directly for these metrics using `sqlite3 ~/.claude-mem/claude-mem.db`
- Count total discovery_tokens across all observations (the original cost of all work)
- Count sessions that had context injection available (sessions after the first)
- Calculate the compression ratio: average discovery_tokens vs average read_tokens per observation
- Identify the highest-value observations (highest discovery_tokens -- these are the most expensive decisions, bugs, and discoveries that memory prevents re-doing)
- Identify explicit recall events (observations where narrative mentions "recalled", "from memory", "previous session")
- Estimate passive recall savings: each session with context injection receives ~50 observations. Use a 30% relevance factor (conservative estimate that 30% of injected context prevents re-work). Savings = sessions_with_context × avg_discovery_value_of_50_obs_window × 0.30
- Estimate explicit recall savings: ~10K tokens per explicit recall query
- Calculate net ROI: total_savings / total_read_tokens_invested
- Present as a table with monthly breakdown
- Highlight the top 5 most expensive observations by discovery_tokens -- these represent the highest-value memories in the system (architecture decisions, hard bugs, implementation plans that cost 100K+ tokens to produce originally)
Use these SQL queries as a starting point:
```sql
-- Total discovery tokens
SELECT SUM(discovery_tokens) FROM observations WHERE project = 'PROJECT_NAME';
-- Sessions with context available (not the first session)
SELECT COUNT(DISTINCT memory_session_id) FROM observations WHERE project = 'PROJECT_NAME';
-- Average tokens per observation
SELECT AVG(discovery_tokens) as avg_discovery, AVG(LENGTH(title || COALESCE(subtitle,'') || COALESCE(narrative,'') || COALESCE(facts,'')) / 4) as avg_read FROM observations WHERE project = 'PROJECT_NAME' AND discovery_tokens > 0;
-- Top 5 most expensive observations (highest-value memories)
SELECT id, title, discovery_tokens FROM observations WHERE project = 'PROJECT_NAME' ORDER BY discovery_tokens DESC LIMIT 5;
-- Monthly breakdown
SELECT strftime('%Y-%m', created_at) as month, COUNT(*) as obs, SUM(discovery_tokens) as total_discovery, COUNT(DISTINCT memory_session_id) as sessions FROM observations WHERE project = 'PROJECT_NAME' GROUP BY month ORDER BY month;
-- Explicit recall events
SELECT COUNT(*) FROM observations WHERE project = 'PROJECT_NAME' AND (narrative LIKE '%recalled%' OR narrative LIKE '%from memory%' OR narrative LIKE '%previous session%');Timeline Statistics -- Quantitative summary:
Lessons and Meta-Observations -- What patterns emerge from the full history? What would a new developer learn about this codebase from reading the timeline? What recurring themes or principles guided development?
Here is the complete project timeline:
[TIMELINE CONTENT GOES HERE]
### Step 5: Save the Report
Save the agent's output as a markdown file. Default location:
./journey-into-PROJECT_NAME.md
Or if the user specified a different output path, use that instead.
### Step 6: Report Completion
Tell the user:
- Where the report was saved
- The approximate token cost (input timeline + output report)
- The date range covered
- Number of observations analyzed
## Error Handling
- **Empty timeline:** "No observations found for project 'X'. Check the project name with: `curl -s \"http://localhost:${WORKER_PORT}/api/search?query=*&limit=1\"`"
- **Worker not running:** "The claude-mem worker is not responding on port ${WORKER_PORT}. Start it with your usual method or check `ps aux | grep worker-service`."
- **Timeline too large:** For projects with 50,000+ observations, the timeline may exceed context limits. Suggest using date range filtering: `curl -s "http://localhost:${WORKER_PORT}/api/context/inject?project=X&full=true"` -- the current endpoint returns all observations; for extremely large projects, the user may want to analyze in time-windowed segments.
## Example
User: "Write a journey report for the tokyo project"
1. Fetch: `curl -s "http://localhost:${WORKER_PORT}/api/context/inject?project=tokyo&full=true"`
2. Estimate: "Timeline fetched: ~34,722 observations, estimated ~718K tokens. Proceed?"
3. User confirms
4. Deploy analysis agent with full timeline
5. Save to `./journey-into-tokyo.md`
6. Report: "Report saved. Analyzed 34,722 observations spanning Oct 2025 - Mar 2026 (~718K input tokens, ~8K output tokens)."© thedotmack, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in plugin/skills/timeline-report of thedotmack/claude-mem.
Open the folder on GitHubat commit fa8ab09
Project Timeline Report next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Project Timeline Report this skillthedotmack/claude-mem | 99k | — | ~3.1k | Automated safety check: Pass | Apache-2.0 | |
| Session Recaprohitg00/agentmemory | 29k | — | ~510 | Automated safety check: Pass | Apache-2.0 | |
| Latent Briefingguanyang/open-agent-hub | 977 | 1 repos | ~3.3k | Automated safety check: Pass | MIT | |
| Neat-Freak Knowledge CloseoutKKKKhazix/khazix-skills | 21k | — | ~1.9k | Automated safety check: Pass | MIT | |
| Beads Task Memorygastownhall/beads | 28k | — | ~1.2k | Automated safety check: Pass | MIT | |
| Compound Learning WriterEveryInc/compound-engineering-plugin | 25k | — | ~2k | Automated safety check: Pass | MIT |
rohitg00/agentmemory
Summarizes recent agent sessions for the current project by date, with each session's title, status, observation count and top highlights from memory.
guanyang/open-agent-hub
This skill should be used when the user asks to "share memory between agents", "KV cache compaction for multi-agent", "orchestrator worker context", "latent briefing", "reduce worker tokens"…
KKKKhazix/khazix-skills
Brings project docs, agent rule files, authorized memory and leftover workspace files back in line with what the code and runtime actually do at the end of a work session.
gastownhall/beads
Tracks multi-session work with dependencies in the bd issue tracker so the agent can find ready tasks and recover its context after conversation compaction.
EveryInc/compound-engineering-plugin
Records one solved and verified problem as a durable learning in the repository, but only when the reasoning is not already clear from the final code, tests or docs.
EveryInc/compound-engineering-plugin
Audits a repo's stored learnings against the current codebase, fixes stale, overlapping or superseded docs and reports on every document.
thedotmack/claude-mem
Walks you through creating, installing and verifying a custom claude-mem mode, including note types, tags and optional Telegram alerts for chosen memories.
thedotmack/claude-mem
Keeps watching a pull request, fixing real review and CI problems and resolving stale threads, until it is clean and ready to merge.
thedotmack/claude-mem
Use this when setting up claude-mem on Grok Bot: local worker plus CMEM Pro observer (default), optional host-login observer, or remote cmem.ai. No Cursor…
thedotmack/claude-mem
Checks claude-mem cloud sync status and guides you through connecting a cmem.ai Pro account without the sync token ever passing through the chat.
thedotmack/claude-mem
Audits a design against Dieter Rams' ten principles of good design, scores each with evidence, and hands off a make-plan prompt for a new, refined or redesigned outcome.
thedotmack/claude-mem
Writes a HANDOFF.md capturing goal, state, files, failed attempts and next steps so a fresh agent session can continue exactly where this one stopped.
Categories
Writes a narrative Journey Into report on a project's whole development history, built from the timeline that claude-mem has recorded. The agent first settles which project to analyze, asking if it is unclear and using the directory name otherwise. In a git worktree it switches to the parent project's name, because that is where the recorded history lives.
Project Timeline Report fits situations like: asking for the full history or story of a project; writing a retrospective from months of recorded agent sessions; summarizing the whole development journey of the current repo.
Run `npx skills add thedotmack/claude-mem --skill timeline-report -a claude-code`. Or copy the skill folder (plugin/skills/timeline-report in thedotmack/claude-mem) into .claude/skills/timeline-report in your project. Claude Code loads it when a task matches its description.
Run `npx skills add thedotmack/claude-mem --skill timeline-report -a codex`. Or copy the skill folder (plugin/skills/timeline-report in thedotmack/claude-mem) into .agents/skills/timeline-report in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add thedotmack/claude-mem --skill timeline-report -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/timeline-report, .gemini/skills/timeline-report, .github/skills/timeline-report and .opencode/skills/timeline-report in your project.
Going by SKILL.md and its folder, Project Timeline Report needs the command-line tools its instructions call (git, curl and node). Our summary lists: The claude-mem worker running locally; A project with claude-mem observations already recorded; curl and Node.js available in the shell.
SKILL.md contains no URLs. Its commands use git and curl, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Project Timeline Report is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.1k tokens (SKILL.md is roughly 13k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Project Timeline Report: Session Recap (rohitg00/agentmemory, 29k stars), Latent Briefing (guanyang/open-agent-hub, 977 stars), Neat-Freak Knowledge Closeout (KKKKhazix/khazix-skills, 21k stars) and Beads Task Memory (gastownhall/beads, 28k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
thedotmack (a GitHub user) maintains it in thedotmack/claude-mem, which has 99,047 GitHub stars. The repository holds 26 skills in this directory. The repository was last updated on October 9, 2026.
Source: thedotmack/claude-mem on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.