Secure AI Memory with Commonplace Knowledge Graph
Open Source
commonplace is a self-hosted, two-tier knowledge graph that gives AI agents a persistent memory — one they read from and write to over a private network. One tier extracts with a hosted model for best quality; the other runs entirely on a local GPU, so confidential work never leaves the machine. View on GitHub →
Why
Knowledge-graph ingestion uses an LLM to pull entities and relationships out of text — and that extraction step is exactly where your data is exposed to a model. Most “AI memory” products make you choose: send everything to a hosted model for quality, or keep everything local and accept weaker results. commonplace refuses the trade-off by splitting memory into two tiers based on who is allowed to do the extraction: a personal tier that uses a hosted model for your own notes and projects, and a client-confidential tier whose extraction happens entirely on a local GPU, so NDA material never leaves the box.
Architecture
- Two MCP servers — one per tier — that any Model Context Protocol client (Claude Code, Pi, …) connects to.
- One FalkorDB holding two isolated graphs, selected per instance.
- One shared local embedder (Ollama,
nomic-embed-text) used by both tiers, so vectors stay comparable. - Local extraction for the confidential tier via
mistral:7bon the GPU; hostedclaude-haiku-4-5for the personal tier. - Private transport — everything is reachable only over a Tailscale tailnet, never the public internet.
Private by design
Retrieval is cheap and fully private on both tiers: search is embeddings + BM25 + graph traversal with no LLM in the query path. The GPU only ever does slow, asynchronous background extraction, so query latency is never affected — and a query never sends your data anywhere. The confidential tier has no hosted dependency at all.
Quickstart
It runs on a single always-on Linux host with Docker and (optionally) a consumer NVIDIA GPU:
ollama pull nomic-embed-textollama pull mistral:7b-instruct-q4_0cp .env.example .env # set a FalkorDB password + (optional) Anthropic keydocker compose up -d
Then point a client at the two endpoints and your agents start reading and writing memory. Full setup, the architecture diagram, and a hard-won “gotchas” list are in the README.
Status
Open source under the MIT license and running in daily use. Current work focuses on making agents leverage the graph well: a per-tier domain ontology to sharpen extraction, a portable memory protocol for clients, and observability to show whether agents are actually reading and writing. Follow along on GitHub →
Tech stack: Graphiti, FalkorDB, Ollama (nomic-embed-text, mistral:7b), Claude Haiku 4.5, Model Context Protocol, Tailscale, Docker. License: MIT.