Remote commands
Serve the reference remote
export TINE_REMOTE_TOKEN="at-least-16-bytes"
export TINE_KMS_KEY="base64-key-material"
tine serve \
--root .tine-remote \
--host 127.0.0.1 \
--port 8787 \
--tenant default \
--role writer \
--cert cert.pem \
--key key.pemTLS is required unless --insecure-dev is explicit. The token comes from TINE_REMOTE_TOKEN by default and must contain at least 16 bytes. Limits can be adjusted with --timeout, --request-deadline, --max-body-mb, --max-upload-mb, and --max-connections.
Fetch, push, and clone
tine share fetch https://runs.example --tenant team --ref heads/main --depth 100 --repo .
tine push https://runs.example --tenant team --ref heads/main --remote-ref heads/main --repo .
tine clone https://runs.example ./clone --tenant team --ref heads/main --depth 100Use --token-file or TINE_REMOTE_TOKEN for credentials. Remote URLs refuse userinfo, query strings, and fragments. A token file readable by group or others produces a warning. HTTPS is required unless the host is a literal loopback address or insecure development is explicit. Authenticated clients ignore ambient proxy variables.
Synchronization semantics
Fetch retains remote annotations for already-held runs under remotes/<name>/annotations/. Use --adopt-annotations to adopt them deliberately. Clone refuses a target already holding refs or objects. Association budgets may omit annotations or attestations while preserving the transferable run graph; inspect omission reports.
Fetch negotiates missing verified objects and records shallow boundaries when depth is set. Push uploads missing objects before attempting a compare-and-swap ref update, so a stale remote ref is rejected rather than silently overwritten. Clone initializes a new repository and fetches the selected ref.
Recovery flags
serve --migrate-legacy-audit is a one-time trust-on-migration path whose rows remain marked unverified. --reanchor-audit-head SHA256 performs dedicated recovery only when the computed chain head matches exactly. Review the remote trust boundary before using either option.