# Sync CLI

Use `provon sync` to upload persisted agent transcript directories to Provon as OTLP traces.

This is the command-line counterpart to the trace capture path described in
[Agent transcripts](../tracing/agent-transcripts.md).

## Sync Once

Run a single backfill pass over a transcript directory:

```bash
provon sync ~/.claude/projects --once
```

Common transcript directories include:

```text
~/.claude/projects
~/.codex/sessions
~/.pi/agent/sessions
```

## Watch Mode

Run continuously and rescan for changes:

```bash
provon sync ~/.claude/projects
```

The watcher exits on `SIGINT` or `SIGTERM`.

## Dry Run

Parse and summarize changes without uploading:

```bash
provon sync ~/.claude/projects --once --dry-run
```

## Tool Output

Control how tool outputs are included in uploaded spans:

```bash
provon sync ~/.claude/projects --once --include-tool-output full
```

Modes: `truncated` (default), `none`, `full`.

## Other Options

```text
--once                      Run one backfill pass and exit
--dry-run                   Parse and summarize changes without uploading or updating state
--print-sample              Include a small OTLP payload sample in the JSON output
--include-tool-output       Tool output handling: truncated, none, or full (default truncated)
--poll-interval <ms>        Watch-mode rescan interval (default 30000)
--settle-ms <ms>            Watch-mode debounce interval (default 1000)
--max-payload-bytes <n>     Maximum bytes per OTLP upload payload (default 8388608)
```

## Related Docs

- [Agent transcripts](../tracing/agent-transcripts.md)
- [Claude Code transcripts](../tracing/claude-code.md)
- [Codex transcripts](../tracing/codex.md)
