davidedwards

Project

David's Brain

A self-hosted memory system that every AI assistant I use shares. Claude, ChatGPT, and my own agents all read and write the same brain. Mine.

Role
Designer & builder
Status
In production
Stack
MCPPostgrespgvectorPythonObsidian

The problem

Every AI assistant has amnesia. I’d tell Claude about a project on Monday, and on Tuesday ChatGPT would ask me to explain the whole thing from scratch. The vendors all offer memory features now, but each one is a separate silo, you can’t really see what’s in them, and none of it comes with you when you switch tools.

Meanwhile, I already write everything down. Meeting notes, project docs, daily logs, all in Obsidian. The information existed. The assistants just couldn’t see it.

The jumping-off point was Nate B. Jones’s Second Brain writeup, arguing the AI implementation gap closes when your own knowledge base becomes queryable by any model. I took that idea and built the version that fits how I actually work.

What I built

Three pieces:

  • A Postgres database with pgvector that stores quick captured thoughts and makes everything searchable by meaning, not just keywords.
  • An indexer that watches my Obsidian vault and keeps every note embedded and current.
  • An MCP server that exposes it all as tools: search my memory, save a thought, read or edit a note, append to today’s log.

If MCP is new to you, here’s the short version: it’s a standard protocol that lets AI assistants plug into outside systems, like USB for AI tools. Because David’s Brain speaks MCP, the same memory connects to Claude Desktop, Claude Code, ChatGPT, and my own automation agents. Ask any of them “what did I decide about X?” and they all query the same store. Tell any of them “remember this” and it lands in the same place.

(Yes, it’s called David’s Brain. Naming things is hard, and at least this one is accurate.)

Why you might care

If you use AI assistants at all, you’ve felt this: re-explaining your context to every tool, every session. My position, and this project is that position expressed in code, is that the memory should belong to you, not the vendor. Assistants come and go. The knowledge base persists. When a better model ships next month, I point it at my brain and it knows me on day one.

Notes for the technical crowd

  • Tool descriptions are UX. The difference between an assistant that uses memory well and one that ignores it is almost entirely in how the MCP tools describe themselves.
  • Semantic search alone isn’t enough. Structured metadata (people, projects, note types) does the heavy lifting for real queries like “what did Josh and I decide last week?”
  • If capture isn’t frictionless, you stop capturing, and a memory system you don’t trust is worse than none. Speed and reliability aren’t polish here; they’re the whole product.

← All projects