Back to blog
Apr 3, 2026Tool· 5 min read

osop diff: Git Diff for Process Execution

By OSOP Team

Git gave developers diff for code. OSOP gives teams diff for processes. The new osop diff command compares two execution logs — or two workflow definitions — and shows you exactly what changed, what got faster, what got more expensive, and what broke.

Every workflow execution in OSOP produces an .osoplog.yaml file — a structured record of what happened, how long each step took, what it cost, and whether it succeeded. These logs are designed to be diffed.

Two Runs, One Command

Suppose you have a deploy pipeline that ran twice — once on Monday, once on Tuesday. Here are the two execution logs:

run-v1.osoplog.yaml
osoplog_version: "1.0"
run_id: "abc-001"
workflow_id: "deploy-pipeline"
status: "COMPLETED"
started_at: "2026-04-01T10:00:00Z"
ended_at: "2026-04-01T10:04:32Z"
duration_ms: 272000

node_records:
  - node_id: "build"
    status: "COMPLETED"
    duration_ms: 45000
    outputs:
      artifact_size_mb: 12.4
  - node_id: "test"
    status: "COMPLETED"
    duration_ms: 120000
  - node_id: "deploy"
    status: "COMPLETED"
    duration_ms: 95000

cost:
  total_usd: 0.42

Tuesday's run was faster across the board. But by how much? Instead of eyeballing two YAML files, run a single command:

run-v2.osoplog.yaml
osoplog_version: "1.0"
run_id: "abc-002"
workflow_id: "deploy-pipeline"
status: "COMPLETED"
started_at: "2026-04-02T10:00:00Z"
ended_at: "2026-04-02T10:03:15Z"
duration_ms: 195000

node_records:
  - node_id: "build"
    status: "COMPLETED"
    duration_ms: 30000
    outputs:
      artifact_size_mb: 11.8
  - node_id: "test"
    status: "COMPLETED"
    duration_ms: 90000
  - node_id: "deploy"
    status: "COMPLETED"
    duration_ms: 65000

cost:
  total_usd: 0.31

The Diff Output

Running osop diff run-v1.osoplog.yaml run-v2.osoplog.yaml produces a structured comparison:

osop-diff-output.yaml
osop diff run-v1.osoplog.yaml run-v2.osoplog.yaml

DIFF deploy-pipeline  abc-001 vs abc-002
──────────────────────────────────────────────
Node         Duration        Cost       Status
──────────────────────────────────────────────
build        45s -> 30s      -          COMPLETED
             (-33.3%)
test         120s -> 90s     -          COMPLETED
             (-25.0%)
deploy       95s -> 65s      -          COMPLETED
             (-31.6%)
──────────────────────────────────────────────
TOTAL        272s -> 195s    $0.42 -> $0.31
             (-28.3%)        (-26.2%)

Why This Matters

Software teams have spent decades building tools to track code changes. But the processes that run that code — CI/CD pipelines, AI agent workflows, data pipelines — have no equivalent. osop diff fills that gap:

  • Performance regression detection — Spot when a step suddenly takes 3x longer before it becomes a production incident.
  • Cost tracking — See exactly which node drove your bill up, not just the total.
  • Debugging failures — Compare a passing run against a failing run to isolate the broken step.
  • Optimization validation — After tuning a workflow, prove the improvement with hard numbers.

Diffing Definitions, Not Just Executions

osop diff also works on .osop definition files. This lets you see structural changes to the workflow itself — added nodes, removed edges, changed modes:

definition-diff.yaml
osop diff v1.osop v2.osop

DIFF deploy-pipeline  v1.0.0 vs v1.1.0
──────────────────────────────────────────────
+ Node "cache" added (type: cli)
~ Edge "build -> test" changed mode:
    sequential -> parallel
~ Node "deploy" description changed:
    "Deploy to staging" -> "Deploy to production"
──────────────────────────────────────────────
3 changes (1 added, 0 removed, 2 modified)

Combined with execution diffs, you get the full picture: what changed in the design, and how that change affected real-world performance.

The Git of Workflows

Git tracks what your code looks like at every point in time. OSOP tracks what your processes do at every point in time. Together, they close the observability loop:

  • git diff tells you what code changed between two commits.
  • osop diff (definitions) tells you what workflow structure changed between two versions.
  • osop diff (logs) tells you what execution behavior changed between two runs.

Try it now: Install the OSOP CLI with pip install osop, run your workflow twice, and diff the results. Every process deserves version control.