New User

Tine - Branching notebook runtime for AI and you, written in Rust

by
Tine is an open source, branching notebook runtime built in Rust. Jupyter notebooks break down during non linear exploration: hidden state, out-of-order execution, silent namespace corruption. Tine replaces the linear file with a DAG. Fork your execution against a single shared kernel. With native MCP support, AI agents can safely explore parallel paths without corrupting your work. No more model_v2_final.ipynb.

Add a comment

Replies

Best
New User
Maker
📌
Notebooks changed how we do data science. But there is one thing they were never designed for: nonlinear experimentation. You are halfway through an analysis and a question pops up: "does this hold if I log transform the target?" or "what happens with XGBoost instead of linear regression?" Simple, natural questions. But exploring them means either running cells out of order and silently corrupting your variables, or copying the whole notebook and managing two diverging files. And there is a deeper issue. Every data scientist has lived this: you rerun a notebook top to bottom, something breaks, and you burn 20 minutes hunting down a stale variable from three experiments ago. That is hidden state, and there is no built in mechanism to prevent it. Now throw an AI into that environment. Copilot, Claude Code, Cursor. They are running cells and injecting variables right alongside you. The hidden state problem compounds. Suddenly you are staring at a namespace that neither you nor the agent fully owns. Tine is a branching notebook runtime, written in Rust, where your execution state lives in a tree. Every tree shares a single context, so when you want to explore that XGBoost idea, you fork without duplicating your environment. A Rust scheduler tracks cell lineage across branches so no fork can poison another. What this actually looks like: You have cleaned your data and built features. Try three different models side by side without touching your prep work. Your agent wants to test a hypothesis. It gets its own branch. If it is a dead end, your notebook does not know and does not care. You spot something weird in a subset. Branch off, investigate, and come back to your main analysis exactly where you left it. https://tine.sh/ Open source, Apache 2.0