Tag and search
Portable v2 tags are mutable metadata outside the artifact digest. The tine tag command re-saves the file, removes any attached signature, and warns; re-sign when the tagged file must remain authenticated.
tine tag result.tine --add prod --add regression
tine tag result.tine --remove regression
tine tag result.tine --list
tine search "tag:prod model:claude cost:>0.05"
tine ls --status failed --since 2026-06-01 --cost-min 0.01
# Rebuild .tine_runs/index.json from artifacts
tine repo storage reindexFilters
Action queries add who, actions, touched, and audit. Search also supports harness/provider predicates and tool-argument text, with full-file fallback when indexed text is truncated.
tine ls and the search DSL support tag, model, exact status, minimum or maximum cost, date bounds, and text matching. tine ls also accepts --limit.
Machine-readable search
tine search "tag:prod model:claude" --jsonIntroduced in v0.5, tine search --json emits exactly one object containing command, the joined query, count, and matching runs. A tag listing also supports tine tag result.tine --list --json; mutating --add and --remove operations refuse JSON mode. tine repo storage reindex does not accept --json.
Rebuildable index
.tine_runs/index.json is a sidecar for fast lookup, not the source of truth. tine repo storage reindex reconstructs it from .tine artifacts in that directory.
The index examples above target portable files. In a discovered repository, plain tag uses repository behavior unless a file path or legacy ID selects file mode; --legacy forces that mode. search --repo queries repository history. See repository dispatch.