PluginBench
Skill
Pass
Audit score 90

mem

runablehq/memory

Store and retrieve memories with full-text search across sessions using local SQLite.

What is mem?

mem is a CLI tool for persisting notes, facts, decisions, code snippets, and images in a local SQLite database. Use it to remember information across sessions, search your knowledge base, and avoid re-asking users for previously stored information.

  • Store memories with optional tags and images
  • Full-text search across all stored memories
  • Filter memories by tag or retrieve by ID
  • List recent memories or show complete content
  • Delete individual or multiple memories
  • Output results as plain text, full content, or JSON

How to install mem

npx skills add https://github.com/runablehq/memory --skill mem
Claude Code
Cursor
Windsurf
Cline

How to use mem

  1. 1.List recent memories with `mem`
  2. 2.Search memories with `mem "keyword"` or filter by tag with `mem "keyword" --tag tagname`
  3. 3.Store a memory with `mem + "content" --tag tagname`
  4. 4.Retrieve full content by ID with `mem <id>`
  5. 5.Delete memories with `mem - <id>` or multiple with `mem - id1 id2 id3`
  6. 6.Pipe long content to store with `echo "content" | mem + --tag tagname`

Use cases

Good for
  • Recall user preferences and project decisions without re-asking
  • Store and retrieve code snippets, commands, and configurations
  • Search your knowledge base before asking the user for information
  • Attach screenshots or diagrams to memories for context
  • Maintain architectural decisions and reasoning for future reference
Who it's for
  • Coding agents needing persistent memory across sessions
  • Developers managing code snippets and configurations
  • Teams documenting decisions and preferences
  • Anyone building a searchable personal knowledge base

mem FAQ

Where is memory data stored?

All data is stored locally in ~/.mem/mem.db as a SQLite database.

Can I search memories?

Yes, use full-text search with `mem "keyword"` or filter by tag with `mem "keyword" --tag tagname`.

How do I store images?

Use `mem + --image ./path/to/image.png --title "Description" --tag tagname` to attach images to memories.

What output formats are available?

Default shows one-line summaries, `--full` shows complete content, and `--json` outputs structured JSON for parsing.

Can I delete multiple memories at once?

Yes, use `mem - id1 id2 id3` to delete multiple memories by their IDs.

Full instructions (SKILL.md)

Source of truth, from runablehq/memory.


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                             # list recent memories
mem "deploy"                    # full-text search
mem "database" --tag db         # search filtered by tag
mem 7sjtNVyZrNIa                # get full content by ID
mem --tag prefs                 # list filtered by tag
mem "api" --limit 5 --json     # limit results, JSON output
mem --full                      # show full content for all

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>                      # delete one memory
mem - id1 id2 id3               # delete multiple

Piping

mem "old" --json | jq -r '.[].id' | xargs -I{} mem - {}
echo "long content" | mem + --tag notes

Best Practices

  1. Tag consistently — Use lowercase, descriptive tags like prefs, api, deploy, db
  2. Search before asking — Check if you've stored relevant information before asking the user
  3. Store decisions — When making architectural or design decisions, store the reasoning
  4. 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