Skip to main content
Archived

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 of StructuredTools (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 legacy Memory / ConversationBufferMemory classes are deprecated).
  • MimirRetriever — a BaseRetriever returning Documents, 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:

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)

Source distribution for langchain-mimir 0.1.0
File Size Uploaded
langchain_mimir-0.1.0.tar.gz 12.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for langchain-mimir 0.1.0
File Interpreter ABI Platform
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 log

Release 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

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page