Destaris
Browse the docs

Visual ↔ YAML

The canvas and the file are two views of one workflow.

A Destaris workflow is portable YAML. The visual canvas is for building it; the YAML is what actually runs. They're two views of the same thing, and you can switch between them at any time from the toolbar.

Why portable YAML

Because a workflow is plain text, it's:

  • Version-controllable — commit it, review changes in a pull request, diff it like any other code.
  • Auditable — every step is explicit. There's no hidden state and no black box.
  • Portable — the format is the open engine's own. Your automations aren't rows in someone's database; they're files you own.

The shape of the file

A workflow has a name, a list of nodes, and a list of edges connecting them:

name: triage-and-notify

nodes:
  - id: schedule
    type: trigger.cron
    config: { cron: "*/15 * * * *" }

  - id: fetchIssues
    type: task.http
    config:
      url: "https://api.example.com/issues?state=open"

  - id: triage
    type: agent.run
    config:
      prompt: "Decide the priority of the newest issue."

  - id: route
    type: task.branch
    config: { expression: "triage.priority" }

edges:
  - { from: schedule, to: fetchIssues }
  - { from: fetchIssues, to: triage }
  - { from: triage, to: route }

Each node has an id, a type (from the node reference), and a config. Edges wire from one node to another, optionally when a branch takes a particular path.

Switching views

In the editor toolbar, toggle Visual ↔ YAML. Edits in either view describe the same workflow — build visually when that's faster, drop into YAML when you want precise control or to copy a workflow between machines.