athena-diary

athena-diary

Provides a SQLite-backed off-context diary for Letta agents with MCP tools for journaling and retrieval, keeping core memory uncluttered. Supports embedding summaries and FTS fallback for semantic search.

Category
Visit Server

README

Athena Diary

SanctumOS

Off-context diary for Letta (and other MCP) agents: a SQLite journal plus MCP tools so the urge to remember does not stuff narrative into core memory.

Name: Athena Diary is named after Athena, Sanctum’s first long-running agent (user #1 of this pattern)—not because the product is Athena-only. Any Letta agent (or MCP client) can run its own diary instance.


What this is

Agents over-journal into core memory blocks. On a large context window that burns budget and crowds out short-term recall. The impulse to write is good; core is the wrong surface.

Athena Diary gives the agent a rest bucket outside the context window:

  • Write freely — volume belongs in the diary, not in core.
  • Retrieve on demand — search returns pointers (ids + summaries); load full bodies only when needed.
  • Embed summaries — vector search over gists (sqlite-vec when available), with FTS on body/summary so a bad summary cannot hide an entry.
  • Sleeptime clerk — tags, lesson-family, templated summaries, and re-embeds run on turn-based sleeptime passes (not a wall-clock “night”).
  • Sensitive material stays out — intimate / medical / human-gated content belongs in Broca (or your equivalent) human blocks, not the diary. Privacy in v1 is instructional (same discipline as human-block practice), not ACL theater.

Same architectural shape as origin_conversation: SQLite source of truth + MCP wrapper.

Full product story: docs/OVERVIEW.md.


Tools (MCP)

Tool Role
diary_write Append an entry (body required; optional summary / metadata)
diary_get Fetch one entry by id (full body)
diary_search Keyword / semantic search over summaries (pointers, not bodies)
diary_sleeptime_pass Clerk batch: tag, summarize, link near-dupes, re-embed

Full API: docs/TOOL_REFERENCE.md.


Quick start

git clone https://github.com/sanctumos/athena-diary.git
cd athena-diary
python3 -m venv .venv && source .venv/bin/activate   # Windows: .venv\Scripts\activate
pip install -e '.[mcp,dev]'
# Optional vector extension:
# pip install -e '.[vec]'

cp .env.example .env   # set DIARY_DB / embed mode as needed

athena-diary-mcp --version
athena-diary-mcp --describe
athena-diary-mcp health

# MCP stdio (what Letta / Cursor usually spawn):
athena-diary-mcp serve

Wire the server into your MCP client: docs/MCP_CLIENTS.md (ChatGPT, Claude Code, Cursor, Letta, others).
Legacy Letta / Sanctum bootstrap: docs/LETTA_BOOTSTRAP.md.
Step-by-step install: docs/GETTING_STARTED.md.


Documentation

Doc Description
docs/README.md Documentation index
docs/OVERVIEW.md Purpose, naming, architecture, what belongs where
docs/GETTING_STARTED.md Install, first entry, attach to an agent
docs/LETTA_BOOTSTRAP.md Bootstrapping onto a legacy Letta hot + sleeptime instance
docs/MCP_CLIENTS.md ChatGPT, Claude Code / Desktop, Cursor, Letta, other MCP hosts
docs/TOOL_REFERENCE.md Full MCP tool contracts and examples
docs/CONFIGURATION.md Env vars, embed modes, DB path, transports
docs/AGENTS.md Short summary for agent / AI readers
docs/COVERAGE.md ≥90% coverage gate for contributors

Design principles (v1)

  1. Diary first, core ruthlessly thin — never paste diary bodies into core; core may hold skinny pointers (e.g. lesson-family → search).
  2. No write gates — clerk cost is controlled by batched sleeptime, not by blocking capture.
  3. Summaries for vectors; FTS for safety — search remains useful even when summaries drift.
  4. One mixed diary store — per-human vaults and dual “discreet” DBs are deferred (leak / ops risk).
  5. Complements Letta archival — experiential / first-person noticing → diary; reference facts may still use archival.

Out of scope for v1: multi-tenant vaults, soft ACL over intimate text, auto-promotion into core, replacing archival entirely.


License

See NOTICE and LICENSES/README.md.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured