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.

Feature tiers

The project is built as three tiers that stack. Each tier is a strict superset of the one below — nothing in a higher tier may break a lower tier, and every tier is independently useful. The repo lives on GitHub; the public release is a Tier-3 concern.

The organizing principle is graceful degradation: the core (webapi + CouchDB) must always work; everything else is optional and degrades features, not the system. See architecture.md and ADR 0016.

Tier 1 — single machine, single user

The problem it solves: session-transcript retention and persistence on one machine for one user, plus the ability to search/browse that history (webui) and integrate programmatically (webapi/CLI).

Tier-1 build scope

The concrete deliverables for Tier 1:

This is the tier the repo targets first. See specification.md and hook-setup.md.

Gate: end-to-end test suite (after Tier 1, before Tier 2)

Before building Tier-2 features, land an end-to-end test suite that fakes a Claude Code session and drives the system end-to-end (synthesize the hook event stream + transcript → write through the system → assert via the webapi/proxies), running against the repo's own bundled stack. This verifies the Tier-1 base so active-use features are built on solid ground. Design in testing.md.

Tier 2 — make history actively useful

Tier 2 keeps the single-container core but adds the features that turn a passive archive into an active asset for future sessions, and broadens beyond one machine/user. Requirements collected here (each becomes its own design note + issue):

Tier 2 is where search (Meilisearch and/or a vector index) and the recall plugin (#9, #10) earn their keep. Still no hard security requirement if deployed single-user; multi-user sharpens the need for the metadata layer but not yet auth.

Tier 3 — multiplayer & public release

Everything required to run this as shared, multi-party, public-facing software:

What is core vs optional (summary)

ComponentTierCore / optionalIf removed
webapi1core, non-optionalsystem has no stable API surface — not allowed
CouchDB1coreno durable store — not allowed
webui1optional interfacelose the browser UI; CLI/API still work
CLI1optional interface + admin toollose the terminal UX + agent-driving convenience
Meilisearch1→2core, removable/swappablelose search features
S3 / Garage1core, removablelose blob backups + pruned-content escrow; CouchDB still persists data
App-log DB1/2optionallose centralised app/error logs (see app-logging.md)
Multiplayer / auth3added in Tier 3n/a below Tier 3

The decision to make the webapi the single non-optional gateway is recorded in ADR 0016; the tier model itself in ADR 0015.