All projects
Memento logo

Memento

A local-first knowledge layer over your email archive that turns long-term history into source-attributed, compounding memory.

Go TypeScript Active email agents memory ai

What it does

Most of your important history is buried in email. Memento surfaces it — organized around the people, projects, and topics that actually matter to you. It organizes your history across four dimensions plus Home instead of inbox chronology:

  • People: relationship wikis for meaningful contacts.
  • Projects: bounded narratives for user-confirmed work or life projects.
  • Newsletters: coverage summaries, recurring themes, and recent items.
  • Concepts: user-declared evergreen topics backed by archive sources.
  • Home: an overview plus Ask Memento chat across the archive.

Why it exists

Email clients optimize for the newest message. Search helps when you know the right terms, but it still hands you a list of messages to reread. The deeper value sits across years of threads, newsletters, people, projects, and recurring themes.

Memento asks a different question: can an agent maintain durable memories from your own archive, keep every factual claim tied to source messages, and preserve your edits as new mail arrives?

What makes it powerful

Memento is powerful because it combines reliable extraction with agents that know where to look.

Deterministic extraction first. Before any LLM call, Memento resolves canonical contacts, maps email aliases, detects newsletter sources, and builds communication rollups from the archive. It can find key contacts from bidirectional conversation patterns, shared threads, and recurring collaborators. Agents start from a structured view of your history instead of guessing from raw search results.

Multi-dimensional agentic search. Each dimension has its own agent workflow and prompt. A project agent looks for collaborators, decisions, timelines, and missing periods. A person agent looks for roles, relationship signals, shared projects, and useful context from prior notes. A concept agent gathers evidence around an evergreen topic. The same archive can answer different questions because each agent searches with the shape of the target memory surface in mind.

Purpose-built agent tools. Agents can use full-text search for exact terms, vector search for semantic recall, compact message batches for evidence, thread summaries for long chains, social graph navigation for relationship context, bridge-finding between people, gap detection for missing evidence, and context-status tools before broad expansion. That lets Memento deliver the right context to the LLM instead of stuffing a pile of loosely related emails into a prompt.

Memory that compounds

Every edited narrative, personal note, and corrected section becomes part of the memory surface. Future agent runs read those edits, treat user notes as authoritative, and use the existing memory as retrieval context.

That makes Memento richer over time. A project narrative you edited six months ago can shape the next project update. A note you added to a contact can change how that person appears in related project, concept, and Home searches. The artifact is a living memory surface that gets more personal as you use it.

How it works

Memento sits on top of msgvault, which handles mailbox acquisition, archive storage, full-text search, semantic search, and sync. Memento reads that archive and writes its own memento_* tables for generated reports, user edits, notes, rollups, and agent state.

It runs locally by default. The statically exported Next.js UI is embedded in a Go binary, and the browser calls the Go API directly on 127.0.0.1. The backend treats msgvault data as read-only and writes only to Memento-owned SQLite tables.

The agent runtime also lives in Go. It runs collector, project, concept, person, and Home workflows with durable traces, tool calls, and SSE updates. Dimension indexes read materialized rollup tables for fast page loads. Agents ask for clarification before spending budget on ambiguous requests, and generate reports only after the user confirms expensive project or concept work.

Why not RAG?

RAG answers one prompt, then forgets the work. Memento builds and maintains living documents. The important artifact is a source-backed memory surface that can be refreshed, reviewed, edited, and revisited.

That difference shapes every technical choice: deterministic extraction before model calls, materialized rollups for fast page loads, citations from the start, and user edits that persist across updates. Memento deliberately avoids becoming another email client.

Tech Stack

Built with Go, Next.js, TypeScript, Tailwind, SQLite, and msgvault. LLM calls run through Gemini or OpenAI-compatible providers, with local and self-hosted models supported when they provide the needed tool-calling behavior.

Recognition

Memento started as a hackathon exploration and became an active open-source project. The current work focuses on making personal email memory useful without giving up local-first ownership.