Browse documentation
Docs target stable release v0.9.1.Stable vs main checked 2026-10-09

Current release · v0.9.1 · beta

Introduction

opentine is a local-first provenance layer for agent runs. Portable.tine v2 files retain the existing Agent, Run, replay, signing, and cost workflow. A .tine/ repository adds verified v3 objects, refs, reflogs, attestations, packs, and synchronization.

Both surfaces preserve execution provenance. You can verify integrity, inspect lineage, fork a known prefix, reuse recorded steps, compare branches semantically, and retain the model, tool, usage, billing, and evaluation context behind a run.

Release status: v0.9.1 is the current GitHub and PyPI release. Signed attestations and scoped verification gates are available in this security release. Review the release-status guide.

Install

Terminal
pip install opentine==0.9.1

Create an artifact

quickstart.py
1from opentine import Agent
2from opentine.models.anthropic import Anthropic
3
4agent = Agent(model=Anthropic("claude-sonnet-5"))
5run = agent.run_sync("What is opentine?")
6run.save("result.tine")

Operate on it

Terminal
tine show result.tine
tine verify result.tine
tine fork result.tine --from-step 0 --save forked.tine
tine replay result.tine --mode cache --save replayed.tine
tine diff result.tine forked.tine

Core guarantees

  • Portable: a .tine v2 artifact remains a file you control.
  • Verifiable: verify file digests and signatures or deeply check every repository object, ref, and causal link.
  • Explicit replay: cache mode reuses recorded work; rerun mode requires a runtime or harness.
  • Fork-aware: new v0.4 portable forks record a distinct, verifiable fork-act identity by default.
  • Model-agnostic: v0.8 records provider, model, and usage as opaque provenance whether a run came from an adapter or OpenTelemetry.
  • Interoperable: import supported traces, export modern OpenTelemetry GenAI data, and use stable machine-readable output across the CLI.
  • Compatible: v0.9.1 reads portable v1 and v2 files and stored data written since v0.3.0.
  • Repository-shaped: v3 objects use typed SHA-256 IDs, immutable envelopes, refs, reflogs, and compare-and-swap updates.
  • Billing-aware: normalized usage carries explicit complete, partial, unknown, or unmetered status; post-hoc pricing never rewrites the run.

Next

Follow the quickstart, compare the portable file format with the repository model, or review the v0.9.1 upgrade guide and release-status guide.