tapes backfill
Backfill captured data into a running tapes deployment. Subcommands replay existing capture artifacts through the normal ingest path, so every write is idempotent: raw turns dedup on their capture id, and re-deriving the affected sessions reproduces the span projection.
The default --ingest-url (http://127.0.0.1:8090) matches a platform tapes-ingest deployment (e.g. through a port-forward). Against a local all-in-one tapes serve, the ingest listener is on :8082 — pass --ingest-url http://localhost:8082.
tapes backfill transcripts
Upload Claude Code transcripts into tapes' immutable raw layer. Reads <session>.jsonl files (and each session's subagents/ directory, including the agent meta.json fork edges) from a Claude Code project directory and POSTs them to {ingest-url}/v1/ingest/transcript. The deriver fuses them with the wire capture: transcripts supply the causal/fork skeleton, the wire supplies the complete call inventory.
tapes backfill transcripts \
--dir ~/.claude/projects/<project> \
--session 0ea3c2cc-fe9d-41ff-aab1-4134ad00c350 \
--ingest-url http://localhost:8090 | Flag | Description |
|---|---|
--dir | Claude Code project directory holding <session>.jsonl files (required) |
--session | Session id(s) to upload (default: all in the directory) |
--ingest-url | Base URL of the tapes-ingest server (default: http://127.0.0.1:8090) |
-v, --verbose | Log each file's outcome |
Idempotent: unchanged files dedup server-side; grown transcripts append a new version.
tapes backfill wire-trace
Replay paperd wire-trace capture bundles through tapes-ingest. Reads turn-* bundles (request.json + response.sse + meta.json) from a paperd wire-trace directory, reconstructs the ingest envelope that tapes-extproc would have dispatched live, and POSTs each to {ingest-url}/v1/ingest.
tapes backfill wire-trace \
--dir ./wire-trace \
--ingest-url http://localhost:8090 | Flag | Description |
|---|---|
--dir | paperd wire-trace directory holding turn-* bundles (required) |
--session | Harness session id(s) to replay (default: all) |
--ingest-url | Base URL of the tapes-ingest server (default: http://127.0.0.1:8090) |
--dry-run | Parse and reduce every bundle but skip the POST |
-v, --verbose | Log each turn's outcome |
Idempotent: re-running is a no-op for turns already backfilled, and turns that already landed via live capture only gain their raw row.