Mirix Personal Memory Assistant

Turns screen activity and conversations into searchable personal memory.

Source repo
Mirix-AI/MIRIX
Stars
★ 3.5k
Last updated
9d ago
License
Apache-2.0
Primary language
Python

At a glance

How it runs
Self-hosted serviceLibrary / SDK
Works with
Portable with changes
Cost
Free software; you pay for model usage
Setup effort
Medium · a few setup steps
You'll need
Docker ComposePythonmirix-clientPostgreSQLShell / CLINetwork accessLocal filesystem
Typical use
An individual who wants to revisit recent work seen on screen and discussed in chat can retrieve topics associated with their user identity over recent days.
Not a fit if
  • Individuals wanting a zero-maintenance hosted chat app
  • Operators unwilling to run manual PostgreSQL migration scripts

What does this agent do, and when should you use it?

Mirix is a multi-agent personal assistant centered on building long-term memory from screen observation and natural conversation. It separates memory into six components—Core, Episodic, Semantic, Procedural, Resource, and Knowledge Vault—managed by dedicated memory agents. The system accepts text, images, voice, and screen captures, and supports retrieval through PostgreSQL-native BM25 full-text search and vector similarity. Its backend and dashboard run through Docker Compose, with the dashboard on port 5173 and API on port 8531 by default; Python applications interact through MirixClient. Long-term data is described as locally stored with user-controlled privacy settings, while the supplied material does not specify screen-capture permissions, supported operating systems, or resource requirements.

Run docker compose up -d --pull always to start the backend and Dashboard, then create MIRIX_API_KEY in the Dashboard. A Python application connects to http://localhost:8531 with MirixClient and calls initialize_meta_agent to configure the model, embedding model, and six memory-agent components. client.add accepts user- and assistant-role message content under a user_id, while client.retrieve_with_conversation uses the current conversation to return relevant memories, with the example limiting output to five results. Mirix also exposes POST /memory/auto_dream?user_id=demo-user and client.auto_dream to review selected memory components, merge duplicates, attempt to resolve stale or conflicting entries, and write results back. Setting dry_run=true reports processing counts without applying updates.

  1. An individual who wants to revisit recent work seen on screen and discussed in chat can retrieve topics associated with their user identity over recent days.
  2. A researcher or knowledge worker who wants to consolidate chats, images, voice, and screen captures into a personal memory store can submit those modalities to one service.
  3. A Python developer building a personal assistant with persistent memory can initialize the memory agents and call add and retrieve_with_conversation from an application.
  4. A self-hosted administrator facing duplicate or conflicting memory records can inspect an auto-dream run first, then consolidate Episodic, Semantic, and Knowledge Vault memory through experience mode.
  5. A team that requires long-term data to remain locally stored and wants user-controlled privacy settings can deploy Mirix as a self-hosted memory service in its Docker environment.

How do you install or deploy this agent?

Prerequisites: Docker Compose is required for the backend and Dashboard, and Python is required for the client. In the deployment directory, run:

docker compose up -d --pull always

Open http://localhost:5173, create an API key in the Dashboard, and set it as MIRIX_API_KEY. Then install the client:

pip install mirix-client

The documented default API base URL is http://localhost:8531.

How do you use this agent?

Create MirixClient(api_key="your-api-key", base_url="http://localhost:8531"). Call initialize_meta_agent with llm_config, embedding_config, and meta_agent_config; the supplied example uses Gemini 2.0 Flash, Google AI endpoints, and text-embedding-004. Write conversation records with client.add(user_id=..., messages=[...]), then retrieve related memories using client.retrieve_with_conversation(user_id=..., messages=[...], limit=5). To consolidate memories, call client.auto_dream(user_id="demo-user", mode="experience", dry_run=False); use dry_run=True first to preview processing counts.

What are this agent's strengths and limitations?

Pros
  • Organizes information into six explicit memory components instead of keeping all history as one undifferentiated context.
  • Handles text, images, voice, and screen captures, with screen activity serving as a memory input.
  • Offers both PostgreSQL-native BM25 full-text search and vector-similarity retrieval.
  • Auto-dream can consolidate a chosen memory category, including duplicate merging and stale or conflicting-entry handling, with a dry-run option.
  • Long-term data is described as locally stored with user-controlled privacy settings.
Limitations
  • The supplied model and embedding example depends on Google AI, Gemini 2.0 Flash, and text-embedding-004; support and configuration for other providers are not documented.
  • Deployment involves Docker Compose, a Python client, API keys, and PostgreSQL search capabilities, creating more operational overhead than a hosted chat product.
  • The material does not document supported operating systems, permission flow, retention policy, or performance impact for continuous screen capture.
  • Although image, voice, and screen-capture inputs are named, acquisition methods, format constraints, and failure handling are not specified.
  • Auto-dream writes consolidation results back to memory; dry run is available, but no rollback or version-recovery mechanism is documented.

How does this agent compare with similar options?

The README credits Letta as the framework that served as a foundation for Mirix's memory system, but provides no feature-by-feature comparison or benchmark.

Key facts side by side with the most closely related agents.

Agent Source review Form / cost Stars Updated Language Full support on
Mirix Personal Memory Assistant This agent 36 · Major gaps Self-hosted serviceFree + model costs ★ 3.5k 9d ago Python —
Kody Personal Assistant Platform 70 · Some gaps CLIFree + model costs ★ 907 today TypeScript —
Talorys 63 · Some gaps — ★ 1.4k 1d ago TypeScript —
GAIA — Personal AI Assistant 73 · Some gaps Hosted serviceFreemium ★ 324 today Python —

How does FollowAgents rate this agent?

FollowAgents source review · FARS-2.1
Major gaps
36/ 100 5-point scale 1.8 / 5
Trust 6/29
Reliability 5/14
Adaptability 8/18
Convention 8/18
Effectiveness 6/13
Verifiability 3/8
Why each dimension lost points
Trust6 / 29 · 1.0/5

Evidence: README claims privacy-first with local storage, but no implementation details; API key management exists (conftest.py), but least privilege not demonstrated; external dependencies (composio, aiogoogle) may have external effects, but no user confirmation mechanism; many dependencies without security audit; no rollback; source attribution partially clear (acknowledges Letta). Deductions: lack of user confirmation, insufficient data flow transparency, dependency security not assessed, no rollback.

Reliability5 / 14 · 1.8/5

Evidence: Test files exist (test_agent_prompt_update.py etc.), but tests depend on external API keys and manual server start, not deterministic; many dependencies with wide version ranges, potentially unstable; error handling tests exist (test_error_handling_nonexistent_agent), but overall failure message quality not fully assessed. Deductions: tests depend on external services, dependency availability unverified, failure message coverage limited.

Adaptability8 / 18 · 2.2/5

Evidence: README describes multiple use cases (screen tracking, multimodal input), but target audience not explicit; capability boundaries not clearly defined; trigger mechanisms (e.g., auto-dream) documented, but precision unverified; environment fit (Docker, Python versions) described, but not all platforms covered. Deductions: vague capability boundaries, trigger precision unverified, limited environment fit.

Convention8 / 18 · 2.2/5

Evidence: README well-structured with quick start and examples; install notes (Docker, pip) present; naming (MIRIX) stable; example code provided; but no known limitations section, no changelog, maintenance responsibility unclear (only contact email). Deductions: missing known limitations, changelog, unclear maintenance responsibility.

Effectiveness6 / 13 · 2.3/5

Evidence: Output usability (API returns memories) exemplified, but actual effectiveness unverified; marginal value (multi-agent memory system) described, but not compared to alternatives; cost-benefit not discussed. Deductions: output usability unverified, cost-benefit not analyzed.

Verifiability3 / 8 · 1.9/5

Evidence: README claims (e.g., privacy-first) lack implementation evidence; test files exist but depend on external services, cannot be independently verified; facts and inferences not clearly separated. Deductions: claims lack traceability, cross-source corroboration insufficient, facts and inferences conflated.

Risks and how to mitigate them
  • Not found in source: confirmation before actingTurn on (or add) a confirmation step before it acts, and try it in a sandbox or test environment before real data.
  • Not found in source: dependency securityPin versions and run a dependency audit (npm audit, pip-audit) before installing; prefer running it in a container.
  • Not found in source: rollback or recovery pathBack up first, or work on a git branch or snapshot, so its changes can be undone.
  • Many dependencies without security audit, posing supply chain risk.
  • Tests depend on external API keys and manual server start, not automatable.
  • Privacy claims lack implementation details, data security needs careful evaluation.
  • No changelog, maintenance responsibility unclear.
Evidence confidence: Low Reviewed Aug 09, 2026 Reviewed revision 51f3342d5366 New commits since this review; the score may not cover them
See the full review method →

Recent releases

Latest entries from the project's GitHub Releases. Notes are quoted from upstream as written, not rewritten or tested by FollowAgents.

  1. v0.1.6 Brand-new release of memory system api to power various agent applications Pre-release
    Release notes excerpt
    🚀 MIRIX 0.1.6 — Pure Memory System API for Any Agent This release marks a major evolution of MIRIX. Starting from v0.1.6, MIRIX becomes a dedicated, plug-and-play advanced memory system that any agent can integrate with — rather than a bundled desktop personal assistant. With this release, MIRIX now provides: - ⚙️ Unified Memory API - 🧠 Meta-agent & multi-memory architecture - ☁️ Hosted Cloud Memory Service - 📊 Web Dashboard for visualization, debugging & control - ⚡ Ultra-fast retrieval with hybrid search …
    View on GitHub ↗

FAQ

Must I use Google AI?
The supplied example uses google_ai, Gemini 2.0 Flash, and text-embedding-004. Configuration includes model and embedding endpoint fields, but the material does not explicitly document other providers or their setup.
Which credentials are required?
Create a Mirix API key in the Dashboard and set MIRIX_API_KEY. The example model and embedding configurations also each include an API-key field.
Does auto-dream change stored data?
With dry_run=false, it writes consolidation results back through memory tools. With dry_run=true, it returns counts so the proposed processing can be inspected without updates.
Is there an out-of-the-box ChatGPT, Codex, or Claude integration?
The supplied material does not document native integrations for those platforms. The documented usage path is a Docker-hosted service with the Python mirix-client.
View on GitHub ↗ Install ↓

Related agents