agent-memory-atlas
A side-by-side directory of every open-source agent memory framework (Mem0, Letta, Zep, Cognee, Graphiti, LangMem, MemGPT, Memary, txtai, R2R, LlamaIndex, Chroma, Qdrant, CrewAI, …) with live GitHub vitals, an architecture classifier (vector / graph / KV / episodic / hybrid), and a 5-question decision quiz that ends in a shareable "Atlas recommends X" card.
This is not a recall benchmark. It tells you which memory framework architecturally fits your use case and which ones are still maintained — picking, not testing.
---
What you get
- Sortable / filterable directory of 22 frameworks. Filter by architecture, language, hosting model. Sort by stars, last commit, or name. Search by name / tagline / repo.
- Live GitHub vitals: stars, forks, watchers, open issues, license, default branch, last commit, last release — refreshed by
node-cronevery 6 hours fromapi.github.com. License is hydrated from the GitHub API directly. - Maintenance badges:
active(commit ≤ 90d),slow(90–365d),stale(> 365d) — derived live. - Detail panel per framework with full vitals + stars-over-time sparkline computed from our own snapshot history.
- Stats strip showing total tracked, % active, top architecture, top language.
- 5-question quiz → top 3 ranked recommendations with one-line justifications.
- Shareable pick card at
/share/:codewith full OpenGraph meta so Twitter / Slack / HN unfurl previews work.
---
Data sources
| Source | URL pattern | Refresh interval |
|---|---|---|
| GitHub repo metadata | https://api.github.com/repos/{owner}/{repo} | every 6 hours (cron: 0 /6 ) |
| GitHub latest commit | https://api.github.com/repos/{owner}/{repo}/commits?per_page=1&sha={default_branch} | every 6 hours |
| GitHub latest release | https://api.github.com/repos/{owner}/{repo}/releases/latest | daily (cron: 30 3 *) |
No mock data, no Math.random jitter, no hardcoded counts. If GitHub is unreachable at boot the UI shows the manifest list with "Awaiting first sync" badges until the first refresh succeeds; star counts never get faked.
Rate budget: unauthenticated, 60 req/hr is enough if we space the 22 repos × ~2 calls / cycle by 70 seconds. Set GITHUB_TOKEN to remove the spacing and raise the ceiling to 5000/hr (the token is optional).
The curated list of 22 frameworks lives in seed/frameworks.json and is the editorial input — analogous to listing competitors. Numeric / temporal fields are 100% live.
---
API
All endpoints mounted under /agent-memory-atlas. No auth, all public.
| Method | Path | Purpose |
|---|---|---|
| GET | /health | {ok:true} |
| GET | /api/frameworks | All frameworks joined with their latest snapshot. Query params: sort=stars\|commit\|name, arch=vector,graph,…, lang=python\|…, hosted=yes\|no, q=<search> |
| GET | /api/frameworks/:slug | One framework with full vitals + last 30 snapshots history |
| GET | /api/frameworks/:slug/history | Just the time series |
| GET | /api/stats | {total, active_count, slow_count, stale_count, by_arch, by_lang, refreshed_at} |
| POST | /api/quiz | Body {answers:{q1..q5}} → {recommendations:[3], share_code} |
| GET | /api/share/:code | JSON of a stored quiz result |
| GET | /share/:code | Server-rendered HTML share card with OG meta |
| GET | / | SPA |
| GET | /static/* | Static assets |
---
Decision logic (lib/decision.js)
Five answers feed into a weighted score per framework:
- q1 cross-session recall = yes → +2 to
graph/episodic/hybrid, −1 to purevector - q2 entity relationships = yes → +3 to
graphandhybrid, −1 tokv - q3 self-host required → 0 if self-hostable, −5 otherwise; managed pref → +1 to managed offerings
- q4 language match → +1 if framework matches user's preferred language (or is
polyglot) - q5 production → tiebreaker boost from
stars/1000plus+1active /−2stale
Reason string is auto-composed from which boosts hit. Top 3 returned.
---
Stack
- Node ≥ 22, Express, better-sqlite3 (WAL), node-cron, helmet, compression
- Vanilla JS SPA, dark theme, no chart libraries (inline SVG sparkline)
- SQLite tables:
frameworks(editorial),snapshots(time-series of GitHub vitals),shares(quiz submissions)
---
Run locally
npm install
PORT=4773 node server.js
# open http://localhost:4773/agent-memory-atlas/
On first boot with an empty database the server kicks off one immediate refresh cycle in the background. Without a GITHUB_TOKEN this takes ~26 minutes (70s spacing × 22 repos). With a token it completes in seconds.
.env.example:
PORT=4773
GITHUB_TOKEN=__INJECT_FROM_VAULT__ # optional
---
What this product deliberately does not do
- No auth, no signup, no admin panel
- Never runs / hosts / proxies any memory framework — we don't read or write a vector index
- No README scraping, no LLM-extracted fields — every editorial value is in the curated manifest, every numeric/temporal value is from GitHub REST
- No recall accuracy benchmarks (that's memory-watchdog territory)
- No comments, ratings, upvotes — pure directory + decision tree