--- name: forget description: Delete memories by search or ID — confirms before deleting --- # Mem0 Forget Delete specific memories from mem0. ## Execution ### Step 1: Parse input The user provides either: - A search query: `/mem0:forget auth module decisions` - A memory ID: `/mem0:forget ` If no argument, ask: "What should I forget? Provide a search query or memory ID." ### Step 2: Find memories **If memory ID provided** (looks like a UUID or hex string): - Call `get_memory` with the ID to verify it exists. - Show: `Found: "" (created )` **If search query provided:** - Call `search_memories` with: - `query=` - `filters={"AND": [{"user_id": ""}, {"app_id": ""}]}` - `top_k=10` - Show numbered list: ``` Found memories matching "": 1. (type: , created: ) [ID: ] 2. ... ``` ### Step 3: Confirm Ask: "Delete which memories? Enter numbers (e.g., 1,3,5), 'all', or 'cancel'." For a single memory ID, ask: "Delete this memory? [y/N]" **Never delete without confirmation.** This is destructive. ### Step 4: Delete For each confirmed memory, call `delete_memory` with the memory ID. ### Step 5: Report ``` Deleted memories. ``` If any deletions failed, report which ones and why. ## Undo recent writes If the user says "undo last N memories" or "undo last write": 1. Read session stats to get recently written memory IDs: ```bash SCRIPT_DIR="${CLAUDE_PLUGIN_ROOT:-${CODEX_PLUGIN_ROOT:-${CURSOR_PLUGIN_ROOT:-}}}/scripts" python3 "$SCRIPT_DIR/session_stats.py" peek ``` 2. Parse the `recent_ids` array from the JSON output. Each entry has `id`, `category`, `ts`. 3. Show the last N entries (default 1) and ask for confirmation. 4. Delete confirmed entries via `delete_memory`. If `recent_ids` is empty, tell the user: "No recent memory IDs tracked this session. Try `/mem0:tour` to browse recent memories, or `/mem0:forget ` to find specific ones."