Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
mem0ai avatar

Mem0

  • 1.8k installs
  • 62.5k repo stars
  • Updated August 5, 2026
  • mem0ai/mem0

Mem0 Platform SDK for adding persistent memory to AI applications. TRIGGER when: user mentions "mem0", "MemoryClient", "memory layer", "remember user preferences", "persistent context", "personalizati

About

The mem0 skill 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). Documentation covers workflows, commands, and guardrails agents should follow when users invoke this capability. Key documented areas include **Search returns empty:** Memories process asynchronously. Wait 2-3s after `add()` before searching. Also verify `user_id` matches exactly (case-sensitive) and use `filters={"user_; **AND filter with user_id + agent_id returns empty:** Entities are stored separately. Use `OR` instead, or query separately.; **Duplicate.

  • **Search returns empty:** Memories process asynchronously. Wait 2-3s after `add()` before searching. Also verify `user_i
  • **AND filter with user_id + agent_id returns empty:** Entities are stored separately. Use `OR` instead, or query separat
  • **Duplicate memories:** Don't mix `infer=True` (default) and `infer=False` for the same data. Stick to one mode.
  • **Wrong import:** Always use `from mem0 import MemoryClient` (or `AsyncMemoryClient` for async). Do not use `from mem0 i
  • **v3 defaults:** `top_k=20`, `threshold=0.1`, `rerank=False`. Adjust as needed for your use case.

Mem0 by the numbers

  • 1,765 all-time installs (skills.sh)
  • +96 installs in the week ending Aug 5, 2026 (Skillselion tracking)
  • Ranked #724 of 16,546 AI & Agent Building skills by installs in the Skillselion catalog
  • Security screen: HIGH risk (skills.sh audit)
  • Data as of Aug 5, 2026 (Skillselion catalog sync)
At a glance

mem0 capabilities & compatibility

Capabilities
**search returns empty:** memories process async · **and filter with user_id + agent_id returns emp · **duplicate memories:** don't mix `infer=true` ( · **wrong import:** always use `from mem0 import m · **v3 defaults:** `top_k=20`, `threshold=0.1`, `r
Use cases
planning
From the docs

What mem0 says it does

**Search returns empty:** Memories process asynchronously. Wait 2-3s after `add()` before searching. Also verify `user_i
SKILL.md
npx skills add https://github.com/mem0ai/mem0 --skill mem0

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs1.8k
repo stars62.5k
Security audit2 / 3 scanners passed
Last updatedAugust 5, 2026
Repositorymem0ai/mem0

How do I handle mem0 tasks with agent guidance?

Mem0 Platform SDK for adding persistent memory to AI applications. TRIGGER when: user mentions "mem0", "MemoryClient", "memory layer", "remember user preferences", "persistent context", "personalizati

Who is it for?

Teams needing documented mem0 workflows.

Skip if: Generic advice without reading bundled docs.

When should I use this skill?

Mem0 Platform SDK for adding persistent memory to AI applications. TRIGGER when: user mentions "mem0", "MemoryClient", "memory layer", "remember user preferences", "persistent context", "personalizati

What you get

Structured workflow from mem0 documentation applied to the user request.

  • memory integration code
  • persistent context store
  • cross-session recall configuration

By the numbers

  • Documents Python and TypeScript SDK API differences across both Platform and OSS modes

Files

SKILL.mdMarkdownGitHub ↗

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) -- Command-line interface
- [mem0-vercel-ai-sdk](../mem0-vercel-ai-sdk/SKILL.md) (GitHub) -- 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: Memories process asynchronously. Wait 2-3s after add() before searching. 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: Always use from mem0 import MemoryClient (or AsyncMemoryClient for async). Do not use from mem0 import Memory.
  • v3 defaults: top_k=20, threshold=0.1, rerank=False. Adjust as needed for your use case.

v2 Compatibility

If you're using SDK v2.x, note these differences:

  • Entity IDs: Pass user_id as top-level kwarg to search() instead of inside filters
  • Defaults: top_k=100, no threshold, rerank=True
  • Graph memory: Available via enable_graph=True

See the migration guide for details.

Live documentation search

For the latest docs beyond what's in the references, use the doc search tool:

python ${CLAUDE_SKILL_DIR}/scripts/mem0_doc_search.py --query "topic"
python ${CLAUDE_SKILL_DIR}/scripts/mem0_doc_search.py --page "/platform/features/graph-memory"
python ${CLAUDE_SKILL_DIR}/scripts/mem0_doc_search.py --index

No API key needed — searches docs.mem0.ai directly.

Client SDK References

Language-specific deep references (Platform + OSS):

LanguageFile
Python (MemoryClient + AsyncMemoryClient + Memory OSS)client/python.md
TypeScript/Node.js (MemoryClient + Memory OSS)client/node.md
Python vs TypeScript differencesclient/differences.md

Platform References

Load these on demand for deeper detail:

TopicFile
Quickstart (Python, TS, cURL)references/quickstart.md
SDK guide (all methods, both languages)references/sdk-guide.md
API reference (endpoints, filters, object schema)references/api-reference.md
Architecture (pipeline, lifecycle, scoping, performance)references/architecture.md
Platform features (retrieval, graph, categories, MCP, etc.)references/features.md
Framework integrations (LangChain, CrewAI, OpenAI Agents, etc.)references/integration-patterns.md
Use cases & examples (real-world patterns with code)references/use-cases.md

Related Mem0 Skills

SkillWhen to useLink
mem0-cliTerminal commands, scripting, CI/CD, agent tool loopslocal / GitHub
mem0-vercel-ai-sdkVercel AI SDK provider with automatic memorylocal / GitHub

Related skills

How it compares

Choose Mem0 over in-prompt context stuffing when agents need durable, retrievable memory across many separate coding sessions.

FAQ

What does mem0 do?

Mem0 Platform SDK for adding persistent memory to AI applications. TRIGGER when: user mentions "mem0", "MemoryClient", "memory layer", "remember user preferences", "persistent context", "personalizati

When should I invoke mem0?

Mem0 Platform SDK for adding persistent memory to AI applications. TRIGGER when: user mentions "mem0", "MemoryClient", "memory layer", "remember user preferences", "persistent context", "personalizati

What are key capabilities?

**Search returns empty:** Memories process asynchronously. Wait 2-3s after `add()` before searching. Also verify `user_id` matches exactly (case-sensitive) and use `filters={"user_

Is Mem0 safe to install?

skills.sh reports 2 of 3 security scanners passed. Review the Security Audits panel on this page before installing in production.

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.