Open Source
Git for
agent runs.
Record, verify, fork, replay, and diff portable agent run artifacts. Native agents plus scoped external CLI harnesses.
Shipped · v0.44.0
Transparency, search and verification.
Transparency logs and witnesses, a derived search index with MCP recall, and the TypeScript verifier GA are part of 0.44.0.
Portable .tine files default to v5 (since 0.42). --for-legacy writes v4. The .tine/ repository format is v3. tine evidence export writes v4.
683 conformance vectors, including 225 refusal cases, across 40 ops. Every reader and verifier vector passes in TypeScript with reason-code agreement. Four writer-side redaction ops are not answered.
The problem
Your agent failed after
10 minutes. Now what?
Inspect the failed step
Inspect recorded model calls, tool activity and errors together with their parent links.
Branch from recorded history
Fork a retained prefix. Cache replay reuses recorded steps; rerunning requires the matching runtime and capture support.
Share recorded evidence
Export a portable artifact so another person can inspect and verify its recorded content offline.
The solution
Make every run a tree
you can navigate.
Every step content-addressed. Every branch forkable. Resume where the capture and runtime support it.
1from opentine import Agent
2from opentine.models.anthropic import Anthropic
3from opentine.tools.search import search
4from opentine.tools.web import fetch
5
6agent = Agent(model=Anthropic("YOUR_MODEL_ID"), tools=[search, fetch])
7run = agent.run_sync("Research quantum error correction")
8run.save("research.tine")
Run Tree
Illustrative fidelity vocabulary, not a result from this diagram. Exact means cached content; recomputed-match means matching harness reruns. The weakest step sets the run label.
Illustrative views · not a live execution trace
A recorded fork
Three commands.
Inspect the difference.
The pinned forked_debug.py example constructs a failed run and a fork. These commands inspect its saved artifacts; they do not execute an agent or promise a successful fix.
Inspect the recorded failure
Inspect the fork made by the example
Compare recorded steps and lineage
Universal
Choose the model you run.
The provenance core is model-agnostic. Optional adapters capture supported provider calls; model access, credentials and capture fidelity depend on the runtime.
# Configure a supported model and its credentials.
from opentine import Agent
from opentine.models.anthropic import Anthropic
from opentine.models.openai import OpenAI
from opentine.models.google import Google
from opentine.models.ollama import Ollama
agent = Agent(model=Anthropic("YOUR_MODEL_ID"), tools=tools)
agent = Agent(model=OpenAI("YOUR_MODEL_ID"), tools=tools)
agent = Agent(model=Google("YOUR_MODEL_ID"), tools=tools)
agent = Agent(model=Ollama("YOUR_LOCAL_MODEL"), tools=tools)Where OpenTine fits
Keep a verifiable record.
Capture agent work, preserve its run graph, and verify the recorded evidence offline. The planned web product brings that evidence beside your code forge.
Read the dated, sourced tool surveyFree for everyone
Accountability belongs to everyone.
The tools to track, audit, manage and hold agents accountable should be in the hands of everyone running AI.
The planned opentine-web hosted product will be free for public and private projects. No tiers or paywalls. Self-host will be the identical app, also free. Sponsorship, grants, donations and optional paid support fund the work, with published fair-use limits.
Hosted features are coming. Read the roadmap.
How this is funded