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:7b on the GPU; hosted claude-haiku-4-5 for 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-text
ollama pull mistral:7b-instruct-q4_0
cp .env.example .env # set a FalkorDB password + (optional) Anthropic key
docker 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.