Open Source
Git for
agent runs.
Record, verify, fork, replay, and diff portable agent run artifacts. Native agents plus scoped external CLI harnesses.
The problem
Your agent failed after
10 minutes. Now what?
No way to debug
Your agent ran 47 tool calls over 10 minutes. Something went wrong at step 23. You have a log file and a prayer.
No way to retry from step 7
The first 22 steps were fine. But you can't go back. You re-run the whole thing, burning tokens and time.
No way to share the failing state
Your teammate wants to reproduce it. You send them a screenshot of terminal output. They spend 30 minutes getting to the same failure.
The solution
Make every run a tree
you can navigate.
Every step content-addressed. Every branch forkable. Every run resumable on any machine.
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("claude-sonnet-4-20250514"), tools=[search, fetch])
7run = agent.run_sync("Research quantum error correction")
8run.save("research.tine")
Run Tree
The killer demo
Three commands.
Night and day.
Your agent failed. Fork from the last good step, edit the prompt, replay. Cached steps are free. The fix costs pennies.
Agent fails at step 8
Fork from step 5 with a new prompt
New branch succeeds in 3 steps
Universal
Any model. Same code.
No first-class model. No vendor lock-in. Every adapter implements the same protocol. Swap providers with a single line change.
# Swap models with one line. Same agent, same tools.
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("claude-sonnet-4-20250514"), tools=tools)
agent = Agent(model=OpenAI("gpt-4o"), tools=tools)
agent = Agent(model=Google("gemini-2.0-flash"), tools=tools)
agent = Agent(model=Ollama("llama3.1"), tools=tools)Lean
Focused primitives vs.
framework sprawl.
Most agent frameworks ship the kitchen sink. opentine ships the primitive. Build what you need on top.
| Framework | Install Size | LOC | Vendor Lock-in | Forkable Runs |
|---|---|---|---|---|
| LangChain | 166 MB | 405k | Mixed | No |
| LangGraph | 51 MB | 37k | Mixed | Partial |
| CrewAI | 173 MB | 18k | Yes | No |
| smolagents | 198 MB | 8k | No | No |
| opentine | <5 MB | Focused | No | Yes |
For teams
Built for production
agent infrastructure.
Audit-grade run trees
Every step is content-addressed and immutable. Reconstruct any decision your agent made, when it made it, and what it saw.
On-prem deployable
Zero external dependencies at runtime. No SaaS, no telemetry, no phone-home. Runs wherever Python runs.
No telemetry
We don't collect anything. No usage data, no error reporting, no analytics. Your runs are yours.
Apache 2.0
Use it, fork it, sell it, embed it. No CLA, no AGPL surprise, no relicensing risk. Permissive from day one.