A git-based differential memory backend: markdown files store the current 'now' state of knowledge while Git's commit graph preserves how facts evolved over time. A git-native retrieval agent explores the repository via sandboxed shell commands (`grep`, `git log`, `git diff`, `git blame`) to build targeted context — no vector database, no embeddings, no BM25, just git and an LLM. Ships as a small FastAPI service and is also importable as a Python library.
- Storage
- Markdown files in a git repo; each user gets an isolated orphan branch (`user/{user_id}`) checked out into a per-user worktree, so users share no history without needing per-user repos. Current-state files are the query surface; history lives in git commits, loaded on demand. Storage backend is local disk by default (a hard requirement of the shell-based retrieval agent); an optional GitHub backup backend can mirror user branches offsite.
- Retrieval
- A multi-turn LLM retrieval agent with a single `run(command=...)` tool that shells out to read `index.md` and probe git history (grep/git log/git diff/git blame), then outputs a structured retrieval plan (file sections, diffs, commit logs) resolved into context. Optimized for a compact current-state surface with on-demand temporal deep-dives.
- Self-host
- Self-host: trivial
- License
- MIT (declared in README; no LICENSE file committed to the repo)
- Pricing
- Open-source (MIT per README); self-hosted, no paid tier for the library. I/O-bound — runs on a 1-vCPU VPS. One-click Coolify/Docker Compose deploy. · Free / OSS
- GitHub stars
- 891
- Last release
- —
- Last commit
- 2026-06-26
- First catalogued
- 2026-06-30
Strengths
- No vector DB, no embeddings, no BM25 — just git + an LLM, so nothing to babysit and memory stays human-readable
- Differential/temporal intelligence: 'how has this fact changed?' answered from git diffs/logs without scanning full history
- Current-state focus keeps the query surface (and token cost) lean; historical depth is on-demand
- Per-user orphan-branch isolation without per-user repos
- Production-proven: powers Annabelle, a persistent-memory assistant across thousands of WhatsApp/Messenger conversations
- Self-hostable with zero external dependencies (local storage backend); optional GitHub mirror
Watch out
- No LICENSE file is committed — the README declares MIT (badge + a 'License' section), but until the file lands the code is technically all-rights-reserved by default; confirm before embedding or redistributing
- No tagged GitHub releases; the README self-labels v0.5.0 / 'production'
- Retrieval requires a real local directory (the agent shells out to grep/git) — the storage backend cannot be a pure object store
- Per its own roadmap, the indexing strategy is memory-intensive and an entity can become an over-loaded catch-all; retrieval quality depends on the LLM agent
Best for
- Builders of long-horizon conversational or personal-assistant agents who want human-readable, git-versioned memory without a vector store
- Teams that value auditability and 'smart forgetting' via git history over embedding-based recall
How it integrates
Benchmark results
No sourced results yet.
Sources
- DiffMem README — git-based differential memory, markdown + git history, shell-based retrieval agent (grep/git log/git diff), FastAPI service + importable library, per-user orphan branches, Coolify self-host; MIT badge but no LICENSE file present (vendor)
- GitHub API — 891 stars, Python, no LICENSE file (license: null), no releases, pushed 2026-06-26 (third-party)
Last verified 2026-06-30 · updated by discover-frameworks