Dibbla Docs Get started Guides Workflows Changelog
Open Console
Reference · CLI

dibbla workflows

Build, version, and execute Dibbla workflows from the CLI — plus the supporting `nodes`, `edges`, `inputs`, `tools`, `revisions`, and `functions` sub-trees.

A Dibbla workflow is a directed graph of nodes (agents, functions, conditionals) wired together by edges. Each workflow has a definition, a set of inputs, optional API endpoints, and a revision history.

The CLI exposes the entire workflow surface as seven top-level command groups, all sharing the same global formatting flags:

CommandPurposeAlias
dibbla workflowsWorkflow CRUD, validation, execution, API docs.wf
dibbla nodesAdd or remove nodes in a workflow.
dibbla edgesConnect, list, or disconnect node ports.
dibbla inputsSet node input values.
dibbla toolsAttach or detach tools on agent nodes.
dibbla revisionsSnapshot and restore workflow versions.rev
dibbla functionsBrowse the registry of available functions.fn

Global flags

These apply to every command in this section:

FlagPurpose
-o, --output yaml|json|tableOutput format. Defaults vary by command.
-q, --quietMinimal output, suitable for scripting.
-v, --verboseLog raw HTTP requests and responses — useful when debugging.

dibbla workflows

list

List every workflow in the org.

$dibbla workflows list
NAME          LABEL             NODES  HAS_API
expense-flow  Expense Reporter  12     true
support-bot   Support Triage    8      false

get

Print the workflow definition. Use --revision <id> to fetch a specific snapshot.

$dibbla wf get expense-flow -o yaml > expense-flow.yaml
$dibbla wf get expense-flow --revision a71z
FlagPurpose
<name> (positional, required)Workflow name.
--revision <id>Fetch a specific revision. Default: HEAD.

create

Create a workflow from a YAML or JSON definition file.

FlagPurpose
-f, --file <path> (required)Workflow definition.
$dibbla wf create -f expense-flow.yaml
# stderr: confirmation line
Created workflow expense-flow (revision: HEAD)
# stdout: created workflow definition (yaml/json/table per --output)

update

Replace an existing workflow’s definition.

This does not create a revision. update, and every nodes / edges / inputs / tools mutation, overwrite HEAD in place — the response literally reports revision: HEAD. Only dibbla revisions create inserts a snapshot. If you want to be able to go back, take one first.

FlagPurpose
<name> (positional, required)Workflow to update.
-f, --file <path> (required)New definition.

delete

Delete a workflow and all its revisions.

FlagPurpose
<name> (positional, required)Workflow name.
--yesSkip the confirmation prompt.

validate

Validate a definition without saving it. Useful in CI before update.

FlagPurpose
-f, --file <path> (required)Definition to validate.
$dibbla wf validate -f expense-flow.yaml
# Prints the validation report — valid: true/false, node_count, edge_count
 
# In CI, test the payload. An invalid definition still exits 0:
$dibbla wf validate -f expense-flow.yaml -o json | jq -e '.valid'

execute

Execute a workflow, optionally targeting a specific API node.

FlagPurpose
<name> (positional, required)Workflow name.
--data <json>Inline JSON input data.
-F, --file <path>JSON input file. Capital F here — on execute, lowercase -f is --follow.
-f, --followStream the run’s events instead of returning immediately.
--asyncReturn as soon as the run is accepted.
--node <id>Target a specific API node.
$dibbla wf execute expense-flow --data '{"amount": 42}'
$dibbla wf execute expense-flow -F input.json --node api-submit

url

Print the URL of the workflow editor.

FlagPurpose
<name> (positional, required)Workflow name.
--revision <id>URL for a specific revision.

api-docs

Print readable API endpoint documentation, including HTTP method, URL, request and response schemas, and a curl example.

FlagPurpose
<name> (positional, required)Workflow name.
--revision <id>API docs for a specific revision.

dibbla nodes

add

Add a node to a workflow. The node definition can come from a file or be passed inline as JSON.

FlagPurpose
<workflow> (positional, required)Target workflow.
-f, --file <path>Node definition (YAML/JSON).
--inline <json>Inline JSON node definition.

One of --file or --inline is required.

$dibbla nodes add expense-flow -f nodes/classifier.yaml
$dibbla nodes add expense-flow \
  --inline '{"id":"sum","type":"function","function":"math.sum"}'

remove

Remove a node by ID.

FlagPurpose
<workflow> (positional, required)Workflow name.
<node_id> (positional, required)Node to remove.
--yesSkip the confirmation prompt.

dibbla edges

Edges connect a source node’s output port to a target node’s input port. The CLI specifies an edge as "<src.port -> tgt.port>".

add

FlagPurpose
<workflow> (positional, required)Workflow name.
"<src.port -> tgt.port>" (positional, required)Edge specification. Quote it — the arrow contains shell-special characters.
$dibbla edges add expense-flow "classifier.out -> sum.in"

remove

Same shape as add, removes instead.

list

FlagPurpose
<workflow> (positional, required)Workflow name.
$dibbla edges list expense-flow
EDGE
classifier.out -> sum.in
sum.out -> approver.amount
approver.approved -> notify.message

dibbla inputs

set

Set a single input value on a node.

FlagPurpose
<workflow> (positional, required)Workflow name.
<node> (positional, required)Node ID.
<input> (positional, required)Input name.
<value> (positional, always required)New value.
--nullStore null regardless of what <value> says. The argument is still required — pass "".
$dibbla inputs set expense-flow classifier model gpt-4o-mini
$dibbla inputs set expense-flow classifier system_prompt "" --null

dibbla tools

Attach or detach tools on agent nodes.

add

FlagPurpose
<workflow> <agent> <tool> (positional, all required)Workflow name, agent node ID, tool name.

remove

Same arguments as add, removes instead.

$dibbla tools add expense-flow classifier web_search
$dibbla tools remove expense-flow classifier web_search

dibbla revisions

Workflow snapshots — and they are explicit only. update, nodes, edges, inputs and tools all write straight to HEAD and leave no history behind them; the editor’s autosave does the same. dibbla revisions create is the only thing that takes a snapshot.

The practical consequence: if you want to be able to undo a change, snapshot before you make it. There is nothing to recover afterwards.

Revision ids are four base-36 characters (a71z), not a prefixed hash.

list

FlagPurpose
<workflow> (positional, required)Workflow name.
$dibbla rev list expense-flow
ID            TIMESTAMP             LABEL
k3f9  2026-04-28T14:02:11Z  Snapshot before tool swap
a71z  2026-04-22T11:18:38Z  Initial create

create

Create a snapshot of the current HEAD.

FlagPurpose
<workflow> (positional, required)Workflow name.

restore

Restore a previous revision to HEAD.

Nothing snapshots the current HEAD for you. The restore overwrites HEAD in place, and whatever was there is gone — there is no roll-forward. Take a revision first:

dibbla revisions create expense-flow      # snapshot what you are about to replace
dibbla revisions restore expense-flow <revision_id>
FlagPurpose
<workflow> <revision_id> (positional, both required)Workflow and revision to restore.
$dibbla rev restore expense-flow a71z
Restored revision a71z for expense-flow

dibbla functions

Browse the function registry — the catalog of pre-built functions that workflow nodes can call.

list

FlagPurpose
--server <id>Filter by server name.
--tag <tag>Filter by tag.
$dibbla fn list --tag math
NAME          SERVER  DESCRIPTION            TOOLS
math.sum      core    Sum a list of numbers
math.average  core    Arithmetic mean

get

Print the full definition of a function — schema, inputs, outputs, side effects.

FlagPurpose
<server> <name> (positional, both required)Server identifier and function name.
$dibbla fn get core math.sum -o yaml

See also

  • dibbla run — local task pipelines, separate from the workflow runtime.
  • dibbla deploy — deploy the app that hosts your workflow’s API endpoints.