Files
mem0/mem0-plugin/skills/stats/SKILL.md
T

3.4 KiB
Raw Blame History

name, description
name description
stats Show memory usage stats for this session and project

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 stats from API

Call get_memories with:

  • user_id=<active_user_id>
  • app_id=<active_project_id>
  • page_size=100

Count the returned memories. Group them by:

  1. categories[0] (platform-assigned) — primary grouping
  2. metadata.type (agent-assigned) — secondary if no categories
  3. created_at date — for age analysis

Also run a search_memories call with query="project", limit=1 to measure round-trip latency (time the call).

Step 3: Display

Print a minimal dashboard. No ASCII bar charts — use a clean table layout:

## mem0 stats

**Session** — 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>"}}]}, limit=20
  2. query="bugs errors fixes", same time filter, limit=20
  3. query="patterns conventions learnings", same time filter, limit=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>.