--- name: stats description: 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: ```bash 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=` - `app_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": ""}, {"app_id": ""}, {"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`: ``` | | + memories | top: ``` ### W5: Empty state If no new memories in 7 days: ``` No new memories in the past week. Total: memories in . ```