FlowDSL
Studio
Tools

CLI Tools

Command-line tools for validating, formatting, and working with FlowDSL documents.

The FlowDSL CLI provides command-line tools for validating, formatting, converting, and deploying FlowDSL documents.

Installation

shell
npm install -g @flowdsl/cli
# or
brew install flowdsl/tap/flowdsl

Verify:

shell
flowdsl --version
# flowdsl/1.0.0 darwin-arm64 node-v20.0.0

Commands

flowdsl validate

Validates a FlowDSL document against the JSON Schema and semantic rules.

shell
flowdsl validate my-flow.flowdsl.yaml
flowdsl validate my-flow.flowdsl.json

# Validate all flows in a directory
flowdsl validate flows/

# Exit code: 0 = valid, 1 = invalid

Output:

text
✓ my-flow.flowdsl.yaml is valid

# or on error:
✗ my-flow.flowdsl.yaml has 2 errors

  Error 1: /nodes/OrderReceived/operationId
    operationId "receiveOrder" must be snake_case. Try "receive_order".

  Error 2: /edges/1/delivery/packet
    Packet "InvalidPacketName" is not defined in components.packets

flowdsl convert

Convert between YAML and JSON formats.

shell
# YAML → JSON
flowdsl convert my-flow.flowdsl.yaml --output my-flow.flowdsl.json

# JSON → YAML
flowdsl convert my-flow.flowdsl.json --output my-flow.flowdsl.yaml

# Output to stdout
flowdsl convert my-flow.flowdsl.yaml --format json

flowdsl format

Format a FlowDSL YAML document with consistent indentation and field ordering.

shell
flowdsl format my-flow.flowdsl.yaml           # Format in place
flowdsl format my-flow.flowdsl.yaml --check   # Check without modifying (CI use)

flowdsl generate

Generate code or documentation from a FlowDSL document.

shell
# Generate Go node stubs
flowdsl generate go --output ./nodes/ my-flow.flowdsl.yaml

# Generate Python node stubs
flowdsl generate python --output ./nodes/ my-flow.flowdsl.yaml

# Generate markdown documentation
flowdsl generate docs --output ./docs/ my-flow.flowdsl.yaml

flowdsl auth

Authenticate with repo.flowdsl.com.

shell
flowdsl auth login
flowdsl auth status
flowdsl auth logout

flowdsl publish

Publish a node to the registry (requires authentication).

shell
flowdsl publish --manifest flowdsl-node.json
flowdsl publish --manifest flowdsl-node.json --tag beta

Configuration

Create a .flowdslrc file in your project root:

yaml
schemaUrl: https://flowdsl.com/schemas/v1/flowdsl.schema.json
registryUrl: https://repo.flowdsl.com
validateOnSave: true
format:
  indent: 2
  sortKeys: true

CI integration

yaml
# GitHub Actions
- name: Validate FlowDSL flows
  run: |
    npm install -g @flowdsl/cli
    flowdsl validate flows/

Next steps

  • Studio — visual editor for FlowDSL
  • Go SDK — implement nodes in Go
Copyright © 2026