{
  "version": "2",
  "generatedAt": "2026-11-03T21:36:30.074Z",
  "listing": {
    "slug": "basicmachines-co--basic-memory",
    "name": "Basic Memory",
    "tagline": "MCP-native persistent memory over an Obsidian-compatible markdown folder, local and free or hosted.",
    "shortTagline": "MCP-native persistent memory",
    "description": "Basic Memory gives Claude, Codex, Cursor, ChatGPT, and any MCP client a two-way knowledge base of markdown notes with a semantic graph. The MCP server is the primary interface; humans edit the same files in Obsidian or any editor. Local install is AGPL and free; the cloud edition hosts sync and the database for a seat price.",
    "capabilities": [
      "adaptable",
      "operable"
    ],
    "vertical": "notes-knowledge",
    "shape": "mcp-server",
    "formFactor": "mcp-server",
    "executionModel": "deterministic",
    "provenance": "mixed",
    "codeStack": {
      "languages": [
        "Python"
      ],
      "frameworks": [
        "FastMCP",
        "SQLAlchemy"
      ],
      "packageManager": "uv",
      "database": [
        "SQLite",
        "PostgreSQL",
        "Milvus"
      ],
      "hostingTarget": [
        "local",
        "docker"
      ]
    },
    "modelStack": {
      "providers": [
        "any MCP client"
      ],
      "models": [],
      "requiredKeys": [],
      "promptLocations": [
        "plugins/claude-code/skills/*/SKILL.md",
        "plugins/claude-code/"
      ],
      "tools": [
        "write_note",
        "read_note",
        "edit_note",
        "move_note",
        "search_notes",
        "recent_activity",
        "list_directory",
        "build_context"
      ]
    },
    "repos": [
      {
        "url": "https://github.com/basicmachines-co/basic-memory",
        "owner": "basicmachines-co",
        "name": "basic-memory",
        "license": "AGPL-3.0",
        "stars": 3841,
        "lastCommit": "2026-09-02"
      }
    ],
    "interface": {
      "kind": "mcp",
      "url": "https://github.com/basicmachines-co/basic-memory",
      "official": true,
      "hosted": "both"
    },
    "operability": "native",
    "recommendedWrapper": null,
    "reach": [
      {
        "job": "Write, read, edit, and move notes",
        "reachable": true,
        "evidence": "README tools: write_note, read_note, edit_note, move_note"
      },
      {
        "job": "Search notes",
        "reachable": true,
        "evidence": "search_notes; optional semantic search and reranker enabled by BASIC_MEMORY_SEMANTIC_SEARCH_ENABLED"
      },
      {
        "job": "Recent activity and directory listing",
        "reachable": true,
        "evidence": "recent_activity, list_directory"
      },
      {
        "job": "Navigate the knowledge graph",
        "reachable": true,
        "evidence": "build_context navigates memory:// URLs"
      },
      {
        "job": "Multiple projects",
        "reachable": true,
        "evidence": "README and triage: project paths in config.json; project switching tools"
      },
      {
        "job": "Cross-device sync",
        "reachable": true,
        "evidence": "cloud edition only; local is manual (git, Syncthing)"
      },
      {
        "job": "Import chat exports",
        "reachable": null,
        "evidence": "BASIC_MEMORY_IMPORT_UPLOAD_MAX_BYTES suggests an import path; not verified as a tool"
      },
      {
        "job": "Automatic context on every prompt",
        "reachable": true,
        "evidence": "plugins/claude-code/hooks/session_start.py and pre_compact.py plus skills/bm-*/SKILL.md call the MCP server"
      }
    ],
    "editions": [
      {
        "name": "Free (local)",
        "price": null,
        "open": true,
        "distributions": [
          {
            "kind": "source",
            "url": "https://github.com/basicmachines-co/basic-memory"
          },
          {
            "kind": "installable",
            "url": "https://pypi.org/project/basic-memory/",
            "command": "uv tool install basic-memory --prerelease=allow"
          },
          {
            "kind": "container",
            "url": "https://github.com/basicmachines-co/basic-memory/blob/main/docker-compose.yml"
          }
        ]
      },
      {
        "name": "Team (cloud)",
        "price": {
          "amount": 15,
          "currency": "USD",
          "period": "month",
          "note": "per seat; README quotes the same $15/mo as a single plan"
        },
        "open": false,
        "distributions": [
          {
            "kind": "hosted",
            "url": "https://basicmemory.com/pricing"
          }
        ]
      },
      {
        "name": "Business",
        "price": {
          "amount": 30,
          "currency": "USD",
          "period": "month"
        },
        "open": false,
        "distributions": [
          {
            "kind": "hosted",
            "url": "https://basicmemory.com/pricing"
          }
        ]
      }
    ],
    "skills": {
      "kind": "bundled",
      "paths": [
        "skills/memory-*/SKILL.md",
        "plugins/claude-code/.claude-plugin/",
        "skills-lock.json"
      ],
      "install": "npx skills add basicmachines-co/basic-memory/skills",
      "note": "Ships a set of memory-* skills and a Claude Code plugin that drive the MCP server; a separate .agents/skills/ tree is contributor tooling."
    },
    "customization": {
      "summary": "~/.basic-memory/config.json holds projects and paths; BASIC_MEMORY_* env vars switch the database backend (BASIC_MEMORY_DATABASE_BACKEND, BASIC_MEMORY_DATABASE_URL), enable semantic search and a reranker, and force local or cloud routing. Prompt-level behavior lives in the Claude Code plugin under plugins/claude-code/ (skills/*/SKILL.md, output-styles/, hooks/).",
      "envVars": [
        "BASIC_MEMORY_DATABASE_BACKEND",
        "BASIC_MEMORY_DATABASE_URL",
        "BASIC_MEMORY_SEMANTIC_SEARCH_ENABLED",
        "BASIC_MEMORY_RERANKER_ENABLED",
        "BASIC_MEMORY_RERANKER_PROVIDER",
        "BASIC_MEMORY_RERANKER_MODEL",
        "BASIC_MEMORY_LOG_LEVEL",
        "BASIC_MEMORY_FORCE_LOCAL",
        "BASIC_MEMORY_FORCE_CLOUD",
        "BASIC_MEMORY_CLOUD_MODE",
        "BASIC_MEMORY_IMPORT_UPLOAD_MAX_BYTES",
        "BASIC_MEMORY_NO_PROMOS"
      ],
      "configFiles": [
        "~/.basic-memory/config.json",
        ".env",
        "docker-compose.yml"
      ],
      "promptFiles": [
        "plugins/claude-code/skills/*/SKILL.md",
        "plugins/claude-code/output-styles/basic-memory.md",
        "plugins/claude-code/"
      ],
      "effort": "config-only",
      "editCount": 18
    },
    "useWhen": [
      "you want Claude Code to remember decisions across sessions in files you can open in Obsidian",
      "your team wants one shared memory that both people and their agents write to"
    ],
    "accounts": [
      "Basic Memory account (cloud editions only)"
    ],
    "active": true,
    "lastActivity": "2026-09-02",
    "gotchas": [
      "AGPL-3.0 for the local edition",
      "Install needs --prerelease=allow or you silently get an older release (README)",
      "Semantic search and reranker add model dependencies; off by default",
      "README describes one $15/mo plan; the pricing page lists Team $15/seat/mo and Business $30/seat/mo (SSO, audit logs), both per active seat"
    ],
    "fit": {
      "adaptable": 2,
      "operable": 3
    },
    "evidence": {
      "formFactor": "README: MCP-native; installed as a uv tool and registered with MCP clients",
      "executionModel": "server stores and searches files; the model is the client; embeddings optional",
      "operability": "MCP is the primary interface by design; published by basicmachines-co",
      "effort": "README and .env.example name BASIC_MEMORY_* vars and ~/.basic-memory/config.json",
      "editions": "basicmemory.com/pricing: Team $15/seat/mo, Business $30/seat/mo; local AGPL free",
      "active": "pushedAt 2026-09-02",
      "provenance": "CLAUDE.md and AGENTS.md at root; no statement on authorship"
    },
    "confidence": {
      "formFactor": 0.95,
      "executionModel": 0.75,
      "operability": 0.95,
      "effort": 0.85,
      "reach": 0.8,
      "editions": 0.8,
      "provenance": 0.3
    },
    "openQuestions": [
      "Full MCP tool list including project and canvas tools (docs.basicmemory.com landing page did not list them)",
      "Is there an import tool for chat exports, or is import CLI-only?"
    ],
    "sources": [
      {
        "url": "https://github.com/basicmachines-co/basic-memory",
        "foundBy": "sourcing:notes-knowledge:curated"
      },
      {
        "url": "https://basicmemory.com/pricing",
        "foundBy": "analysis"
      }
    ],
    "research": {
      "stage": "verified",
      "verdict": "approve",
      "reason": "Native holds: the product is an MCP server (io.github.basicmachines-co/basic-memory in the official registry) whose install path is uv tool install then register with an MCP client, there is no GUI of its own, and humans reach the same markdown through Obsidian or any editor rather than a Basic Memory app. All twelve BASIC_MEMORY_* env vars are named in .env.example, the README, or docs; the prompt files were listed at a nonexistent root skills/ path and now point at plugins/claude-code/skills/*/SKILL.md, which exists.",
      "disputed": []
    },
    "url": "apps/basicmachines-co--basic-memory.html",
    "coverage": "partial",
    "paid": true,
    "source": "research/verified/basicmachines-co--basic-memory.json"
  }
}
