Skip to content

/mem0

Mem0 Platform SDK for adding persistent memory to AI applications. TRIGGER when: user mentions "mem0", "MemoryClient", "memory layer", "remember user preferences", "persistent context", "personalization", or needs to add long-term memory to chatbots, agents, or AI apps. Covers

From plugin
mem0
69k15 skills1 agent1 MCP

Claude Code

$ npx -y skills add mem0ai/mem0 --skill mem0 --agent claude-code

SKILL.md

mem0.SKILL.md
name: mem0
description: >
  Mem0 Platform SDK for adding persistent memory to AI applications.
  TRIGGER when: user mentions "mem0", "MemoryClient", "memory layer",
  "remember user preferences", "persistent context", "personalization",
  or needs to add long-term memory to chatbots, agents, or AI apps.
  Covers Python SDK (mem0ai), TypeScript SDK (mem0ai), and framework integrations
  (LangChain, CrewAI, OpenAI Agents SDK, Pipecat, LlamaIndex, AutoGen, LangGraph).
  Also covers the open-source self-hosted Memory class.
  This is the DEFAULT mem0 skill for ambiguous queries.
  DO NOT TRIGGER when: user asks about CLI commands, terminal usage, or shell
  scripts (use mem0-cli), or Vercel AI SDK / @mem0/vercel-ai-provider / createMem0
  (use mem0-vercel-ai-sdk).
license: Apache-2.0
metadata:
  author: mem0ai
  version: "3.1.0"
  category: ai-memory
  tags: "memory, personalization, ai, python, typescript, vector-search"
  mem0_tested_versions: "mem0ai (PyPI) >=2.0.0,<3.0.0; mem0ai (npm) >=3.0.0,<4.0.0"
compatibility: Requires Python 3.10+ or Node.js 18+, pip install mem0ai or npm install mem0ai, MEM0_API_KEY env var (Platform), and internet access to api.mem0.ai. Targets the v3 API (Python mem0ai 2.x, TypeScript mem0ai 3.x).

Mem0 Platform Integration

> **Skill Graph:** This skill is part of the Mem0 skill graph: > - **mem0** (this skill) -- Platform Client SDK + OSS (Python + TypeScript) > - **[mem0-cli](../mem0-cli/SKILL.md)** ([GitHub](https://github.com/mem0ai/mem0/tree/main/skills/mem0-cli)) -- Command-line interface > - **[mem0-vercel-ai-sdk](../mem0-vercel-ai-sdk/SKILL.md)** ([GitHub](https://github.com/mem0ai/mem0/tree/main/skills/mem0-vercel-ai-sdk)) -- Vercel AI SDK provider

Mem0 is a managed memory layer for AI applications. It stores, retrieves, and manages user memories via API — no infrastructure to deploy. For self-hosted usage, see the OSS section in the client references below.

Step 1: Install and authenticate

**Python:**

pip install mem0ai
export MEM0_API_KEY="m0-your-api-key"

**TypeScript/JavaScript:**

npm install mem0ai
export MEM0_API_KEY="m0-your-api-key"

Get an API key at: https://app.mem0.ai/dashboard/api-keys?utm_source=oss&utm_medium=skill-mem0

> **Don't have a `MEM0_API_KEY`?** Run `mem0 init --agent --agent-caller <your-name> --json` (after `pip install mem0-cli` or `npm install -g @mem0/cli`), substituting your agent identity (e.g. `claude-code`, `cursor`). If you forgot to pass `--agent-caller`, run `mem0 identify <your-name>` after init. The human can claim later with `mem0 init --email <your-email>`.

Step 2: Initialize the client

**Python:**

from mem0 import MemoryClient
client = MemoryClient(api_key="m0-xxx")

**TypeScript:**

import MemoryClient from 'mem0ai';
const client = new MemoryClient({ apiKey: 'm0-xxx' });

For async Python, use `AsyncMemoryClient`.

Step 3: Core operations

Every Mem0 integration follows the same pattern: **retrieve → generate → store**.

Add memories

messages = [
    {"role": "user", "content": "I'm a vegetarian and allergic to nuts."},
    {"role": "assistant", "content": "Got it! I'll remember that."}
]
client.add(messages, user_id="alice")

Search memories

results = client.search("dietary preferences", filters={"user_id": "alice"})
for mem in results.get("results", []):
    print(mem["memory"])

Get all memories

all_memories = client.get_all(filters={"user_id": "alice"})

Update a memory

client.update("memory-uuid", text="Updated: vegetarian, nut allergy, prefers organic")

Delete a memory

client.delete("memory-uuid")
client.delete_all(user_id="alice")  # delete all for a user

Common integration pattern

from mem0 import MemoryClient
from openai import OpenAI

mem0 = MemoryClient()
openai = OpenAI()

def chat(user_input: str, user_id: str) -> str:
    # 1. Retrieve relevant memories
    memories = mem0.search(user_input, filters={"user_id": user_id})
    context = "\n".join([m["memory"] for m in memories.get("results", [])])

    # 2. Generate response with memory context
    response = openai.chat.completions.create(
        model="gpt-5-mini",
        messages=[
            {"role": "system", "content": f"User context:\n{context}"},
            {"role": "user", "content": user_input},
        ]
    )
    reply = response.choices[0].message.content

    # 3. Store interaction for future context
    mem0.add(
        [{"role": "user", "content": user_input}, {"role": "assistant", "content": reply}],
        user_id=user_id
    )
    return reply

Common edge cases

  • **Search returns empty:** `add()` is asynchronous and returns `{"event_id": "...", "status": "PENDING"}` (`eventId` on the TS client). Memories are searchable once the event is `SUCCEEDED` (poll `GET /v1/event/{event_id}/`, or wait a few seconds). `infer=False` is synchronous. Also verify `user_id` matches exactly (case-sensitive) and use `filters={"user_id": "..."}` syntax.
  • **AND filter with user_id + agent_id returns empty:** Entities are stored separately. Use `OR` instead, or query separately.
  • **Duplicate memories:** Don't mix `infer=True` (default) and `infer=False` for the same data. Stick to one mode.
  • **Wrong import:** For the hosted Platform use `from mem0 import MemoryClient` (or `AsyncMemoryClient` for async). `from mem0 import Memory` is the self-hosted OSS class and does not use `MEM0_API_KEY`.
  • **v3 defaults (Platform):** `top_k=10`, `rerank=False`. `threshold` is a server-side cutoff applied before score blending, not a floor on the returned `score` (the default and `0.0` return the same or nearly the same results). The client sends none of these unless you pass them. The OSS `Memory.search()` default is `top_k=20`. Adjust as needed for your use case.

v2 Compatibility

The "v2" line is Python SDK 1.x and TypeScript SDK 2.x. If you are still on it, n

Read more
@mem0ai
Ships withmem0

Mem0 ("mem-zero") enhances AI assistants and agents with an intelligent memory layer, enabling personalized AI interactions.

69k15 skills1 agent1 MCP
Get the whole plugin, auto-invoked

Stars on GitHub

Momentum

stars in total
68.7k
Star history of mem0ai/mem0 on GitHub, a chart by star-history.com

Other skills on mem0.

forget
Auto-invoked

forget

Delete the Mem0 memories stored for this repository and this user. Use when the user asks to forget, clear, wipe, or delete…

@mem0ai@mem0aiInstall Skill
pause
Auto-invoked

pause

Pause Mem0 memory capture on this machine. Use when the user wants to stop memories being recorded, for example for private work…

@mem0ai@mem0aiInstall Skill
remember
Auto-invoked

remember

Acknowledge a "remember this" request and make sure it is captured well. Use when the user explicitly asks to remember, note, or…

@mem0ai@mem0aiInstall Skill
resume
Auto-invoked

resume

Resume Mem0 memory capture after it was paused with /mem0:pause.

@mem0ai@mem0aiInstall Skill
search
Auto-invoked

search

Search memories from earlier Antigravity sessions in this repository. Use it when earlier work may already explain the code,…

@mem0ai@mem0aiInstall Skill
status
Auto-invoked

status

Show whether Mem0 memory is working in this repository, covering configuration, capture state, pending flushes, and whether the…

@mem0ai@mem0aiInstall Skill

More skills from other plugins.

analyzing-ai-citations

analyzing-ai-citations

Answer AI citation and answer engine optimization (AEO) questions in PostHog: whether AI answer engines (ChatGPT, Claude, and an…

posthog11d41k
@posthog@posthogInstall Skill
qmd

qmd

Search local markdown knowledge bases, notes, docs, and wikis with QMD. Use when users ask to find notes, retrieve documents,…

qmd3w31k
@tobi@tobiInstall Skill

Questions about mem0.

Which coding agents can use mem0?
mem0 installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.