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.

7. CouchDB as the primary store

Date: 2026-06-06

Status

Accepted

Context

The session log is heterogeneous, schemaless data: a stream of event docs whose fields vary by event type (SessionStart, PostToolUse, SubagentStop, …), plus an end-of-session summary doc, plus the raw transcript. We needed a primary store that fits that shape and serves several downstream consumers (a web UI, the API, ad-hoc inspection, and — by design — Claude Code itself).

Decision

Use CouchDB as the primary store (database claude-sessions). What won it:

Transcripts are stored both as a CouchDB attachment on the summary doc (so the data is self-contained even with no object store) and as an S3 blob (durable copy) — see ADR 0008.

Update: the CouchDB attachment was later removed — ADR 0014 makes S3 the transcript's sole home. CouchDB now holds only event + summary docs.

Consequences