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.
pip install opentine==0.7.0
tine --helpAll 38 commands
| Command | Purpose |
|---|---|
tine run | Execute a script, a bounded CLI harness, or a bundled model adapter. |
tine show | Inspect a portable artifact graph. |
tine verify | Verify a v2 artifact digest and optionally require a signature. |
tine sign | Sign a completed or failed v2 artifact. |
tine keygen | Generate an Ed25519 private/public keypair. |
tine migrate | Preview or apply a v1-to-v2 portable artifact migration. |
tine ls | List the legacy .tine_runs index with filters. |
tine search | Query the legacy run index. |
tine stats | Aggregate the legacy run index, optionally loading deep totals. |
tine tag | Add, remove, or list mutable v2 artifact tags. |
tine reindex | Rebuild .tine_runs/index.json. |
tine cost | Inspect normalized usage, billing, and budget state. |
tine import | Import a foreign trace into a v2 artifact, a v3 repository, or both. |
tine export | Export a portable run as OTLP/JSON or send it to an OTLP collector. |
tine fork | Fork a portable run at a step. |
tine replay | Reuse cached work or rerun through an explicit harness. |
tine diff | Compare portable artifacts field by field. |
tine resume | Mark a declared-resumable portable artifact running. |
tine pricing | Inspect and update signed pricing catalogs. |
tine init | Initialize a v3 .tine/ repository. |
tine fsck | Verify repository objects, refs, links, and event DAGs. |
tine repo-log | Show v3 event ancestry from a ref. |
tine repo-show | Inspect a v3 run and its normalized event history. |
tine context | Render a bounded causal slice for one repository event. |
tine repo-diff | Compare two repository runs semantically. |
tine repo-search | Search verified repository runs. |
tine repo-fork | Fork a repository run and move an explicit ref. |
tine repo-resume | Resume a repository run into an explicit ref. |
tine attest | Append an immutable provenance or approval claim. |
tine evaluate | Append named evaluation scores to a repository run. |
tine promote | Move a promotion ref under compare-and-swap rules. |
tine object | Inspect a verified v3 object. |
tine pack | Write a deterministic object pack. |
tine migrate-v3 | Import a v2 artifact into a v3 repository. |
tine fetch | Fetch and verify a remote pack. |
tine push | Upload missing objects and CAS-update a remote ref. |
tine clone | Clone a remote v3 repository, optionally shallow. |
tine serve | Run 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
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.