# offshoot > Branch SQLite like git: create, fork, checkpoint, rollback, promote — copy-on-write forks of stock SQLite files, on a local directory or an S3-compatible bucket, with one binary. Built for AI agents, eval harnesses, and test suites that need a real, disposable database per attempt. Docs site: https://sricola.github.io/offshoot/docs/ — every page below links its canonical markdown source. The full corpus in one file: https://sricola.github.io/offshoot/llms-full.txt ## Getting started - [Introduction](https://raw.githubusercontent.com/sricola/offshoot/main/docs/introduction.md): offshoot branches SQLite the way git branches code: create, fork, checkpoint, rollback, promote — as stock SQLite files, over a local directory… - [Installation](https://raw.githubusercontent.com/sricola/offshoot/main/docs/installation.md): One binary, no server required. Linux and macOS; requires Go 1.26+ and cgo only if you build from source, and the sqlite3 CLI only for running the test suite… - [Quickstart](https://raw.githubusercontent.com/sricola/offshoot/main/docs/quickstart.md): Five minutes, no server, no bucket: seed a database, fork it, trash the fork, prove the original never noticed, and undo the damage. You need an installed… - [Core concepts](https://raw.githubusercontent.com/sricola/offshoot/main/docs/concepts.md): The vocabulary offshoot's commands, docs, and error messages all share — each term defined once, with the model it belongs to. The deeper design document… ## Guides - [Agents & MCP](https://raw.githubusercontent.com/sricola/offshoot/main/docs/agents.md): Fork-per-attempt is the workload offshoot is built around: give each agent attempt its own real database — a copy-on-write fork, not a mock, not a re-seed… - [Eval harness tutorial](https://raw.githubusercontent.com/sricola/offshoot/main/docs/eval-harness.md): This is the paved road for the workload offshoot was actually built around: an agent (or a candidate model, or a migration script) runs against a private copy… - [CI recipes](https://raw.githubusercontent.com/sricola/offshoot/main/docs/ci-recipes.md): The eval-harness workload lives in CI: seed a database once, run N attempts in parallel — each against its own disposable fork — and promote the one that… - [Framework recipes](https://raw.githubusercontent.com/sricola/offshoot/main/docs/recipes/frameworks.md): offshoot doesn't ship a LlamaIndex or CrewAI package, and this page isn't one in disguise. Per the roadmap's stance, LangGraph gets two real integration… - [Eval harnesses](https://raw.githubusercontent.com/sricola/offshoot/main/docs/recipes/eval-harnesses.md): Every eval harness that grades an agent against a stateful environment needs the same primitive: an identical, private copy of that environment per attempt, so… - [Claude Agent SDK](https://raw.githubusercontent.com/sricola/offshoot/main/docs/recipes/claude-agent-sdk.md): Two pieces: getting offshoot into an agent's tool surface (MCP), and wiring its branch lifecycle to session events (hooks) so a fork happens automatically at… - [OpenAI Agents SDK](https://raw.githubusercontent.com/sricola/offshoot/main/docs/recipes/openai-agents.md): The OpenAI Agents SDK's SQLiteSession persists a conversation's turns to a plain SQLite file — SQLiteSession(session_id, db_path). That's the whole… - [Kubernetes sidecar](https://raw.githubusercontent.com/sricola/offshoot/main/docs/recipes/kubernetes.md): Scope check first: this is a recipe for running ONE offshoot serve process per pod, as a sidecar next to your agent container — not a clustering story… - [Branch diff](https://raw.githubusercontent.com/sricola/offshoot/main/docs/diff.md): offshoot doesn't merge branches — see the FAQ's Why no merge? for the stance and why. What it does give you is a fast way to see WHAT changed between two… - [Python SDK](https://raw.githubusercontent.com/sricola/offshoot/main/sdk/python/README.md): Python client for offshoot: git-like branching for SQLite databases, built for agent workloads (fork a DB per attempt, checkpoint on success, roll back on… - [TypeScript SDK](https://raw.githubusercontent.com/sricola/offshoot/main/sdk/typescript/README.md): TypeScript client for offshoot: git-like branching for SQLite databases, built for agent workloads (fork a DB per attempt, checkpoint on success, roll back on… - [LangGraph adapter](https://raw.githubusercontent.com/sricola/offshoot/main/sdk/python-langgraph/README.md): Offshoot-backed checkpointing for LangGraph, with branching semantics: each LangGraph thread's state lives in an offshoot-managed SQLite database, so a thread… ## Architecture - [Architecture](https://raw.githubusercontent.com/sricola/offshoot/main/docs/architecture.md): This is offshoot's design document, edited for contributors and adopters rather than for the internal review it was originally written for. It describe… - [How it's tested](https://raw.githubusercontent.com/sricola/offshoot/main/docs/testing.md): offshoot's pitch leans on a durability claim, so this page shows the work: what the torture harness actually does and its real numbers, the fencing model that… - [Benchmarks](https://raw.githubusercontent.com/sricola/offshoot/main/docs/benchmarks.md): Measured numbers for the claim the copy-on-write fork actually makes: forking is storage-O(1) — a shared fork writes two tiny objects (the child lineage… - [Stability contract](https://raw.githubusercontent.com/sricola/offshoot/main/docs/stability.md): offshoot is pre-1.0, and the CHANGELOG says so bluntly: the on-disk/on-bucket storage format (refs, checkpoints, segments, leases) may change in… ## Operations - [Operations](https://raw.githubusercontent.com/sricola/offshoot/main/docs/operations.md): offshoot is operable, not orchestrated. Everything on this page — metrics, HTTP, events, budgets — describes ONE daemon process on ONE host, watching over… ## Reference - [CLI & API reference](https://raw.githubusercontent.com/sricola/offshoot/main/docs/reference.md): Every command below is verified against cmd/offshoot/main.go's usage strings and command dispatch — flags, arities, and defaults are taken from the code, not… - [Status: shipped & deferred](https://raw.githubusercontent.com/sricola/offshoot/main/docs/status.md): offshoot's original design describes a v1 scope larger than what's shipped so far. This page is the honest accounting: what's tested in anger, what's built but… - [FAQ: why not X?](https://raw.githubusercontent.com/sricola/offshoot/main/docs/faq.md): offshoot occupies a specific spot: a self-hosted, single-binary tool that branches stock SQLite files over your own object storage, for the server-side… - [Limitations](https://raw.githubusercontent.com/sricola/offshoot/main/docs/limitations.md): What offshoot doesn't do, where the edges are, and what to do about each. Everything here is stated plainly because the guarantees elsewhere in these docs are… ## Project - [Changelog](https://raw.githubusercontent.com/sricola/offshoot/main/CHANGELOG.md): All notable changes to this project are documented in this file. - [Contributing](https://raw.githubusercontent.com/sricola/offshoot/main/CONTRIBUTING.md): offshoot is at 0.x, single-maintainer, and moving fast. That means: ask before investing a lot of time in something structural (see "what needs an issue first"… - [Security](https://raw.githubusercontent.com/sricola/offshoot/main/SECURITY.md): offshoot is at 0.x. There is no long-term support branch and no backport policy yet — the only supported version is the latest commit on main. If you're… - [Roadmap](https://raw.githubusercontent.com/sricola/offshoot/main/ROADMAP.md): This is the working roadmap from here to a public launch and a 1.0-worthy tool. It came out of a deliberate gap analysis from two chairs — a staff AI…