Ori Mnemos
Local-first, graph-based persistent memory for AI agents across sessions, clients, and machines.
Per-dimension scores and reasoning
The evidence shows core data stored locally in Markdown and SQLite with no API key required for core operation. The README clearly identifies writes to the vault, derived index, learning state, client configuration, and lifecycle hooks. Bridge tests show non-Ori servers are preserved and uninstall removes only Ori-owned entries; archive and prune also expose dry-run or explicit --apply paths, supporting strong external-effect and rollback scores. Deductions apply because auto activation injects identity at session start and captures content at session end, while queries update a learning database, yet the supplied evidence shows no per-write confirmation, granular permission model, encryption, secret management, sensitive-field filtering, or retention policy. Dependencies are managed through npm and CI, but no lockfile, vulnerability scanning, dependency audit, or commit-pinned GitHub Actions are shown. The author, repository, and research inspirations are attributed, but publisher identity is unverified and a complete third-party attribution inventory is not present.
The README, package metadata, CI configuration, and supplied tests are broadly consistent about the version, installation, bridge behavior, and local storage model. Tests cover Windows and Ubuntu CI plus bridge precedence, preservation of unrelated configuration, uninstall behavior, archive database cleanup, and CLI learning writes. Warnings are demonstrated for missing project vaults and unsupported automatic activation, while health and status commands are documented. Deductions apply because only a subset of test source is supplied and nothing was executed, so the stated 579 tests and performance claims cannot be fully reconciled here. Native SQLite bindings, embedding-model availability, and several external clients remain availability dependencies, and failure messaging is evidenced for only selected paths.
Documentation explicitly covers local machines, VPS deployments, remote terminals, persistent volumes, multiple vaults, scripted use, and integrations with Claude Code, Hermes, OpenCode, Cursor, Codex, and generic MCP clients. Automatic versus manual activation, project versus global scope, explicit-vault precedence, and adapter capability differences are clearly bounded and supported by precedence tests. Node 18+, PATH, and persistent-storage requirements are stated, so ordinary environment fit is handled thoroughly. No criterion-level deductions were warranted here, although the scores reflect static evidence rather than validation on every platform.
The README is well organized around quick start, architecture, tool tables, CLI commands, vault layout, deployment, index rebuilding, and the install model. Package metadata and README naming align, while semantic versions, a What's New section, and a CHANGELOG path provide an update trail. Apache-2.0 metadata matches the complete LICENSE. Deductions apply because examples are extensive but there is no dedicated FAQ or systematic troubleshooting guide; limitations are distributed across adapter and rebuild notes rather than collected comprehensively. The README labels the package v0.7.0 while its main update narrative highlights v0.6.0, making the version story slightly uneven. An author and repository identify a maintainer, but no explicit support policy, maintenance commitment, security-reporting path, or verified organizational responsibility is shown.
The CLI promises structured JSON, MCP exposes 16 described tools, Markdown remains human-inspectable and portable, and bridge operations preserve unrelated client configuration and support uninstall, making outputs directly usable. Graph retrieval, recursive exploration, learned ranking, and cross-client persistent memory offer clear marginal value over basic file search. The cost-benefit deduction reflects that token savings, latency, recall, and the approximately $0.10 session cost are repository-reported. Although the README says evaluation code exists in bench/ and identifies some baseline sources, the supplied evidence omits benchmark implementation, environment, variance, resource consumption, and reproducible results.
Many operational claims trace to concrete commands, configuration structures, and test assertions. Version, licensing, client paths, uninstall behavior, and database side effects are corroborated across multiple supplied files. The README also distinguishes Mem0 paper baselines from Ori's GPT-4.1-mini evaluation setup. Deductions apply because central claims about algorithms, 63 research sources, 579 tests, ablations, performance, cost, and comparative superiority remain primarily README assertions; the supplied material excludes bench/, CHANGELOG, implementation files, and the complete test inventory needed for stronger corroboration. Promotional conclusions are also not always sharply separated from verified facts.
- Automatic bridges may inject identity content from self/ at session start and capture information at session end. Inspect generated hooks, plugins, and MCP configuration before connecting a sensitive vault, and consider manual activation first.
- The test showing that queries do not rewrite Markdown notes does not make queries wholly read-only: the evidence explicitly shows updates to Q-values, stage policies, co-occurrence state, and retrieval logs in .ori/embeddings.db.
- Deleting .ori/embeddings.db removes both derived indexes and learned state. Back up the vault and database, and prefer the documented --force rebuild path.
- Benchmark, token-saving, cost, ablation, and “579 tests” claims were not independently executed or fully substantiated by the supplied static materials.
- Before production use, audit npm resolution, the native better-sqlite3 build, model acquisition behavior, and supply-chain vulnerabilities; the supplied files show no corresponding security scan.
- Publisher identity is unknown, not inherently suspicious. Independently confirm the relationship among the maintainer, published package, repository, and reviewed revision.
What does this agent do, and when should you use it?
Ori Mnemos is persistent memory infrastructure for AI agents, storing identity, knowledge, and operational state as Markdown while using SQLite for vectors and retrieval-learning data. It exposes 16 tools and five resources through an MCP server, alongside a CLI for vault creation, capture, retrieval, recursive exploration, graph analysis, archiving, and client setup. Retrieval combines local semantic embeddings, BM25, personalized PageRank, and associative warmth, followed by dampening and learned reranking stages. Its Recursive Memory Harness traverses wiki-link graphs, decomposes unresolved questions, and changes the graph in response to retrieval outcomes. It can run locally, on a VPS, or in a persistent remote terminal without cloud services or API keys for core functionality, and its Markdown vault can be versioned with Git.
A user creates a Markdown vault with ori init; the vault separates notes/, inbox/, persistent identity under self/, and operational state under ops/. ori add captures material, while ori promote classifies it, detects links, and assigns an area; each [[wiki-link]] becomes a directed graph edge. ori index build creates or updates the SQLite-derived index, in-process all-MiniLM-L6-v2 embeddings, and initial co-occurrence data. For retrieval, ori_query_ranked or ori query ranked fuses semantic similarity, BM25, PageRank, and warmth before applying gravity dampening, hub dampening, resolution boost, and learned reranking. ori_explore adds sub-question decomposition, PPR graph traversal, and convergence detection for questions that one retrieval pass cannot resolve. Citations, edits, repeated recall, and downstream creation feed session-end updates to co-occurrence edges, note Q-values, and LinUCB stage policies; MCP operations such as ori_orient, ori_update, ori_prune, and ori_health manage session context, persistent state, decay, and diagnostics.
- A Claude Code, Hermes Agent, or OpenCode user who wants identity, goals, and recent context restored automatically between development sessions.
- A team using Codex, Cursor, or another MCP client that wants durable memory on its own filesystem and can manage session lifecycle explicitly.
- An operator running agents on a VPS or remote terminal who needs persistent memory without a hosted vector database and wants Git-based backups.
- A researcher with interconnected Markdown notes who needs semantic, keyword, graph, and recursive multi-hop retrieval over the same collection.
- A user managing several agents who wants each one to have an isolated vault containing its own identity, knowledge graph, and operational state.
What are this agent's strengths and limitations?
- The durable memory is human-readable, portable Markdown; SQLite supports indexing and learned state without requiring a hosted vector database.
- Retrieval combines semantic vectors, BM25, PageRank, associative warmth, Q-values, and co-occurrence learning rather than relying on a single similarity signal.
- Claude Code, Hermes Agent, and OpenCode adapters provide session-start orientation, session-end capture, and write validation.
- Core retrieval uses a local all-MiniLM-L6-v2 model and requires neither cloud infrastructure nor API keys, with documented local, VPS, and remote-terminal deployment.
- It includes graph diagnostics, cognitive decay, recursive exploration, and a Git-auditable file history beyond basic vector search.
- Codex, Cursor, and generic MCP integrations expose the tools but lack automatic orientation and end-of-session capture, so lifecycle handling remains the adopter's responsibility.
- Notes written by an editor, sync client, or script do not receive semantic embeddings until
ori index buildis run. - The SQLite file holds both embeddings and learned Q-values, stage policies, and co-retrieval history; deleting it discards that accumulated learning.
- Remote and serverless deployments require
orion the execution environment's PATH and a persistent volume for the vault; ephemeral storage is unsuitable. - The reported performance is tied to the documented HotpotQA and LoCoMo setups, while LoCoMo-Plus and adversarial-refusal results are still listed as forthcoming.
How do you install or deploy this agent?
A runtime capable of global npm installation is required; the source does not state a minimum Node.js version. Run:
npm install -g ori-memory
ori init my-agent
cd my-agentNo API key is required for core operation. To install from source:
git clone https://github.com/aayoawoyemi/Ori-Mnemos.git
cd Ori-Mnemos
npm install
npm run build
npm link
ori --versionHow do you use this agent?
After creating a vault, connect a client with a full lifecycle adapter:
ori bridge claude-code --vault ~/brain
ori bridge hermes --vault ~/brain
ori bridge opencode --vault ~/brainCodex and Cursor receive MCP tools but require the client or user to manage session lifecycle:
ori bridge codex --vault ~/brain
ori bridge cursor --vault ~/brainFor another MCP client, run ori bridge generic --vault ~/brain to print its configuration, or start the server with ori serve --mcp --vault /path/to/vault. A basic content flow is ori add "Title", ori promote --all, and ori index build, followed by ori query ranked "question" or ori explore "question". Run ori index build after bulk-writing notes outside Ori, and use ori index build --force if a query reports incomplete vault coverage.
How does this agent compare with similar options?
The README directly compares Ori Mnemos with Mem0. On its HotpotQA evaluation, Ori reports 90% Recall@5 versus 29%, an F1 score of 0.68 versus 0.33, and 120 ms average latency versus 1,140 ms; Ori uses Markdown and SQLite, while the listed Mem0 setup uses Redis, Qdrant, and cloud infrastructure. On LoCoMo, Ori reports 37.69 for single-hop and 29.31 for multi-hop, compared with the cited Mem0 baselines of 38.72 and 28.64. Ori's practical distinction is locally owned files plus graph-based recursive learning, but the figures apply only to the evaluation configurations described in the source.
FAQ
Does core operation require a paid API or network connection?
Can I edit the Markdown files directly?
ori index build creates the embeddings.What happens if .ori/embeddings.db is deleted?
ori index build --force when a clean rebuild without discarding learned state is preferred.