Skip to content

Configuration Reference ​

flow reads four kinds of YAML file. Every one of them has a published JSON schema, so your editor can validate and autocomplete it as you type — see Editor setup below.

Flow File

A group of executables with shared metadata. This is the file you write most often — a workspace can hold as many as you like, anywhere in its tree.

*.flow·*.flow.yaml·*.flow.yml

Workspace

Marks a directory as a workspace and sets what applies across it: display name, tags, environment files, and which paths are searched for executables.

flow.yaml

Template

A form plus a flow file to render from it, with files to copy and executables to run before and after generating.

*.flow.tmpl

Config

Your machine-level settings: the current workspace and namespace, registered workspaces, theme, log mode, and timeouts.

~/.flow/config.yaml

Editor setup ​

Point a schema-aware editor at the published schema with a yaml-language-server comment on the first line, and you get completion, hover docs, and inline validation with no plugin beyond a YAML extension:

yaml
# yaml-language-server: $schema=https://flowexec.io/schemas/flowfile_schema.json

executables:
  - verb: run
    name: my-task
    exec:
      cmd: echo "Hello, world!"
FileSchema
*.flow, *.flow.yaml, *.flow.ymlflowfile_schema.json
flow.yamlworkspace_schema.json
*.flow.tmpltemplate_schema.json
config.yamlconfig_schema.json

Associating the file extensions ​

*.flow files are YAML, but editors do not know that from the extension alone. In VS Code:

json
// settings.json
{
  "files.associations": {
    "*.flow": "yaml",
    "*.flow.yaml": "yaml",
    "*.flow.yml": "yaml"
  }
}

Other editors need the equivalent mapping of *.flow, *.flow.yaml, and *.flow.yml to YAML.

TIP

flow schema validate checks files from the command line, so the same validation runs in CI without an editor. See flow schema.