Basic Memory: A Local-First MCP Server That Puts Your AI Conversations in Markdown
AI conversations that actually remember. Never re-explain your project to your AI again. Join our Discord:.
At a glance
- What is it?
- Basic Memory is an open-source MCP server that stores AI conversation memory as local Markdown files with wikilinks and semantic search, for engineers who want their AI to remember project context without a proprietary database.
- Who is it for?
- Adopt Basic Memory if you want a free, local-first memory layer for Claude, Codex, or Cursor and you are comfortable with AGPL-3.0 and a Python/uv setup. Skip it if you need mobile access without paying for the cloud, or if pre-release dependencies and manual sync are unacceptable.
- Can I use it commercially?
- Yes, with strict conditions. AGPL-3.0 is a network copyleft licence: if people use a modified version over a network, for example as a hosted service, you must offer them its source code under the same licence.
- Is it still maintained?
- Yes. The repository received new commits within the last day.
- What is it written in?
- Mainly Python, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on November 13, 2026, and from our analysis. They are not legal advice.
Star history
- basicmachines-co/basic-memory4,569 ★ · +1,038
| Repository | 2026-07-28 | 2026-11-13 |
|---|---|---|
| basicmachines-co/basic-memory | 3.5k | 4.6k |
1,038 Stars in the last 108 days, measured from the daily GitHub snapshot. Compare with other projects
Editorial analysis
The Problem: AI Conversations Forget Project Context
Every engineer who works with an AI assistant has hit the same wall. You explain your project structure, your coding conventions, your API design. Then you start a new session and the AI greets you like a stranger. Basic Memory addresses this by giving the AI a persistent memory that lives in Markdown files on your disk. It is designed for developers using Claude, Codex, Cursor, ChatGPT, or any client that speaks the Model Context Protocol (MCP). The README frames it as a way to never re-explain your project to your AI again. The tool is not a chatbot itself; it is a memory layer that sits between you and your AI client.
How It Works: Markdown Files, Wikilinks, and a Knowledge Graph
Basic Memory stores knowledge as plain Markdown files that both you and your AI can read, write, and search. The README describes it as a real knowledge graph where observations and wikilinks compound into context. The mechanism is simple: you write notes in Markdown, link them with wikilinks, and the AI uses those files as its memory. The system includes semantic search, which finds notes by meaning rather than just keywords. For higher-quality results, it offers optional cross-encoder reranking for vector and hybrid searches. This is not a vector database in the traditional sense; the source of truth is the text files themselves. The MCP server exposes tools that let the AI create, read, edit, and search these files. The documentation emphasizes progressive tool discovery: every tool is tagged with behavior hints such as read-only, destructive, or idempotent, so the agent can pick the right tool without wasting context on trial and error.
Getting It Running: uv Install and the Prerelease Flag
The local install path requires Python and the `uv` package manager. The README gives the exact command: `uv tool install basic-memory --prerelease=allow`. The `--prerelease=allow` flag is not optional. Basic Memory 0.23 depends on a FastMCP 4 pre-release, and `uv` will silently install an older release unless you tell it to accept pre-releases. The same flag must be used on every `uvx` or `uv tool upgrade` command. For Postgres deployments that store semantic vectors in Milvus, there is a first-party extra: `uv tool install "basic-memory[milvus]" --prerelease=allow`. After installation, you configure your AI client. The README lists supported clients including Claude Desktop, Claude Code, Codex, Cursor, and VS Code, with transport options of stdio or http. The cloud version skips all of this: you sign up and connect your client in 30 seconds, no terminal required.
Local vs. Cloud: The Same Engine, Different Trade-Offs
The README presents two deployment paths that run the same product on the same Markdown. The local edition is free, AGPL-3.0, and air-gapped friendly. All data stays on your disk. The cloud edition costs $15.00 per month, locked in for life during beta, and adds cross-device sync, mobile access, and built-in backups. The cloud is built on WorkOS AuthKit, Neon Postgres, and Tigris S3. The local edition has no mobile access and no built-in sync; the README suggests Git or Syncthing for manual synchronization. This is a genuine trade-off. If you need to edit a note on your phone and see it in Obsidian on your laptop, you need the cloud or a third-party sync tool. The local path gives you full control but shifts the operational burden to you.
A Real Limitation: The Prerelease Dependency and Sync Burden
The most concrete limitation is the dependency on a FastMCP 4 pre-release. This is a maintenance hazard: every upgrade requires the same `--prerelease=allow` flag, and you are relying on a pre-release of a core dependency. The second limitation is the lack of built-in sync in the local edition. The README lists Git and Syncthing as options, but those are manual processes. If you work across multiple machines, you will need to set up and maintain that sync yourself. For teams, the README now promotes Basic Memory Teams, a shared cloud workspace, which suggests that the local edition is not designed for real-time collaboration. If you need a single shared knowledge base across a team, the local path is the wrong tool.
Alternatives: How It Differs from Other Memory Layers
The obvious alternative is a hosted memory service or a vector database with an MCP wrapper. The difference is that Basic Memory keeps the source of truth in plain Markdown files on your disk, not in a hosted database. You can read, edit, and export your notes with any text editor. The README emphasizes no lock-in: your notes are plain Markdown, and you can export to local Markdown anytime. Another alternative is to roll your own memory by giving your AI a directory of text files and a retrieval tool. That approach lacks the semantic search and knowledge graph features that Basic Memory provides out of the box. The trade-off is that Basic Memory is a specific MCP server with its own tool conventions, whereas a hand-rolled solution would be fully custom but would require you to build the retrieval and search logic yourself.
Maintenance and License: What You Need to Know
The project is licensed under AGPL-3.0. That means if you modify the source and deploy it as a network service, you must release your modifications under the same license. For internal use, this is rarely a problem, but it is a real consideration for companies that want to embed the code in a proprietary product. The repository keeps a CHANGELOG.md at its root, and the recent releases (v0.24.0, v0.24.1 and v1.0.0, dated 2026-10-29) suggest an active maintenance cadence. The dependency on a FastMCP pre-release means you should expect to follow release notes closely. The README also mentions a Discord community, which is where you would likely get support. Check CHANGELOG.md for the upgrade path before adopting it in a production workflow.
Who Should Adopt It, and What to Verify First
Basic Memory is a solid choice for individual developers who want a free, local-first memory layer for their AI assistants and are comfortable with Python and uv. If you are already using Claude Code or Cursor and you are tired of re-explaining your project, this tool can give you a persistent memory without a cloud dependency. You should not adopt it if you need mobile access or team collaboration without paying for the cloud. The local edition is not a drop-in solution for those needs. Before you commit, verify that the `--prerelease=allow` flag works on your platform, test that your AI client can connect via stdio or http, and check whether the FastMCP 4 pre-release causes any instability in your environment.
Editorial conclusion
Adopt Basic Memory if you want a free, local-first memory layer for Claude, Codex, or Cursor and you are comfortable with AGPL-3.0 and a Python/uv setup. Skip it if you need mobile access without paying for the cloud, or if pre-release dependencies and manual sync are unacceptable. Before committing, verify that the FastMCP 4 pre-release dependency works with your client, test the `--prerelease=allow` flag on your machine, and confirm that your workflow tolerates the lack of built-in cross-device sync in the local edition.
Frequently asked questions
Is Basic Memory free to use?
The local install is free under the AGPL licence and keeps all data on your disk. A hosted cloud version is also offered at a monthly price with a seven-day trial, which adds cross-device sync, mobile access and hosted backups. Both paths use the same open source engine and the same Markdown files, and both are under the same licence.
What is Basic Memory?
It is a local-first knowledge management tool that combines a note-taking method with a knowledge graph. Notes are Markdown files on your own disk that both you and an AI assistant can read, write and search, and the assistant reaches them over the Model Context Protocol so it works with Claude, Codex, Cursor and other clients.
Why does the Basic Memory install command need a pre-release flag?
Because the current version depends on a pre-release of a Model Context Protocol server library, and the installer only accepts a pre-release of a transitive dependency when told to. Without the flag it silently installs an older release instead of failing. The same flag is needed on every later run of the tool or its upgrade command.
Can I use Basic Memory without hosting anything?
Yes. The local install keeps every note as plain Markdown on your own disk, works in an air-gapped environment, and needs Python 3.12 or newer. Cross-device sync is then something you do yourself with a file-syncing tool, and snapshots and backups are yours to arrange; the hosted version supplies both.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/basicmachines-co-basic-memory)Star history chart for your README
[](https://hysenlabs.com/projects/basicmachines-co-basic-memory)Was this useful?