This project has been archived by its maintainers, and is no longer receiving any updates.
langchain-mimir
Persistent, local-first, encrypted memory for LangChain, backed by Mimir — an open-source (MIT) memory engine with FTS5 + dense hybrid search and optional AES-256-GCM encryption, exposed over the Model Context Protocol (MCP) stdio transport.
It gives a LangChain agent durable memory that survives across runs and processes, stored in a single local SQLite file you control — no external service, no cloud.
What you get
This package wraps Mimir using the modern langchain-core interfaces:
create_mimir_tools(client)— a pair ofStructuredTools (mimir_remember/mimir_recall) you give to an agent so it can manage its own long-term memory via tool calls. This is the current-recommended LangChain pattern (the legacyMemory/ConversationBufferMemoryclasses are deprecated).MimirRetriever— aBaseRetrieverreturningDocuments, for drop-in use in RAG chains and anywhere LangChain accepts a retriever (.invoke(query)).MimirClient— the low-level MCP stdio client, if you want direct access.
Prerequisite: the mimir binary
This package talks to a local mimir executable via JSON-RPC over stdio. You
must have it installed:
- Download a release from
https://github.com/Perseus-Computing-LLC/mimir/releases, or build from source
(
cargo build --release), and putmimiron your$PATH. - Or pass an absolute path:
MimirClient(mimir_binary="/path/to/mimir").
On Windows the binary may be named mimir.exe; ensure its directory is on
PATH, or pass the full path.
Install
pip install langchain-mimir
Usage
As agent tools
from langchain_mimir import MimirClient, create_mimir_tools
client = MimirClient(db_path="~/.langchain/mimir.db")
tools = create_mimir_tools(client) # [mimir_remember, mimir_recall]
# Bind to any tool-calling model / agent:
from langchain.chat_models import init_chat_model
llm = init_chat_model("anthropic:claude-sonnet-4-5")
llm_with_memory = llm.bind_tools(tools)
resp = llm_with_memory.invoke("Remember that my favorite language is Rust.")
# ... the model will call mimir_remember; execute the tool call as usual.
As a retriever
from langchain_mimir import MimirClient, MimirRetriever
client = MimirClient(db_path="~/.langchain/mimir.db")
client.remember("The capital of France is Paris.")
retriever = MimirRetriever(client=client, k=5)
docs = retriever.invoke("What is the capital of France?")
print(docs[0].page_content) # -> "The capital of France is Paris."
Direct client
from langchain_mimir import MimirClient
client = MimirClient(db_path="~/.langchain/mimir.db")
client.remember("Project deadline is July 15.", tags=["project", "deadline"])
items = client.recall("when is the deadline")
print(items[0]["text"])
How it works
MimirClient spawns mimir --db <path> as a subprocess and speaks JSON-RPC 2.0
(MCP) over its stdin/stdout. A background reader thread and a lock make calls
thread-safe and timeout-bounded. Memories are stored via mimir_remember and
retrieved via mimir_recall.
License
MIT © 2026 Perseus Computing LLC
Metadata
Release files for langchain-mimir 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| langchain_mimir-0.1.0.tar.gz | 12.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| langchain_mimir-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 22.8 kB
Release files / langchain_mimir-0.1.0.tar.gz
| Download URL | langchain_mimir-0.1.0.tar.gz |
|---|---|
| Size | 12.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3fa6de9cced2ccc93fa8a42b20fa4332c831ebccdbd698cab4d2b156f8c1c575
|
|
BLAKE2b-256 checksum How to use checksums |
02e63d85f00b8bd8da3b72afc5cb4d2fdc3376bbb49fdbf1fa623ed4ba560049
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jun 29, 2026.
Transparency logRelease files / langchain_mimir-0.1.0-py3-none-any.whl
| Download URL | langchain_mimir-0.1.0-py3-none-any.whl |
|---|---|
| Size | 10.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c2d92d735a389c202689b65a64d9193cf97bd1d2303a154d4c9c829db9ef4deb
|
|
BLAKE2b-256 checksum How to use checksums |
42aef72896788a888e284cc0ff3c62e4dc990c5af128ec4b6bf4c71ea31fea65
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jun 29, 2026.
Transparency log