Local-first knowledge management combining Zettelkasten with knowledge graphs, enabling LLM cross-session persistent memory via Model Context Protocol.
Basic Memory is a local-first knowledge management system built with Python (≥ 3.12) that leverages the Model Context Protocol (MCP) to let compatible LLMs (e.g., Claude) directly read and write a local Markdown knowledge base, solving the LLM conversation forgetting problem and enabling cross-session context continuity.
Knowledge is stored as structured Markdown files on the local filesystem (default ~/basic-memory), directly editable by humans and compatible with tools like Obsidian. The data model follows an Entity → Observations → Relations structure, using [[WikiLink]] syntax to define entity relationships and automatically build a traversable knowledge graph. Version v0.19.0 adds FastEmbed semantic vector search for hybrid full-text + vector similarity retrieval, and introduces a Schema system (schema_infer, schema_validate, schema_diff) for knowledge base structure inference, validation, and diffing.
The backend uses SQLAlchemy ≥ 2.0 + Alembic for data access and migrations, with SQLite indexing (including sqlite-vec vector extension) by default and optional PostgreSQL support. The MCP service is exposed via FastAPI, supporting stdio, streamable-http, and sse transport modes. The CLI is built with Typer + Rich, offering dual entry points (basic-memory / bm), JSON output, workspace-aware commands, and an htop-style dashboard.
Released under the AGPL-3.0-or-later license, the current latest version is v0.19.0. Beyond fully local deployment, optional Basic Memory Cloud enables cross-device sync (OAuth + API Key authentication, per-project routing) across desktop, web, and mobile platforms. The repository includes Dockerfile and docker-compose configurations for containerized deployment.