USL

Introduction

USL — the agent-session database

USL (Universal Session Log) is the storage-first reference implementation of the Agent Session Protocol. It is a complete database for agent session logs — not just a library:

componentwhat it iswhere
Storage formatappend-only single file, framed records + CRCcrates/usl-core/src/format.rs
Query APIscan / get / verify / fromSeq over sessionscrates/usl-core/src/store.rs
Query planeSessionQL, typed Query IR, search, lineage, subscriptionsRFC 0001 (Draft)
Durability & recoverygroup-commit append, crash recovery from the logcrates/usl-core/src/recover.rs
Identitycontent-addressed session idscrates/usl-core/src/identity.rs
Live capturefile-boundary ingest, chunk-invariant framingcrates/usl-capture/
Conversionpi / dimagent / claude / codex inter-conversionpackages/usl-convert/

USL is schema-agnostic: the engine stores opaque records (seq + session_id + kind + ts + body); the ASP canonical schema lives a layer above. That separation is what makes it a database rather than a format.

Why USL

Agent runtimes proliferate, and each locks its session history in its own log format. USL is the durable, portable layer underneath: any runtime's session can be ingested, queried, recovered after a crash, and converted into another runtime's resumable format.

Where to start

On this page