Skip to content

YAML Reference

Complete YAML schema for Astonish flow files

Flow files are stored as YAML in ~/.config/astonish/flows/.

description: "What this flow does"
nodes:
- name: "step1"
type: "input"
prompt: "Enter your name"
output_model:
user_name: "string"
- name: "step2"
type: "llm"
prompt: "Greet {{user_name}}"
system: "You are a friendly assistant"
tools: true
- name: "step3"
type: "output"
value: "{{step2_output}}"
flow:
- from: "START"
to: "step1"
- from: "step1"
to: "step2"
- from: "step2"
to: "step3"
- from: "step3"
to: "END"
TypePurposeKey Fields
inputCollect user inputprompt, output_model, options
llmSend prompt to AI modelprompt, system, tools, tools_selection, tools_auto_approval
toolExecute a specific toolaction, args, raw_tool_output
outputDisplay resultsvalue
update_stateModify state variablesupdates
PropertyTypeDescription
namestringUnique node identifier
typestringNode type (see above)
promptstringPrompt text (supports {{variable}} interpolation)
systemstringSystem prompt for LLM nodes
toolsboolEnable tool use on LLM nodes
tools_selectionstring[]Restrict to specific tools
output_modelobjectDefine output variables (key: type pairs)
argsobjectTool arguments for tool nodes
continue_on_errorboolDon’t stop on failure
max_retriesintRetry count (default: 3)
retry_strategystringintelligent or simple
silentboolSuppress output
parallelobjectParallel execution: forEach, as, index_as, maxConcurrency
output_actionstringHow to aggregate parallel output (append)

Edges are defined in the flow section of the YAML.

PropertyTypeDescription
fromstringSource node name (or "START")
tostringTarget node name (or "END")
edgesarrayConditional edges: {to, condition}

Conditional edges use the condition field with expressions that reference state variables. See Nodes, Edges & State for examples.

Flows can declare MCP server dependencies that get auto-installed when the flow is run:

mcp_dependencies:
- server: "github"
tools: ["create_issue", "list_repos"]
source: "store"
store_id: "github-mcp"