---
source: src/main.rs
expression: sub.render_long_help().to_string()
---
Make pond current: import, embed, update indexes.

The everyday command: pulls fresh sessions from every enabled `[adapters.*]` entry (or one named adapter), embedding each message inline as it is written, and folds new rows into the search indexes. It only ever syncs adapters you have already enabled - enabling one is an explicit step (`pond adapters enable` / `pond adapters discover` / `pond init`), never a side effect of sync.

Usage: pond sync [OPTIONS] [ADAPTER]

Arguments:
  [ADAPTER]
          Adapter name (claude-code, codex-cli, ...); default: every enabled adapter

Options:
      --path <DIR>
          One-off source-path override (requires <ADAPTER>).
          
          Bypasses `[adapters.<adapter>]` and does not modify config.toml.

      --verify
          Reconcile pass: bypass the freshness skip and re-read every source body, re-ingesting through the idempotent merge. The skip compares source mtime to pond's per-session ingest watermark; a session that was partially flushed before the commit-row-last fix kept a frozen watermark that mtime can never re-read past. This is the body-reading tier that heals that historical damage (and audits completeness). It is slower - every file is decoded - so it is opt-in, not the default

      --dry-run
          Preview the next sync: per-adapter source counts and how many the freshness gate would re-read. Writes nothing to the store

      --no-wait
          If another pond sync is already running against this store on this host, skip this run (exit 0) instead of waiting for the lock. The scheduled sync passes this so ticks never queue up

      --format <FORMAT>
          Output format: `text` (stage lines + progress) or `json` (one summary document on stdout; progress stays on stderr)
          
          [default: text]
          [possible values: text, json]

  -h, --help
          Print help (see a summary with '-h')

Global options:
      --storage-path <URL>
          Storage destination: a local path or remote URL.
          
          Accepts a bare path, `~/path`, `file://`, `s3://bucket/prefix`, `s3+https://host/bucket/prefix`, `gs://`, `az://`, or the keyword `local` (the platform default local data dir). Default: `[storage].path` from config, then the platform data dir (`~/.local/share/pond`).
          
          [env: POND_STORAGE_PATH]

      --config-file <PATH>
          Config file to read (default: `~/.config/pond/config.toml`)
          
          [env: POND_CONFIG_FILE]

  -v, --verbose...
          Increase logging verbosity

  -q, --quiet...
          Decrease logging verbosity

Examples:
  pond sync                                  sync every enabled adapter
  pond sync claude-code                      sync one enabled adapter
  pond sync --dry-run                        preview what the next sync would read
  pond sync codex-cli --path ~/backup        one-off path override, config untouched
  pond sync --verify                         full re-read; heal anything the skip missed
