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
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:
bunx memory-search "QUERY_HERE"
Search Examples
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
bunx memory-search --sync
Example: MEMORY.md
## 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
# 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