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 kinds — agent, 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 — 75 diagnostic rules (DIP001-DIP010 structural, DIP101-DIP165 semantic) catch dead edges, unreachable nodes, missing prompts, and invalid models. See the CLI Reference.
  • Test — dippin test injects context, simulates every conditional branch, and checks assertions, with CI-ready output. See Testing.
  • Analyze — dippin 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.