Current release · v0.7.0 · 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.7.0 is the current GitHub and PyPI release. v0.7.1 is under review and has no published package or storage-format change. Track that boundary in the release-status guide.
Install
Terminal
pip install opentine==0.7.0Create 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.tineCore guarantees
- Portable: a
.tinev2 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.
- Interoperable: v0.7 imports supported traces, exports modern OpenTelemetry GenAI data from the CLI, and provides stable machine-readable output across the command surface.
- Compatible: v0.7 reads portable v1 and v2 files and stored data written by releases 0.3 through 0.6.
- 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.
Next
Follow the quickstart, compare the portable file format with the repository model, or review the v0.7 upgrade guide and release-status guide.