Top AI Repos — open-source AI, indexed and scored
Top AI Repos tracks AI repositories on GitHub and answers two different questions about each one: is it moving right now, and would you bet a product on it.
Top AI Repos tracks AI repositories on GitHub and answers two different questions about each one: is it moving right now, and would you bet a product on it.
Local-first persistent agentic memory powered by Recursive Memory Harness (RMH). Open source must win.
| Date | Stars |
|---|---|
| 2026-07-31 | 316 |
| 2026-08-07 | 318 |
| 2026-08-15 | 319 |
| 2026-08-20 | 319 |
| 2026-08-25 | 319 |
| 2026-08-26 | 320 |
| 2026-08-27 | 321 |
| 2026-09-01 | 322 |
| 2026-09-05 | 323 |
| 2026-09-10 | 323 |
| 2026-09-15 | 324 |
| 2026-09-16 | 323 |
| 2026-09-18 | 324 |
| 2026-09-19 | 324 |
| 2026-09-24 | 325 |
| 2026-09-26 | 325 |
| 2026-09-28 | 326 |
| 2026-10-01 | 328 |
| 2026-10-05 | 330 |
| 2026-10-07 | 331 |
| 2026-10-11 | 332 |
| 2026-10-14 | 331 |
| 2026-10-18 | 332 |
| 2026-10-21 | 331 |
| 2026-10-23 | 333 |
| 2026-10-27 | 334 |
| 2026-10-28 | 333 |
| 2026-10-29 | 334 |
| 2026-10-30 | 334 |
| 2026-10-31 | 335 |
| 2026-11-04 | 335 |
Today
— stars today
This week
+2 stars this week
This month
+5 stars this month
Momentum
2.0
growth rate 0.60%/day
# Ori Mnemos
**Open-source persistent memory infrastructure for AI agents.**
Ori implements human cognition as mathematical models on a knowledge graph. Activation decay from ACT-R. Spreading activation along wiki-link edges. Hebbian co-occurrence from retrieval patterns. Reinforcement learning on retrieval itself. Recursive graph traversal with sub-question decomposition. The system learns what matters, forgets what doesn't, and optimizes its own retrieval pipeline.
Persistent memory across sessions, clients, and machines. Zero-infrastructure retrieval that [matches and in several cases strongly outperforms incumbents on benchmarks](#benchmarks) — and you own every byte of your data. Markdown on disk. Wiki-links as graph edges. Git as version control. No database lock-in, no cloud dependency, no vendor capture.
**v0.7.0** · [npm](https://www.npmjs.com/package/ori-memory) · [Paper](https://orimnemos.com/rmh) · Apache-2.0
---
## Use
Ori is three surfaces over one index. The markdown is the truth; the index is
derived. The learned half — Q-values, LinUCB arms, retrieval history — is not,
so export it before deleting anything (see [When to rebuild](#when-to-rebuild)).
**CLI**
```bash
npx ori init # scaffold a vault
npx ori index build # derive the index
npx ori explore "…" # navigated retrieval
npx ori sql "…" # read-only SQL over the index
```
**MCP server** — `ori serve`, registered in a client config. This is how an
agent uses it.
**Library** — `recall` is the same wired entry the CLI and the MCP
`ori_recall` tool both go through, so the programmatic path and the agent
path cannot drift.
```ts
import { recall } from "ori-memory";
const res = await recall("./vault", "what did we decide about caching?", { limit: 5 });
for (const hit of res.data.results) console.log(hit.title, hit.score);
```
`searchComposite` is also exported for callers that have already assembled
vectors, graph metrics and a config; `recall` does that assembly for you.
The export surface is deliberately small and is a semver contract; the rest of
`src/core` is internal. Versions before 0.8.0 shipped no `main` and no
`exports`, so a bare import threw and the library path did not exist — but the
CLI and MCP paths always worked, and existing users were unaffected.
`ori-memory/cli` resolves to the CLI entry, for callers that need to locate
the binary and spawn it rather than link against it. `require.resolve` on it
is the intended use; importing it runs the CLI.
## Benchmarks
### ForgetEval — Can It Forget On Command?
[deeplethe/lethe](https://github.com/deeplethe/lethe), `bench/forgeteval/`,
MIT. **No API key, no network, no LLM judge.** The scorer is a ~20-line
deterministic substring check in `GeneratedCase.run()`: it calls
`recall_texts(query, k=10)` itself, joins the top 10, and tests
`must_contain` / `must_not_contain`. Generation is `random.Random(42)` over
templates. The optional LLM hook is `llm=None` by default and was not used.
| family | Ori | what it requires |
|---|:---:|---|
| supersession | **200 / 200** | replace a fact, old value must not surface |
| decay | **200 / 200** | `release(query)` — soft-evict on demand |
| amnesia | **198 / 200** | evict one subject, keep the bystanders |
| purge | **182 / 200** | hard-delete, verbatim secret must be gone |
| drift | **198 / 200** | two supersessions in sequence, only the last survives |
| **overall** | **978 / 1000 (97.8%)** | 1,000 generated cases, seed 42 |
Not fitted to the suite: unseen seeds give **97.2%** (seed 7) and **98.0%**
(seed 123). The fixes were structural bugs in the matcher, not case-specific
patches.
**Quote these against a 35% floor, not against zero.** The oracle is
`must_contain` AND `must_not_contain` over the top 10, and when
`must_contain` is empty — every `decay` case and 150 of 200 `purge` cases,
350 of 1,000 — a system that returns *nothing* passes vacuously. A null
adapter that accepts writes and never returns anything scores **350/1Excerpt of 40,035 characters
Read on GitHubWould you bet a product on this? Bounded 0–100 and slow moving.
matched fp:a26fca664980e15c, topic:mcp, topic:model-context-protocol, topic:mcp-server
matched fp:a26fca664980e15c, topic:vector-search, topic:semantic-search
matched fp:a26fca664980e15c, topic:ai-agent, topic:ai-agents, readme:ai agents
matched fp:a26fca664980e15c, topic:knowledge-graph, topic:memory, readme:knowledge graph