USL

Conversion

Moving sessions across harnesses

usl-convert (TypeScript) moves session logs across harnesses via a neutral intermediate — the asp-bundle: a canonical pivot snapshot plus the full ordered evidence stream (its WAL).

pi JSONL · dimagent sqlite · claude JSONL · codex rollout
        │  import

     asp-bundle   (pivot + evidence + fidelity + loss)
        │  export

resumable pi / dimagent / codex file

Supported harnesses

harnessimportexport
piJSONLresumable JSONL
dimagentsqlite (WAL-safe copy)sessions+messages rows
claudeJSONL (block-append journal merged)via pi
codexrollout (dual-stream dedup)rollout

Declared fidelity

Every conversion states, per axis, a fidelity level (preserved / partial / evidence-only / dropped / not-in-source) and a loss list. Round-trip fidelity comes from the evidence layer: exporters replay the importer's native payloads verbatim — Claude's thinking signature, Codex's encrypted_content — synthesizing only when absent.

CLI

cd packages/usl-convert && npm install
node --import tsx src/cli.ts convert codex pi <rollout.jsonl> out.jsonl
node --import tsx src/cli.ts convert pi codex <session.jsonl> out.jsonl

See the full fidelity matrix.

On this page