Local-first agent memory

Every agent conversation.
One queryable lake.

Transcript Lake turns conversations from Claude Code, Codex, OMP, Droid, Kimi, and Tama hooks into one privacy-masked local archive—while they happen.

Start the quick guide
ClaudeCodexOMPDroidKimiTama
MASKLAKENDJSON
SQL SELECT evidence
06runtime inputs
01canonical schema
0cloud credentials
local memory

Why Transcript Lake

Your team already solved it.
Now the answer is findable.

01

Capture continuously

A supervised, event-driven stream follows complete local transcript appends. Durable byte cursors resume without rescanning settled history.

02

Mask before storage

Credential-shaped and high-entropy text is replaced before an event reaches the canonical partition or any downstream projection.

03

Query one contract

Provider-neutral events make sessions, tools, tokens, hook decisions, labels, and cross-runtime signals available through DuckDB.

04

Keep authority local

Vendor stores remain read-only. NDJSON stays authoritative. Parquet and Oko projections are explicit, rebuildable derived state.

A narrow trust boundary

Raw on one side.
Masked on the other.

Transcript Lake gives every downstream consumer the same normalized evidence without making each one handle raw vendor files, secrets, or incompatible schemas.

Read the masking guarantees
transcript-lake / stream
$ transcript-lake stream
stream start roots=6
adapter runtime=claude complete_lines=7
mask assignments=2 tokens=1 entropy=1
commit files=1 failures=0 ms=50
cursor durable offset=14592
 

Documentation

From first stream
to recovery.

Explore 42 complete guides, references, concepts, and executable examples covering the full development-channel contract.

Browse all documentation