/stats
Displays memory usage statistics for the current session and project including counts by category, age distribution, and API latency. Use when checking how many memories exist, reviewing session activity, or auditing memory distribution across categories.
$ npx -y skills add mem0ai/mem0 --skill stats --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/stats
Context preview
The summary Claude sees to decide when to auto-load this skill.
Displays memory usage statistics for the current session and project including counts by category, age distribution, and API latency. Use when checking how many memories exist, reviewing session activity, or auditing memory distribution across categories.
SKILL.md
stats.SKILL.mdname: stats
description: Displays memory usage statistics for the current session and project including counts by category, age distribution, and API latency. Use when checking how many memories exist, reviewing session activity, or auditing memory distribution across categories.
Mem0 Stats
Show session and lifetime memory statistics.
Execution
Step 1: Gather session stats
Run the session stats reporter:
SCRIPT_DIR="${CLAUDE_PLUGIN_ROOT:-${CODEX_PLUGIN_ROOT:-${CURSOR_PLUGIN_ROOT:-}}}/scripts"
python3 "$SCRIPT_DIR/session_stats.py" peek 2>/dev/null || echo "{}"The `peek` command returns JSON without clearing the stats file (unlike `report`).
If the script returns empty or errors, note "No session data available" and continue.
Step 2: Fetch lifetime and session stats from API
**Lifetime stats:** Call `get_memories` to fetch all memories for this project:
`filters={"AND": [{"user_id": "<active_user_id>"}, {"app_id": "<active_project_id>"}]}`, `page_size=100`
Group by: 1. `categories[0]` (platform-assigned) — primary grouping 2. `metadata.type` (agent-assigned) — secondary if no categories 3. `created_at` date — for age analysis
**Category normalization:** Merge `auto_capture` and `uncategorized` into a single `uncategorized` row. These are memories where the platform didn't assign a meaningful content category. Do NOT show `auto_capture` as its own row in the table.
**Session stats (local only):** Session stats come from the local stats file read in Step 1. Do NOT query the API with `run_id` or `metadata.session_id` filters — these return unreliable results because memories are stored without `run_id` and metadata filters on `session_id` are inconsistent.
The local stats file tracks adds and searches for the current session accurately.
Also run a `search_memories` MCP tool call with `query="project"`, `filters={"AND": [{"user_id": "<active_user_id>"}, {"app_id": "<active_project_id>"}]}`, `top_k=1` to measure round-trip latency. Note the time before and after the MCP call — do NOT attempt raw HTTP calls to the API.
Step 3: Display
Print a minimal dashboard. No ASCII bar charts — use a clean table layout:
## mem0 stats
**Session** (<session_id, first 12 chars>) — 3 written, 5 searches, categories: decision, convention
**Project: my-project** — 55 memories, API: 84ms
| Category | Count |
|----------------------|-------|
| decision | 24 |
| convention | 15 |
| anti_pattern | 6 |
| task_learning | 5 |
| user_preference | 3 |
| session_state | 2 |
**Age** — oldest: 2026-02-15, newest: 2026-05-23
< 7 days: 5 · 7–30d: 12 · 30–90d: 10 · > 90d: 8
**Identity** — user: kartik · project: my-project · branch: main
**Display rules:**
- Category table: sort by count descending, omit categories with 0 memories
- Age: single line with dot-separated buckets, computed from `created_at`
- Session line: skip if no session data available
- If only 1-2 total memories, skip the category table — just show the count
- Keep everything compact — no decorative borders or filler
Weekly digest mode
When invoked with `--weekly` (e.g., `/mem0:stats --weekly`), append a weekly activity digest after the standard stats dashboard:
W1: Fetch recent memories
Call `search_memories` in parallel with time-scoped queries: 1. `query="decisions made this week"`, `filters={"AND": [{"user_id": "<id>"}, {"app_id": "<pid>"}, {"created_at": {"gte": "<7 days ago YYYY-MM-DD>"}}]}`, `top_k=20` 2. `query="bugs errors fixes"`, same time filter, `top_k=20` 3. `query="patterns conventions learnings"`, same time filter, `top_k=20`
W2: Analyze
Merge by ID. Group into "New this week" by `categories[0]` or `metadata.type`. Calculate: memories added last 7 days, most active categories, most active day.
W3: Display
Append after the standard stats:
### This week (May 16 – May 23)
+12 memories — most active: Wednesday (5)
| Category | New |
|---------------|-----|
| decision | 5 |
| task_learning | 4 |
| bug_fix | 3 |
**Highlights**
- <2-3 sentence summary of most important decisions/learnings this week>
W4: Write digest file
Write to `~/.mem0/weekly-digest.md` (overwrite). Append one-line to `~/.mem0/digest-history.log`:
<YYYY-MM-DD> | <project_id> | +<new_count> memories | top: <top_category>
W5: Empty state
If no new memories in 7 days:
No new memories in the past week. Total: <N> memories in <project_id>.
Read more
name: stats description: Displays memory usage statistics for the current session and project including counts by category, age distribution, and API latency. Use when checking how many memories exist, reviewing session activity, or auditing memory distribution across categories.
Mem0 Stats
Show session and lifetime memory statistics.
Execution
Step 1: Gather session stats
Run the session stats reporter:
SCRIPT_DIR="${CLAUDE_PLUGIN_ROOT:-${CODEX_PLUGIN_ROOT:-${CURSOR_PLUGIN_ROOT:-}}}/scripts"
python3 "$SCRIPT_DIR/session_stats.py" peek 2>/dev/null || echo "{}"The `peek` command returns JSON without clearing the stats file (unlike `report`).
If the script returns empty or errors, note "No session data available" and continue.
Step 2: Fetch lifetime and session stats from API
**Lifetime stats:** Call `get_memories` to fetch all memories for this project:
`filters={"AND": [{"user_id": "<active_user_id>"}, {"app_id": "<active_project_id>"}]}`, `page_size=100`
Group by: 1. `categories[0]` (platform-assigned) — primary grouping 2. `metadata.type` (agent-assigned) — secondary if no categories 3. `created_at` date — for age analysis
**Category normalization:** Merge `auto_capture` and `uncategorized` into a single `uncategorized` row. These are memories where the platform didn't assign a meaningful content category. Do NOT show `auto_capture` as its own row in the table.
**Session stats (local only):** Session stats come from the local stats file read in Step 1. Do NOT query the API with `run_id` or `metadata.session_id` filters — these return unreliable results because memories are stored without `run_id` and metadata filters on `session_id` are inconsistent.
The local stats file tracks adds and searches for the current session accurately.
Also run a `search_memories` MCP tool call with `query="project"`, `filters={"AND": [{"user_id": "<active_user_id>"}, {"app_id": "<active_project_id>"}]}`, `top_k=1` to measure round-trip latency. Note the time before and after the MCP call — do NOT attempt raw HTTP calls to the API.
Step 3: Display
Print a minimal dashboard. No ASCII bar charts — use a clean table layout:
## mem0 stats **Session** (<session_id, first 12 chars>) — 3 written, 5 searches, categories: decision, convention **Project: my-project** — 55 memories, API: 84ms | Category | Count | |----------------------|-------| | decision | 24 | | convention | 15 | | anti_pattern | 6 | | task_learning | 5 | | user_preference | 3 | | session_state | 2 | **Age** — oldest: 2026-02-15, newest: 2026-05-23 < 7 days: 5 · 7–30d: 12 · 30–90d: 10 · > 90d: 8 **Identity** — user: kartik · project: my-project · branch: main
**Display rules:**
- Category table: sort by count descending, omit categories with 0 memories
- Age: single line with dot-separated buckets, computed from `created_at`
- Session line: skip if no session data available
- If only 1-2 total memories, skip the category table — just show the count
- Keep everything compact — no decorative borders or filler
Weekly digest mode
When invoked with `--weekly` (e.g., `/mem0:stats --weekly`), append a weekly activity digest after the standard stats dashboard:
W1: Fetch recent memories
Call `search_memories` in parallel with time-scoped queries: 1. `query="decisions made this week"`, `filters={"AND": [{"user_id": "<id>"}, {"app_id": "<pid>"}, {"created_at": {"gte": "<7 days ago YYYY-MM-DD>"}}]}`, `top_k=20` 2. `query="bugs errors fixes"`, same time filter, `top_k=20` 3. `query="patterns conventions learnings"`, same time filter, `top_k=20`
W2: Analyze
Merge by ID. Group into "New this week" by `categories[0]` or `metadata.type`. Calculate: memories added last 7 days, most active categories, most active day.
W3: Display
Append after the standard stats:
### This week (May 16 – May 23) +12 memories — most active: Wednesday (5) | Category | New | |---------------|-----| | decision | 5 | | task_learning | 4 | | bug_fix | 3 | **Highlights** - <2-3 sentence summary of most important decisions/learnings this week>
W4: Write digest file
Write to `~/.mem0/weekly-digest.md` (overwrite). Append one-line to `~/.mem0/digest-history.log`:
<YYYY-MM-DD> | <project_id> | +<new_count> memories | top: <top_category>
W5: Empty state
If no new memories in 7 days:
No new memories in the past week. Total: <N> memories in <project_id>.
Mem0 ("mem-zero") enhances AI assistants and agents with an intelligent memory layer, enabling personalized AI interactions.
Repo: mem0ai/mem0
Other skills on mem0.
- /context-loader
Searches and injects relevant memories into context before starting work on a task. Use when beginning a new task, switching context, or when project history, past decisions, or coding conventions need to be loaded.
Open skill - /dream
Consolidates stored memories by merging duplicates, resolving contradictions, and pruning stale entries. Use when memory count is high, search results feel noisy or repetitive, or periodic cleanup is needed to maintain memory quality.
Open skill - /export
Exports all project memories to a portable Markdown file for backup or migration. Use when backing up memories, migrating to another project, sharing memory state with teammates, or archiving before cleanup.
Open skill - /forget
Deletes memories by search query or memory ID with confirmation before removal. Use when removing outdated decisions, incorrect memories, sensitive data, or cleaning up after experiments. Also handles undo of recent additions.
Open skill - /health
Diagnoses mem0 connectivity, API key validity, and memory read/write functionality. Use when memory operations fail, searches return empty, add_memory errors occur, MCP connection drops, or to verify the plugin is working correctly.
Open skill - /import
Imports memories from an exported Markdown file or MEMORY.md into the current project. Use when migrating from another project, restoring from backup, importing Claude Code native MEMORY.md content, or setting up a new project with existing knowledge.
Open skill

