Skip to Content
We are live but in Staging 🎉

Steps

The body of a .scriptum script is a sequence of steps. Every step starts with a verb (do, let, each, decide, check, together, pipe, repeat, wait, agent, ask, plan, run, emit, yield, send), and indentation — not braces — defines its body. Steps read top to bottom like a recipe, and each one binds its output with -> so later steps can reference it.

Each language construct compiles down to a single IR primitive. You will see these names in the YAML IR and in step records:

You writeIR primitive
do "X" with toolexecute
each x in listiterate
decide "Q"decide (or branch for rules)
check "C"evaluate
togetherparallel
pipe x from srcpipe
repeatrepeat
plan "X" with llmplan
run scriptrun
waitwait
ask "X"ask
agent "X" with llmagent
let name = exprlet
emitemit
yieldyield
send "X" via "ch"send

The steps are grouped into four pages:

Errors raised while a step runs are covered separately in Error Handling.