Introduction

What Dippin is and why it exists.

What is Dippin

Dippin is a DSL and toolchain for authoring AI pipeline workflows. It replaces Graphviz DOT as the authoring format consumed by a downstream pipeline runtime.

You write workflows as .dip files — multi-model agent workflows with first-class syntax for prompts, tools, conditions, and parallel execution. Instead of packing everything into escaped DOT strings, you get real code:

workflow CodeReview
  goal: "Plan, implement, and review"
  start: Planner
  exit: Done

  agent Planner
    model: claude-opus-4-6
    prompt:
      You are a senior architect.
      Analyze the request and
      produce an implementation plan.

  agent Coder
    model: claude-sonnet-4-6
    prompt:
      Implement the plan.
      Use best practices.

  agent Review
    auto_status: true
    prompt:
      Review the code.
      Set STATUS: success or fail.

  agent Done
    prompt: Ship it.

  edges
    Planner -> Coder
    Coder -> Review
    Review -> Done  when ctx.outcome = success
    Review -> Coder  when ctx.outcome = fail  restart: true

Why not just DOT

Graphviz DOT is great for graph visualization. But authoring AI pipelines with multi-line prompts, typed nodes, and conditional edges? It falls apart.

Dippin is built around the things that matter when authoring pipelines — not string attributes on a graph node:

  • Multi-line prompts — indented blocks with zero escaping. Write real prompts, preserve blank lines, embed variables like ${ctx.input}.
  • Typed node kindsagent, tool, human, conditional, parallel, fan_in, subgraph. Each with typed, validated config fields.
  • Diagnostics — structural validation and semantic lint. Dead edges, unreachable nodes, missing prompts, invalid models. Things DOT silently ignores.
  • Parallel execution — native parallel fan-out and fan_in join with per-branch model overrides. Multi-provider consensus in a few lines.
  • Conditional edges — route pipelines based on LLM output with the when keyword.

DOT wasn’t built for any of this. Dippin was.

The Toolchain at a Glance

Dippin is more than a syntax — it’s a full toolchain that lets you catch problems before runtime. Every command works offline against the workflow source, without deploying or calling any LLMs.

Author
.dip files
Validate
structural checks
Lint
semantic diagnostics
Test
scenario runs
Analyze
cost, coverage, doctor
Export
Mermaid, DOT
  • Author — write .dip files, or scaffold one with dippin new.
  • Validate & Lint — 71 diagnostic rules (DIP001-DIP010 structural, DIP101-DIP161 semantic) catch dead edges, unreachable nodes, missing prompts, and invalid models. See the CLI Reference.
  • Testdippin test injects context, simulates every conditional branch, and checks assertions, with CI-ready output. See Testing.
  • Analyzedippin cost, dippin coverage, and dippin doctor estimate spend, check reachability, and grade a workflow A–F. See Analysis.
  • Export — turn a workflow into a live diagram with export-mermaid or export-dot. See Export & Visualization.

Next Steps

Language Reference

The full syntax for .dip files — file structure, nodes, edges, conditions, multiline prompts, and stylesheets.

Nodes

The typed node kinds — agent, tool, human, conditional, parallel, fan_in, subgraph — and their fields.

Playground

Write and validate .dip workflows in the browser, with live Mermaid diagrams rendered as you type.