tine diff

Compare two runs side-by-side to see exactly where they diverge. This is especially useful after forking a run to understand how the new branch differs from the original.

Usage

Terminal
tine diff <run_a> <run_b>

Arguments

  • <run_a> — The first run to compare. Accepts a run ID prefix or a .tine file path.
  • <run_b> — The second run to compare. Accepts a run ID prefix or a .tine file path.

Example

Terminal
# Compare two runs by ID prefix
tine diff a3f8c1d2 b7e2f4a1

# Compare two .tine files directly
tine diff ./original.tine ./forked.tine

Example output:

Terminal
Comparing run_a3f8c1d2 vs run_b7e2f4a1

  #   run_a3f8c1d2                          run_b7e2f4a1                          Match
 ──   ──────────────────────────────────    ──────────────────────────────────    ─────
  0   [think] Planning research approach    [think] Planning research approach      =
  1   [tool]  search("solid-state ba...")   [tool]  search("solid-state ba...")     =
  2   [model] Analyzing 8 search results    [model] Analyzing 8 search results     =
  3   [tool]  fetch("https://exampl...")    [tool]  fetch("https://exampl...")      =
  4   [tool]  fetch("https://exampl...")    [tool]  fetch("https://exampl...")      =
  5   [model] Cross-referencing sources     [model] Trying alternative sources      ~
  6   [think] Evaluating conflicting...     [tool]  search("battery compari...")    !=
  7   [model] Synthesizing findings         [model] Comparing new findings          !=
  8   [tool]  fetch("https://exampl...")    [model] Building final analysis         !=
  9   [model] Final synthesis               [tool]  write("battery_v2.md")          !=
 10   [tool]  write("battery_report.md")    [done]  Report written                  !=
 11   [done]  Report written                ·                                       ·

Summary: 5 matching, 1 similar, 5 divergent

Match Indicators

The rightmost column shows how each pair of steps compares:

  • = — The steps are identical (same content-addressed ID). This means both runs executed the exact same step.
  • ~ — The steps have the same kind but different content. The agent took a similar type of action but with different inputs or outputs.
  • != — The steps are completely different. The runs have diverged at this point.
  • · — One run has a step at this index but the other does not. This appears when runs have different lengths.

Use Cases

  • Fork comparison: After forking from a step and resuming with a different approach, use tine diff to see exactly how the forked run diverged from the original.
  • Cross-model testing: Run the same prompt with different models and diff the results to compare their decision-making patterns.
  • Regression checking:Compare a new agent version's run against a known-good baseline to verify that behavior hasn't regressed.