Memory
A hybrid search memory system for your project. Save important information and find it later using semantic search.
First run: If slow on first use, run
bunx memory-search --warmupto pre-download the embedding model (~300MB).
Memory File Structure
code
project/
├── MEMORY.md # Long-term: preferences, patterns, decisions
└── memory/
└── YYYY-MM-DD.md # Daily: session notes, context, progress
Searching Memory
When the user asks about past decisions, preferences, or wants to recall information:
bash
bunx memory-search "QUERY_HERE"
Search Examples
bash
bunx memory-search "database choice decision" bunx memory-search "error handling pattern" bunx memory-search "user preferences coding style" bunx memory-search "authentication implementation"
Output Format
Returns matching snippets with:
- •path: File where the match was found
- •lines: Line range (startLine-endLine)
- •score: Relevance score (0-1)
- •snippet: The matching text
After Searching
- •Present the relevant results to the user
- •If they want more detail, use
Readto get the full file content - •If no results found, offer to search with different terms
Saving to Memory
When the user says "remember this", "save this", "note that", or wants to store information:
Decide Which File
MEMORY.md (Permanent):
- •User preferences ("I prefer TypeScript")
- •Project decisions ("We chose PostgreSQL for X reason")
- •Coding patterns ("Always use async/await")
- •Architecture decisions
- •Important URLs, contacts, credentials references
memory/YYYY-MM-DD.md (Daily):
- •What was worked on today
- •Bugs found and fixed
- •Ideas to explore later
- •Meeting notes
- •Temporary context
How to Save
- •Read existing file first (if it exists) to avoid overwriting
- •Append new content with a timestamp or section header
- •Use clear, searchable language (will be vector-searched later)
- •Run sync after saving to update the search index
bash
bunx memory-search --sync
Example: MEMORY.md
markdown
## User Preferences - Prefers Bun over Node for TypeScript projects - Uses pnpm as package manager - Likes minimal dependencies ## Project Decisions ### 2024-01-15: Database Choice Chose SQLite over PostgreSQL because: - Single-user application - No need for concurrent writes - Simpler deployment
Example: memory/2024-01-15.md
markdown
# 2024-01-15 ## Session Notes ### 10:30 - Authentication Setup - Implemented JWT auth flow - Added refresh token rotation - TODO: Add rate limiting ### 14:00 - Bug Fix - Fixed race condition in user creation - Root cause: missing transaction wrapper
Tips
- •Use descriptive queries, not single keywords
- •The search is semantic (understands meaning, not just exact words)
- •If unsure which file to use, ask the user
- •Always sync after saving new content