Docs target current release v0.7.0.v0.7.1 is under review

CLI overview

Installing opentine provides the tine command. Version 0.7.0 ships 38 top-level commands across portable artifacts, interoperability, pricing, repositories, and remotes. The tagged release pins this count to the actual parser with a meta-test.

Terminal
pip install opentine==0.7.0
tine --help

All 38 commands

CommandPurpose
tine runExecute a script, a bounded CLI harness, or a bundled model adapter.
tine showInspect a portable artifact graph.
tine verifyVerify a v2 artifact digest and optionally require a signature.
tine signSign a completed or failed v2 artifact.
tine keygenGenerate an Ed25519 private/public keypair.
tine migratePreview or apply a v1-to-v2 portable artifact migration.
tine lsList the legacy .tine_runs index with filters.
tine searchQuery the legacy run index.
tine statsAggregate the legacy run index, optionally loading deep totals.
tine tagAdd, remove, or list mutable v2 artifact tags.
tine reindexRebuild .tine_runs/index.json.
tine costInspect normalized usage, billing, and budget state.
tine importImport a foreign trace into a v2 artifact, a v3 repository, or both.
tine exportExport a portable run as OTLP/JSON or send it to an OTLP collector.
tine forkFork a portable run at a step.
tine replayReuse cached work or rerun through an explicit harness.
tine diffCompare portable artifacts field by field.
tine resumeMark a declared-resumable portable artifact running.
tine pricingInspect and update signed pricing catalogs.
tine initInitialize a v3 .tine/ repository.
tine fsckVerify repository objects, refs, links, and event DAGs.
tine repo-logShow v3 event ancestry from a ref.
tine repo-showInspect a v3 run and its normalized event history.
tine contextRender a bounded causal slice for one repository event.
tine repo-diffCompare two repository runs semantically.
tine repo-searchSearch verified repository runs.
tine repo-forkFork a repository run and move an explicit ref.
tine repo-resumeResume a repository run into an explicit ref.
tine attestAppend an immutable provenance or approval claim.
tine evaluateAppend named evaluation scores to a repository run.
tine promoteMove a promotion ref under compare-and-swap rules.
tine objectInspect a verified v3 object.
tine packWrite a deterministic object pack.
tine migrate-v3Import a v2 artifact into a v3 repository.
tine fetchFetch and verify a remote pack.
tine pushUpload missing objects and CAS-update a remote ref.
tine cloneClone a remote v3 repository, optionally shallow.
tine serveRun the bounded self-hosted reference remote.

Know which store you are using

Portable commands operate on .tine v2 files. ls, search, tag, and reindex use the legacy .tine_runs/ file index. Repository commands operate on a separate .tine/ v3 object store. import can write either representation, but it does not make their formats interchangeable.

Machine-readable commands

Terminal
tine show result.tine --json
tine verify result.tine --json
tine ls --json
tine search "tag:prod" --json
tine stats --group-by model --json
tine cost result.tine --json
tine replay result.tine --verify --json
tine diff before.tine after.tine --json --exit-code
tine import trace.json --format otel-json --save result.tine --json
tine tag result.tine --list --json
tine pricing list --json
tine pricing show openai gpt-5.6 --json
tine pricing check --json
tine pricing update ./catalog.json --json
tine repo-log heads/main --repo . --json
tine repo-show heads/main --repo . --json
tine repo-diff heads/main experiments/retry --repo . --json --exit-code

--json replaces human rendering with exactly one documented object on standard output. A tag listing accepts JSON; a mutating tag --add or --remove refuses it. tine export needs no separate flag because its output is the OTLP/JSON document itself.

fsck, object, migrate-v3, fetch, and push are machine reports with no alternate human rendering. They always emit their established bare-JSON payloads and deliberately do not accept --json.

A failure that prevents a command from producing a result remains human-readable and exits nonzero. A failed verification still emits an object with "ok": false and exits 1. A recorded budget breach still emits an object with "over_budget": true and exits 1. Automation must check both the JSON result and process status.

Use tine <command> --help for the authoritative flags installed with your exact build.