Knowledge
My personal memory as a typed graph, with a web app, a REST API and an MCP server so AI assistants can read and write it.
Knowledge is where everything I want to remember lives: notes, people, places, projects, tasks, machines, the D&D campaigns I play in. It replaced my Obsidian vault.
How it works
Everything is a node with a type, a few typed fields and a Markdown body, and nodes are joined by typed edges ("works at", "part of", "uses"). The catalogue of types, fields and edge types is itself data in Postgres, so I can grow the model without a migration.
- Web app: an installable PWA to browse, search and edit, with passkey sign-in.
- MCP server: an AI assistant can search the graph, resolve a name to the right node, create what's missing and link it all. It can't change the catalogue on its own: it files proposals that I approve in the web app.
- Search: full text plus semantic search with pgvector. The embeddings come from a local multilingual model in a sidecar service, so nothing leaves the house.
- Secrets are encrypted and never go out through the API or the MCP.
Why
I wanted one place that both I and an assistant could rely on, with structure where it helps (dates, statuses, relationships) and free text everywhere else. Building it myself meant I could make the AI side a first-class citizen instead of an afterthought.
Tests run against a real Postgres, and it deploys to my homelab with every push to main.