OpenViSTAI · Agents · Blockchain · Crypto
Menu
Agent Memory & RAG

Markmem

MarkMem is a Python library that gives chatbots persistent memory stored as Markdown files in a Git repository, with SQLite as a rebuildable cache and search for retrieving memory as prompt context.

Independent OpenViST project profile, based on linked sources.

Markmem — OpenViST project profile in Agent Memory & RAG.
OpenViST project illustration. See the linked sources for product details.
Understand the project

Practical overview

When it fits

Use MarkMem when building a Python chatbot that needs searchable memory records developers can inspect and manage as files, rather than keeping the only memory representation in a database.

Who it is for

  • Python developers adding persistent memory to a chatbot.
  • Teams that want memory records to remain reviewable and version-controlled as files.

Documented uses

  • Store facts submitted by a chatbot application under a user identifier.
  • Retrieve relevant memories as packed context for a prompt.
  • Review or diff memory records through Markdown and Git.
Before you choose

Requirements & limits

The project is an open-source Python library under the Apache-2.0 license. The documented installation method is pip.

  • The core installation provides Markdown, Git, and BM25; semantic search requires the vector extra.
  • LLM extraction, MCP, REST serving, PII integrations, and cryptographic erasure are listed as separate optional extras.
  • Memory additions are queued for background compilation; flush() is documented for forcing synchronous compilation.

Check current requirements in the official documentation. Source-based guidance does not mean OpenViST has run or independently tested this project.

Source-based practical guide

Add and retrieve chatbot memory with MarkMem

Store user facts as MarkMem memory and retrieve them as prompt context.

Before you start

  • Python environment with MarkMem installed using pip install markmem.
  • A repository path for the memory store.

Steps

  1. Import Memory from markmem and initialize it with a repository path, for example Memory(repo_path="./chat-memory").

  2. Add facts with m.add(text, user_id="alice"); calls enqueue compilation asynchronously.

  3. Call m.flush() to force synchronous compilation at a turn boundary.

  4. Retrieve prompt-ready memory with m.search(query, user_id="alice", format="context").

Expected outcome

MarkMem returns packed memory context for the user; the documented example retains the vegetarian fact while the newer aisle-seat preference supersedes the window-seat preference.

Guide limitations

  • Without the vector extra, search uses BM25 only; semantic search is optional.
  • Without an LLM key, the heuristic extractor is used.
  • The documented quick start does not describe configuring a chatbot integration.
Evidence and transparency

Sources & review

Source record details
Source availability
Active
Sources checked
15 October 2026
Original website title
MonishKanungo/MarkMem · Official homepage title · retained in its source language