Search...
Ctrl KAsk AI
Search...
Navigation
Getting Started
Node SDK Quickstart
Welcome Mem0 Platform Open Source Cookbooks Integrations API Reference Release Notes
Getting Started
Self-Hosting Features
- Overview
- Graph Memory
- Enhanced Metadata Filtering
- Reranker-Enhanced Search
- Async Memory
- Multimodal Support
- Custom Fact Extraction Prompt
- Custom Update Memory Prompt
- REST API Server
- OpenAI Compatibility
Configuration
LLMs
Vector Databases
Embedding Models
Rerankers
Community & Support
On this page
- Prerequisites
- Install and run your first memory
- Configure for production
- Manage memories (optional)
- Use a custom history store
- Configuration parameters
- What’s next?
Spin up Mem0 with the Node SDK in just a few steps. You’ll install the package, initialize the client, add a memory, and confirm retrieval with a single search.
Prerequisites
- Node.js 18 or higher
- (Optional) OpenAI API key stored in your environment when you want to customize providers
Install and run your first memory
1
Install the SDK
npm install mem0ai2
Initialize the client
import { Memory } from "mem0ai/oss";
const memory = new Memory();3
Add a memory
const messages = [\
{ role: "user", content: "I'm planning to watch a movie tonight. Any recommendations?" },\
{ role: "assistant", content: "How about thriller movies? They can be quite engaging." },\
{ role: "user", content: "I'm not a big fan of thriller movies but I love sci-fi movies." },\
{ role: "assistant", content: "Got it! I'll avoid thriller recommendations and suggest sci-fi movies in the future." }\
];
await memory.add(messages, { userId: "alice", metadata: { category: "movie_recommendations" } });4
Search memories
const results = await memory.search("What do you know about me?", { userId: "alice" });
console.log(results);Output
{
"results": [\
{\
"id": "892db2ae-06d9-49e5-8b3e-585ef9b85b8e",\
"memory": "User is planning to watch a movie tonight.",\
"score": 0.38920719231944799,\
"metadata": {\
"category": "movie_recommendations"\
},\
"userId": "alice"\
}\
]
}By default the Node SDK uses local-friendly settings (OpenAI gpt-4.1-nano-2025-04-14, text-embedding-3-small, in-memory vector store, and SQLite history). Swap components by passing a config as shown below.
Configure for production
import { Memory } from "mem0ai/oss";
const memory = new Memory({
version: "v1.1",
embedder: {
provider: "openai",
config: {
apiKey: process.env.OPENAI_API_KEY || "",
model: "text-embedding-3-small"
}
},
vectorStore: {
provider: "memory",
config: {
collectionName: "memories",
dimension: 1536
}
},
llm: {
provider: "openai",
config: {
apiKey: process.env.OPENAI_API_KEY || "",
model: "gpt-4-turbo-preview"
}
},
historyDbPath: "memory.db"
}); Manage memories (optional)
Get all memories
Get one memory
Search memories
Update a memory
const allMemories = await memory.getAll({ userId: "alice" });
console.log(allMemories);// Audit history
const history = await memory.history("892db2ae-06d9-49e5-8b3e-585ef9b85b8e");
console.log(history);
// Delete specific or scoped memories
await memory.delete("892db2ae-06d9-49e5-8b3e-585ef9b85b8e");
await memory.deleteAll({ userId: "alice" });
// Reset everything
await memory.reset(); Use a custom history store
The Node SDK supports Supabase (or other providers) when you need serverless-friendly history storage.
Supabase provider
Disable history
import { Memory } from "mem0ai/oss";
const memory = new Memory({
historyStore: {
provider: "supabase",
config: {
supabaseUrl: process.env.SUPABASE_URL || "",
supabaseKey: process.env.SUPABASE_KEY || "",
tableName: "memory_history"
}
}
});Create the Supabase table with:
create table memory_history (
id text primary key,
memory_id text not null,
previous_value text,
new_value text,
action text not null,
created_at timestamp with time zone default timezone('utc', now()),
updated_at timestamp with time zone,
is_deleted integer default 0
); Configuration parameters
Mem0 offers granular configuration across vector stores, LLMs, embedders, and history stores.
Vector store
| Parameter | Description | Default |
|---|---|---|
provider | Vector store provider (e.g., "memory") | "memory" |
host | Host address | "localhost" |
port | Port number | undefined |
LLM
| Parameter | Description | Provider |
|---|---|---|
provider | LLM provider (e.g., "openai", "anthropic") | All |
model | Model to use | All |
temperature | Temperature value | All |
apiKey | API key | All |
maxTokens | Max tokens to generate | All |
topP | Probability threshold | All |
topK | Token count to keep | All |
openaiBaseUrl | Base URL override | OpenAI |
Graph store
| Parameter | Description | Default |
|---|---|---|
provider | Graph store provider (e.g., "neo4j") | "neo4j" |
url | Connection URL | process.env.NEO4J_URL |
username | Username | process.env.NEO4J_USERNAME |
password | Password | process.env.NEO4J_PASSWORD |
Embedder
| Parameter | Description | Default |
|---|---|---|
provider | Embedding provider | "openai" |
model | Embedding model | "text-embedding-3-small" |
apiKey | API key | undefined |
General
| Parameter | Description | Default |
|---|---|---|
historyDbPath | Path to history database | "{mem0_dir}/history.db" |
version | API version | "v1.0" |
customPrompt | Custom processing prompt | undefined |
History store
| Parameter | Description | Default |
|---|---|---|
provider | History provider | "sqlite" |
config | Provider configuration | undefined |
disableHistory | Disable history store | false |
Complete config example
const config = {
version: "v1.1",
embedder: {
provider: "openai",
config: {
apiKey: process.env.OPENAI_API_KEY || "",
model: "text-embedding-3-small"
}
},
vectorStore: {
provider: "memory",
config: {
collectionName: "memories",
dimension: 1536
}
},
llm: {
provider: "openai",
config: {
apiKey: process.env.OPENAI_API_KEY || "",
model: "gpt-4-turbo-preview"
}
},
historyStore: {
provider: "supabase",
config: {
supabaseUrl: process.env.SUPABASE_URL || "",
supabaseKey: process.env.SUPABASE_KEY || "",
tableName: "memories"
}
},
disableHistory: false,
customPrompt: "I'm a virtual assistant. I'm here to help you with your queries."
}; What’s next?
If you have any questions, please feel free to reach out:
Discord \ \ Join our community
GitHub \ \ Ask questions on GitHub
Was this page helpful?
YesNo
Python SDK Quickstart\ \ Previous Overview\ \ Next
Ctrl+I
Assistant
Responses are generated using AI and may contain mistakes.
Suggestions
How do I add memories?How do I search memories?How do I install the SDK?