Skip to main content
bt sync downloads Braintrust data to local NDJSON files and uploads it back. Use it for offline analysis, backup, or migrating data between projects and orgs. Object ref format: object_type:name_or_id Supported object types: project_logs, experiment, dataset
# Pull the last 24 hours of logs to ./bt-sync/
bt sync pull project_logs:my-project --window 24h

# Pull a specific experiment
bt sync pull experiment:my-experiment --project my-project

# Push local files back to Braintrust
bt sync push project_logs:my-project --in bt-sync/project_logs

# Check local sync state
bt sync status project_logs:my-project

Pull flags

FlagEnv varDescription
--window <DURATION>BT_SYNC_WINDOWTime window (default: 3d; e.g. 1h, 7d)
--filter <EXPR>BTQL filter expression
--traces <N>Max root traces to fetch
--spans <N>Max spans to fetch
--freshIgnore previous state, start over
--root <PATH>Output directory (default: bt-sync)
--workers <N>Concurrent fetch workers
--include-vectorsInclude embeddings (needed for re-ingestion via push)
--verboseBT_SYNC_VERBOSEPrint BTQL queries and timing

Push flags

FlagDescription
--in <PATH>Input file or directory (defaults to latest pull output)
--traces <N>Upload at most N root traces
--spans <N>Upload at most N span rows
--workers <N>Concurrent upload workers