Claude Transcripts docs GitHub
Work in progressUnder active development — not tested as ready for use. Breaking changes land without notice, stored data may need to be discarded between revisions, and there is no auth or security model. These docs describe the intended design as much as the current state.

Competitive landscape

A survey of open-source projects in the AI-memory / LLM-session-logging / self-learning-agent space, mapped to inform our design. Detailed per-project reports live as GitHub issues (#18–#29), indexed by #30; this doc is the synthesis and the "where we sit" conclusions.

Surveyed 2026-06-18 across four lanes (agent-memory frameworks · personal/second -brain · LLM observability · coding-agent memory), deduplicated to 12 projects. Facts verified against the repos at survey time; star counts/versions drift.

The twelve

Direct competitors — Claude Code / coding-session capture + recall

Agent long-term memory frameworks

Personal / self-hosted "second brain"

LLM observability / session-logging platforms

How they store & recall (at a glance)

ProjectStoreMemory modelRecall interfaceKeeps raw transcript?
claude-memSQLite + Chromacompressed summariesMCP + hooksno (lossy)
claude-self-reflectembedded SQLite (Rust)embeddings + decayMCPimports .jsonl
Mem0vector (+graph)reconciled factsSDK/REST/MCPno
LettaPostgres/pgvectorRAM/disk tierstool calls / ADEyes (messages)
Zep/Graphitigraph DBbi-temporal graphREST/MCPsource episodes
Cogneevector + graphECL graph+vectorsSDKno
Basic Memorymarkdown + SQLiteObservation/Relation graphMCPno (distilled)
KhojPostgres + pgvectorRAG over docsweb/REST/pluginsn/a (docs)
ReorLanceDB (embedded)similaritydesktop onlyn/a (notes)
LangfusePostgres+ClickHouse+S3trace/observationSDK/REST/UIinputs/outputs
PhoenixSQLite/PostgresOTel spansGraphQL/REST/UIspans
LaminarPG+ClickHouse+Qdrantspans + NL eventsSQL/SDK/UIspans

Where we sit — conclusions for our design

  1. Our moat is lossless, vendor-neutral capture. Nearly every memory tool stores distilled facts/notes and discards the transcript. We keep the byte-faithful transcript (CouchDB + S3) as ground truth; distillation is an optional derived layer on top — agents get recall and provenance.
  2. Borrow the recall model, not the dependency. Mem0's ADD/UPDATE/DELETE reconciliation, Graphiti's bi-temporal validity + provenance, Letta's sleep-time reflection, and basic-memory's reflection/defragmentation skills are all adaptable over our corpus without adopting their stores. (Take Graphiti's temporal model, not Neo4j.) These feed the Tier-2 "self-learn from history" work (tiers.md).
  3. Search will want vectors (Tier 2). The recall lane reaches for vector stores (Qdrant/LanceDB/FastEmbed). Meilisearch covers lexical/human search; agent semantic retrieval likely needs a vector index behind the webapi /api/search abstraction — see database-choice.md.
  4. Session data model: adopt Langfuse's observation → trace → session vocabulary as the reference for our event→session hierarchy.
  5. Stay lightweight on purpose. Langfuse/Laminar run 3–4 backing services for scale; Phoenix shows SQLite-simple is viable. Our CouchDB + S3 is the deliberate middle — with a known analytics scale ceiling for Tier-2 dashboards.
  6. MCP is the dominant agent-recall surface (claude-mem, basic-memory, Mem0, Graphiti all ship one) — a strong signal for how we eventually expose history to live sessions (the roadmap recall plugin, #10). Phoenix's GraphQL reader and Laminar's SQL-over-history are power-user ideas for our webapi.
  7. Licensing: Apache-2.0/MIT dominate the projects we'd emulate; Phoenix's ELv2 is the cautionary contrast for our public release.