Skip to main content
Nowledge MemNowledge Mem

Memories

Your knowledge, one thought at a time. Create, search, organize, and connect memories.

A memory is one durable thing worth keeping: a fact, preference, decision, plan, procedure, learning, event, or important context. 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.

Memories vs threads

Use a memory for the durable takeaway. Use a thread when you need the original conversation history. A strong workflow is: save or import the thread, then distill the parts worth keeping into memories.

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

FieldWhat it is
TitleA short summary. Auto-generated when you capture from the Timeline, or set manually
ContentThe knowledge itself. Markdown supported
TypeWhat kind of durable knowledge this is
LabelsCategories for filtering and organization
ImportanceA score from 0.1 to 1.0 that affects search ranking and briefing priority
CreatedTimestamp. Used for temporal search and knowledge evolution tracking

Importance Scale

RangeMeaningExamples
0.8 – 1.0CriticalArchitectural decisions, breakthrough discoveries, production incidents
0.5 – 0.7UsefulStandard decisions, good insights, project learnings
0.1 – 0.4BackgroundReference 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.

Memory Type

Each memory has one primary type. This helps agents decide how to use it:

TypeUse for
factDurable reference information
preferenceUser taste, style choices, working constraints
decisionChoices with rationale and trade-offs
planFuture intent, next steps, roadmap items
procedureHow-to knowledge, workflows, step-by-step guides
learningLessons, realizations, debugging conclusions
contextBackground information that frames future work
eventThings that happened, outcomes, dated moments

If an agent does not pass a type explicitly, Mem classifies the memory during creation. Connected tools should still pass the type when they know it, because a clear decision or procedure is more useful than a generic note.

Labels

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 behavior depends on the connector path you chose:

IntegrationHow memories are savedSetup
Dedicated connectors (Claude Code, Grok Build, Codex, Gemini CLI, OpenClaw, Hermes Agent, Alma, Cursor, Droid, OpenCode, Copilot CLI)Dedicated package teaches the agent when to recall, distill, add, and sometimes update memoriesConnectors
Reusable workflow packages (npx skills, OpenCode, many agents)Shared skills or prompts call nmem on your behalfGetting Started
Direct MCP (any MCP client without a dedicated package)Agent calls memory_add and memory_update directlyConnectors

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" \
  --unit-type decision \
  --labels "decision,infrastructure" \
  --importance 0.8

Via 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",
    "unit_type": "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 connector, shared workflow package, or MCP tools. When a topic might connect to prior work, the strongest paths search your knowledge base without waiting for an explicit prompt.

Via CLI

# Semantic search
nmem m search "authentication patterns"

# Narrow by metadata your workflow already knows
nmem m search "renewal decision" --metadata customer=acme --metadata purpose=contract-review

# JSON output for scripting
nmem --json m search "API design" | jq '.memories[0].content'

Use metadata filters when an integration or import flow already knows a stable field such as customer, project, material_type, or purpose. Mem narrows the memory set before ranking, so the agent searches the right slice instead of hoping broad ranking finds it.

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>
nmem m delete <memory-id> -f   # Use -f in scripts or non-interactive shells

nmem m delete asks for confirmation by default. In scripts, agents, or any non-interactive shell, add -f to avoid hanging while waiting for input.

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, Mem writes a briefing from your recent and important memories. The Default space keeps ~/ai-now/memory.md; if you use Spaces, other spaces get their own briefings too.

See Background Intelligence for the full guide on how these work.

Where Memories Come From

SourceHowLearn more
TimelineType and press EnterGetting Started
Browser extensionAuto-capture or manual distill from web AI chatsBrowser Extension
Thread distillationExtract from imported AI conversationsThreads
AI toolsSkills, plugins, or MCP memory_addConnectors
CLInmem m addCLI Reference
APIPOST /memoriesAPI Reference

MCP Tools

ToolWhat it does
memory_searchSearch memories by meaning, keywords, or graph connections
memory_addCreate a new memory with content, title, type, labels, and importance
memory_updateUpdate content, title, importance, or labels
memory_deleteDelete one or more memories
list_memory_labelsList all labels with usage counts
read_working_memoryRead 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
  • Connectors: Connect your AI tools through native connectors, reusable packages, or MCP

On this page