| I built Anchor because I kept hitting the same wall: local LLMs are great, but every conversation is a fresh start. Vector search is the default hammer, but for structured memory—project decisions, entity relationships, temporal facts—it's often the wrong tool. Live demo (in-browser, no setup):
https://rsbalchii.github.io/anchor-engine-node/demo/index.ht... Search Moby Dick or Frankenstein and see the tag-based receipts that show why each result matched. How it works
Anchor uses graph traversal (the STAR algorithm) instead of embeddings. Concepts become nodes, relationships become edges. The database stores only pointers (file paths + byte offsets); content stays on disk, so the index is small and rebuildable. PGlite (PostgreSQL in WASM) lets it run anywhere Node.js does – including a Pixel 7 in Termux, with <1GB RAM. Performance
- <200ms p95 search on a 28M-token corpus
- <1GB RAM – runs on a $200 mini PC, a Raspberry Pi, or a phone
- Pure JS/TS, compiled to WASM, no cloud dependencies What’s new in v4.6
- distill: lossless compression of your corpus into a single deduplicated YAML file. I tested it on 8 months of my own chat logs: 2336 → 1268 unique lines, 1.84:1 compression, 5 minutes on a Pixel 7.
- MCP server (v4.7.0) – exposes search and distillation to any MCP client (Claude Code, Cursor, Qwen tools)
- Adaptive concurrency – automatic switching between sequential (mobile) and parallel (desktop) processing The recursion
I used Anchor to build itself. Every bug fix and design decision is in the graph – that's how I kept the complexity manageable. Where it fits
If you're building local agents, personal knowledge bases, or mobile assistants and want memory that's inspectable, deterministic, and lightweight – this is for you. GitHub repo:
https://github.com/RSBalchII/anchor-engine-node Whitepaper:
https://github.com/RSBalchII/anchor-engine-node/blob/main/do... Happy to answer questions about the algorithm, the recursion, or the mobile optimizations. |