// the find
taylorsatula/mira
a best-effort approximation of a synthetic entity complete with all of the primatives required for long-horizon persistance. batteries included.
MIRA is a self-hosted personal assistant built around one conversation thread that is never reset, with long-term memory in PostgreSQL and pgvector that decays based on days you actually use it. It is aimed at people who want a persistent assistant running on their own machine, not a framework for building agents, and it ships with a web chat, a terminal client, and a set of bundled tools.
The memory decay rule lives in a checked-in SQL file (lt_memory/scoring_formula.sql) instead of being buried in application code, so you can read exactly what gets forgotten and why. The LLM boundary is provider-neutral through a dialects layer, which keeps provider-specific request handling out of the application logic. Tools are loaded on demand through invokeother_tool with a one-line description per tool, which keeps the context window small and is a reasonable answer to tool-definition bloat. Live context compaction is kept separate from segment collapse, and the rolling brief replaces older messages only in the provider request, so the stored PostgreSQL history is never rewritten by a compaction.
The install is heavy for a personal assistant: the installer provisions PostgreSQL, Valkey, and HashiCorp Vault, and the Docker image runs all of them under s6. The recommended install path also routes chat, embeddings, and the injection screen through one paid third-party gateway (LunaRoute), which is a vendor dependency set as the default. There is no in-place upgrade path, so the persistence promise breaks at each major version unless you pg_dump and restore by hand. The README offers no measurements for recall quality, summary fidelity, or whether the text-based LoRA loop actually improves behavior, and while tests/ has fixtures and probes, the README does not say how to run them or what a pass means.