RA
All projects

Personal project · 2026

Matteo

Live

Not a notes app - a companion. Matteo captures what I collect, re-reads it every night, and surfaces connections between ideas written weeks apart. In daily personal use.

The problem

Every "second brain" tool promises AI that actually knows your notes, then ships something that can't be trusted to read them. Vague "related to your other notes" suggestions and silent processing nobody trusts are the norm. The real need: a companion that only speaks up when it has something grounded to say, and never touches what you wrote without asking first.

What I built

Every capture becomes a living note that keeps working long after it's filed. Every night, while I sleep, Matteo quietly re-reads what I kept, follows the connections between ideas, and surfaces the ones I'd never think to look for myself, always as a suggestion I approve, never a silent edit. A multi-agent AI system with its own private, searchable knowledge graph underneath.

Key decisions
01
Discipline over a bigger tool catalog
The system prompt carries the intelligence, not the tool count - roughly 80% prompt, 20% tools. One tool finds, one reads, one proposes an edit; nothing does everything. The prompt decides when to retrieve before answering and when to refuse rather than speculate.
02
Suggestions, never silent edits
Matteo's autonomous output - a surfaced connection, a Dream-written memory, an inline edit - always lands as a proposal the user accepts or dismisses. Only genuinely low-stakes, reversible output, like an inline autocomplete, skips the review gate. The user leads; Matteo proposes.
03
Bounded graph walk over global search
Connection-finding walks two hops out from the entry node, with a minimum edge strength, instead of scanning the whole graph. Local neighborhoods surface the non-obvious pairs that don't embed alike; the global graph mostly returns noise.
Outcome

In daily personal use as my own second brain. Every capture - a voice memo, a clipped article, a half-formed idea - becomes a note; every night the Dream cycle finds what connects them. The chat surface, the connection graph, and the accept/dismiss review queue are all live and in active iteration.

Stack
LangGraphNext.jsSupabaseMulti-agentTypeScript
View live

Want to go deeper on Matteo?