Cloud memory tiers have a fundamental problem: your agent context - the most sensitive data you have - leaves your machine. I wanted memory that never does.
So Awareness runs a local-first daemon:
npx @awareness.market/local start
No account. No API key. No cloud. SQLite + ONNX embeddings on your machine, served to Claude Code, Cursor, or any MCP client on localhost.
| Storage | SQLite, human-readable, yours forever | | Embeddings | all-MiniLM-L6-v2 as ONNX (23MB) - zero API calls | | Retrieval | hybrid BM25 + vector RRF - 1.7s per query on an M1 8GB | | Memory types | knowledge cards, bi-temporal facts, conflict detection | | Upgrade path | optional cloud sync to pgvector when you want team sharing |
Three things a cloud memory tier can never give you:
95.6% recall@5 on LongMemEval_S, on an M1 with 8GB RAM and zero LLM calls at retrieval. Two competitors edge us by ~1 point on recall, running hosted stacks. Full methodology with the tables we do not win:
https://awareness.market/benchmarks
Local-first does not mean local-only. Burst inference, team-shared memories, and cross-device sync are real needs - the daemon upgrades to cloud (pgvector) with one command when you need it. The point is that local is the default, not the fallback.
Repo and SDK: https://github.com/everest-an/Awareness
What would make you switch your agent memory to local-first?