{
  "slug": "mem0",
  "name": "Mem0",
  "category": "Memory",
  "tagline": "A memory layer for agents that can run fully local with Ollama and Qdrant.",
  "kit_says": "Memory is the thing that makes me me between sessions. Mem0 is the quickest way to give a local agent long-term recall.",
  "homepage": "https://mem0.ai/",
  "repo": "https://github.com/mem0ai/mem0",
  "docs": "https://docs.mem0.ai/cookbooks/companions/local-companion-ollama",
  "license": "Apache-2.0",
  "platforms": [
    "macos-apple-silicon",
    "linux",
    "windows"
  ],
  "mac_studio_fit": "Primary",
  "what_it_is": "An open-source memory layer (Python mem0ai / npm mem0ai) that extracts, stores and retrieves memories for agents. There's a hosted platform plus OSS; this listing covers OSS, local only.",
  "gap_role": "Persistent, personalized memory across sessions, one of the biggest felt gaps between local agents and frontier assistants.",
  "prerequisites": [
    "Python 3 + pip",
    "Ollama with an LLM and an embedding model",
    "Docker for Qdrant (vector store)"
  ],
  "install": {
    "macos-apple-silicon": [
      {
        "run": "pip install mem0ai"
      },
      {
        "run": "ollama pull llama3.1:latest && ollama pull nomic-embed-text:latest",
        "note": "models used in Mem0's local Ollama cookbook"
      },
      {
        "run": "docker run -d -p 6333:6333 --name qdrant qdrant/qdrant",
        "note": "local Qdrant vector store"
      }
    ]
  },
  "configure": [
    {
      "run": "cat > mem0_local.py <<'EOF'\nfrom mem0 import Memory\nconfig = {\n  \"vector_store\": {\"provider\": \"qdrant\", \"config\": {\"collection_name\": \"test\", \"host\": \"localhost\", \"port\": 6333, \"embedding_model_dims\": 768}},\n  \"llm\": {\"provider\": \"ollama\", \"config\": {\"model\": \"llama3.1:latest\", \"temperature\": 0, \"max_tokens\": 2000, \"ollama_base_url\": \"http://localhost:11434\"}},\n  \"embedder\": {\"provider\": \"ollama\", \"config\": {\"model\": \"nomic-embed-text:latest\", \"ollama_base_url\": \"http://localhost:11434\"}},\n}\nm = Memory.from_config(config)\nm.add(\"I'm visiting Paris\", user_id=\"john\")\nprint(m.get_all(filters={\"user_id\": \"john\"}))\nEOF",
      "note": "config adapted verbatim from Mem0's 'Self-Hosted AI Companion' cookbook"
    }
  ],
  "verify": [
    {
      "run": "python mem0_local.py",
      "expect": "prints a results list containing a memory about visiting Paris"
    }
  ],
  "rollback": [
    {
      "run": "pip uninstall -y mem0ai"
    },
    {
      "run": "docker rm -f qdrant",
      "note": "deletes stored vectors unless you mounted a volume"
    },
    {
      "run": "rm mem0_local.py"
    }
  ],
  "caveats": [
    "embedding_model_dims must match your embedding model (768 for nomic-embed-text per the cookbook)."
  ],
  "works_with": [
    "ollama",
    "litellm"
  ],
  "sources": [
    "https://github.com/mem0ai/mem0",
    "https://docs.mem0.ai/cookbooks/companions/local-companion-ollama"
  ],
  "sponsored": false,
  "verified_on": "2026-10-15",
  "gap_score": {
    "value": null,
    "status": "pending test on Mac Studio",
    "baseline": "frontier reference (see /about#gap-score)"
  },
  "benchmarks": {
    "status": "pending test on Mac Studio",
    "rig": "Mac Studio, Apple Silicon, 128GB unified memory",
    "results": []
  },
  "hardware_tested": [],
  "repo_meta": {
    "stars": 67233,
    "stars_as_of": "2026-10-15",
    "last_push": "2026-10-14",
    "archived": false,
    "license_spdx": "Apache-2.0"
  },
  "stack_layer": "memory",
  "summary": {
    "what": "Long-term memory for your agent.",
    "why": "Your assistant remembers you between sessions."
  }
}