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

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

langchain_mimir-0.1.0.tar.gz (12.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

langchain_mimir-0.1.0-py3-none-any.whl (10.8 kB view details)

Uploaded Python 3

File details

Details for the file langchain_mimir-0.1.0.tar.gz.

File metadata

  • Download URL: langchain_mimir-0.1.0.tar.gz
  • Upload date:
  • Size: 12.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for langchain_mimir-0.1.0.tar.gz
Algorithm Hash digest
SHA256 3fa6de9cced2ccc93fa8a42b20fa4332c831ebccdbd698cab4d2b156f8c1c575
MD5 983ee01252590d5d5c8bee5ffbc2b368
BLAKE2b-256 02e63d85f00b8bd8da3b72afc5cb4d2fdc3376bbb49fdbf1fa623ed4ba560049

See more details on using hashes here.

Provenance

The following attestation bundles were made for langchain_mimir-0.1.0.tar.gz:

Publisher: publish.yml on Perseus-Computing-LLC/langchain-mimir

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file langchain_mimir-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: langchain_mimir-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 10.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for langchain_mimir-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c2d92d735a389c202689b65a64d9193cf97bd1d2303a154d4c9c829db9ef4deb
MD5 c206146b8cfa98ee8212bf312089ed68
BLAKE2b-256 42aef72896788a888e284cc0ff3c62e4dc990c5af128ec4b6bf4c71ea31fea65

See more details on using hashes here.

Provenance

The following attestation bundles were made for langchain_mimir-0.1.0-py3-none-any.whl:

Publisher: publish.yml on Perseus-Computing-LLC/langchain-mimir

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page