| name | mem |
| description | Store and retrieve memories (notes, facts, decisions, snippets, images) using a local SQLite database with full-text search. Use when you need to remember information across sessions, recall previous decisions, store code snippets, or search your knowledge base. |
mem — Agent Memory Store
A CLI tool for storing and retrieving memories with full-text search. Data is stored locally in ~/.mem/mem.db.
When to Use
- Remember user preferences, project decisions, important facts
- Store code snippets, commands, configurations for later recall
- Search your knowledge base before asking the user for information you may have stored
- Attach images (screenshots, diagrams) to memories
Commands
Three operators: (none) = recall, + = remember, - = forget.
Recall (search, list, get)
mem
mem "deploy"
mem "database" --tag db
mem 7sjtNVyZrNIa
mem --tag prefs
mem "api" --limit 5 --json
mem --full
Remember
mem + "user prefers dark mode" --tag prefs
mem + "deploy: bun build --compile" --tag deploy
mem + "chose SQLite for simplicity" --tag architecture
mem + --image ./screenshot.png --title "Current UI" --tag ui
echo "long content" | mem + --tag notes
Forget
mem - <id>
mem - id1 id2 id3
Piping
mem "old" --json | jq -r '.[].id' | xargs -I{} mem - {}
echo "long content" | mem + --tag notes
Best Practices
- Tag consistently — Use lowercase, descriptive tags like
prefs, api, deploy, db
- Search before asking — Check if you've stored relevant information before asking the user
- Store decisions — When making architectural or design decisions, store the reasoning
- Keep memories atomic — One concept per memory for better searchability
Output Formats
- Default: One-line summary per result
--full: Complete content inline
--json: Structured JSON for parsing