Memories
Your knowledge, one thought at a time. Create, search, organize, and connect memories.
A memory is one durable thing worth keeping: a decision, an insight, a fact, a procedure, an experience. Each memory should stand on its own, readable without the full conversation that produced it.
Memories are the core unit of Nowledge Mem. Search, the knowledge graph, crystals, daily briefings, and connected tools all become more useful because memories exist underneath them.
The First Useful Memory
If you are new, do not overthink structure first. Save one real thing such as:
- a decision you made
- a lesson you learned
- a workflow you repeat
Then ask for it back in the Timeline. Once that works, this whole page becomes much easier to understand.
Anatomy of a Memory
| Field | What it is |
|---|---|
| Title | A short summary. Auto-generated when you capture from the Timeline, or set manually |
| Content | The knowledge itself. Markdown supported |
| Labels | Categories for filtering and organization |
| Importance | A score from 0.1 to 1.0 that affects search ranking and briefing priority |
| Created | Timestamp. Used for temporal search and knowledge evolution tracking |
Importance Scale
| Range | Meaning | Examples |
|---|---|---|
| 0.8 – 1.0 | Critical | Architectural decisions, breakthrough discoveries, production incidents |
| 0.5 – 0.7 | Useful | Standard decisions, good insights, project learnings |
| 0.1 – 0.4 | Background | Reference info, minor details, casual notes |
The default is 0.5. AI tools and background intelligence use this score to prioritize what surfaces in search results and daily briefings.
Labels
Standard categories:
| Label | Use for |
|---|---|
insight | Key learnings, realizations, "aha" moments |
decision | Choices with rationale and trade-offs |
fact | Important data points, reference information |
procedure | How-to knowledge, workflows, step-by-step guides |
experience | Events, conversations, outcomes |
New memories are labeled automatically when created. The system assigns 2–4 labels based on content and reuses your existing labels to keep the taxonomy consistent. You can always edit, add, or remove labels afterward.
You can also create custom labels. Labels are lowercase and hyphenated (api-design, team-standup). Filter by label in the Memories view to focus on a specific domain.
Creating Memories
In the Timeline
Type into the input at the top and press Enter. AI classifies your intent automatically:
- A thought becomes a memory with auto-generated title and labels
- A question gets answered from your existing knowledge
- A URL gets fetched, parsed, and indexed
- A file gets parsed and stored
See Getting Started for the full onboarding walkthrough.
From AI Conversations
The browser extension captures memories from supported web AI chat platforms:
- Auto-Capture monitors conversations and saves what matters autonomously
- Manual Distill lets you trigger capture on a specific conversation
From Threads
Import a conversation, then distill it into individual memories. Each extracted memory gets its own title, labels, and importance score. This is how hours of AI conversation become searchable, connected knowledge. See Threads for the full workflow.
From AI Tools
Connected agents can read, search, and preserve durable knowledge while you work. The exact path depends on the integration surface you chose:
| Integration | How memories are saved | Setup |
|---|---|---|
| Native integrations (Claude Code, Gemini CLI, Cursor, Alma, OpenClaw) | Dedicated package teaches the agent when to recall, distill, add, and sometimes update memories | Integrations |
Reusable workflow packages (npx skills, Codex prompt pack, OpenCode, many agents) | Shared skills or prompts call nmem surfaces on your behalf | Getting Started |
| Direct MCP (any MCP client without a dedicated package) | Agent calls memory_add and memory_update directly | Integrations |
The best-integrated setups do more than expose memory_add: they also teach the agent when to search first and when to update an existing memory instead of creating a duplicate.
Via CLI
# Add a memory with auto-generated title
nmem m add "We chose PostgreSQL for the new service because of jsonb support"
# Add with explicit title and labels
nmem m add "PostgreSQL chosen for jsonb support and team familiarity" \
--title "Database Decision: PostgreSQL" \
--labels "decision,infrastructure" \
--importance 0.8Via API
curl -X POST http://127.0.0.1:14242/memories \
-H "Content-Type: application/json" \
-d '{
"content": "We chose PostgreSQL for the new service",
"title": "Database Decision",
"labels": ["decision", "infrastructure"],
"importance": 0.8
}'See the API Reference for the full schema.
Searching Memories
In the App
Open memory search with Cmd + K (macOS) or Ctrl + K (Windows/Linux). Three search modes work together:
- Semantic finds memories by meaning, so searching "design patterns" finds memories about "architectural approaches"
- Keyword does exact match for specific terms
- Graph discovers memories through entity connections and topic clusters
Press Cmd + Shift + K from any application to search without opening Nowledge Mem.
From AI Tools
Connected agents search through their native integration, shared workflow package, or MCP tools. When a topic might connect to prior work, the best-integrated surfaces search your knowledge base without waiting for an explicit prompt.
Via CLI
# Semantic search
nmem m search "authentication patterns"
# JSON output for scripting
nmem --json m search "API design" | jq '.memories[0].content'Editing and Organizing
Update a Memory
Click any memory in the Memories view to edit its content, title, labels, or importance. Changes take effect immediately.
Via CLI:
# Update importance
nmem m update <memory-id> --importance 0.9
# Update labels
nmem m update <memory-id> --labels "decision,infrastructure,critical"Delete a Memory
Delete from the memory detail view, or via CLI:
nmem m delete <memory-id>How Memories Connect
When Background Intelligence is enabled, memories grow connections automatically:
-
Knowledge Graph. Every memory becomes a node. The system extracts entities (people, technologies, concepts) and maps relationships. Search "distributed systems" and find your memory about "Node.js microservices". The words don't match, the meaning does.
-
Knowledge Evolution. Save something new about a topic you've written about before, and the system creates a version link: replaces, enriches, confirms, or challenges. Trace how your understanding of any topic changed over time.
-
Crystals. When enough memories cover the same ground, they get synthesized into a reference article. Sources are cited. When you save related information later, the crystal updates.
-
Working Memory. Each morning, a briefing lands at
~/ai-now/memory.mddrawing from your recent and important memories. Your AI tools read it at session start.
See Background Intelligence for the full guide on how these work.
Where Memories Come From
| Source | How | Learn more |
|---|---|---|
| Timeline | Type and press Enter | Getting Started |
| Browser extension | Auto-capture or manual distill from web AI chats | Browser Extension |
| Thread distillation | Extract from imported AI conversations | Threads |
| AI tools | Skills, plugins, or MCP memory_add | Integrations |
| CLI | nmem m add | CLI Reference |
| API | POST /memories | API Reference |
MCP Tools
| Tool | What it does |
|---|---|
memory_search | Search memories by meaning, keywords, or graph connections |
memory_add | Create a new memory with content, title, labels, and importance |
memory_update | Update content, title, importance, or labels |
memory_delete | Delete one or more memories |
list_memory_labels | List all labels with usage counts |
read_working_memory | Read today's daily briefing |
Next Steps
- Threads: Import and distill AI conversations into memories
- Library: Import documents alongside your memories
- AI Now: Personal AI with full access to your knowledge base
- Background Intelligence: How memories grow connections automatically
- Browser Extension: Capture memories from web AI conversations
- Integrations: Connect your AI tools through native integrations, reusable packages, or MCP