Overview
| Type | Description | Primary Use |
|---|---|---|
bash | Execute shell commands | Run tools, file operations |
function | Run utility functions | Conditions, logging, file checks |
foreach | Iterate over file lines | Process lists |
parallel-steps | Run steps concurrently | Parallel tool execution |
remote-bash | Per-step Docker/SSH | Mixed environments |
http | Make HTTP requests | API calls, webhooks |
llm | AI-powered processing | Analysis, summarization |
fragment-step | Execute reusable fragment | Code reuse, DRY patterns |
bash
Execute shell commands.Basic Command
Multiple Commands (Sequential)
Parallel Commands
Structured Arguments
Save Output to File
function
Execute utility functions via Goja JavaScript VM.Single Function
Multiple Functions
Parallel Functions
Use in Conditions
foreach
Iterate over lines in a file with parallel execution using a worker pool.Basic Loop
With Nested Variables
Bounded Concurrency
The foreach executor uses a worker pool pattern:- Workers pull items from a shared queue
- Maximum
threadsitems processed concurrently - Memory-efficient: doesn’t spawn all goroutines upfront
- Graceful cancellation on context timeout
Fields
| Field | Required | Description |
|---|---|---|
input | Yes | Path to file with items (one per line) |
variable | Yes | Variable name for current item |
threads | No | Maximum concurrent iterations (default: 1) |
step | Yes | Step to execute for each item |
Variable Syntax
Use[[variable]] (double brackets) for loop variables to avoid conflicts with {{templates}}:
Nested Foreach
Foreach steps can contain other foreach steps:parallel-steps
Run multiple steps concurrently.remote-bash
Execute commands in Docker or SSH without module-level runner.Docker Execution
SSH Execution
Fields
| Field | Required | Description |
|---|---|---|
step_runner | Yes | docker or ssh |
step_runner_config | Yes | Runner configuration |
command | Yes | Command to execute |
step_remote_file | No | Remote file to copy back |
host_output_file | No | Local destination for remote file |
http
Make HTTP requests with automatic retries and connection pooling.Supported Methods
| Method | Description |
|---|---|
GET | Retrieve data (default) |
POST | Create/submit data |
PUT | Update/replace resource |
PATCH | Partial update |
DELETE | Remove resource |
GET Request
POST Request
PUT Request
PATCH Request
DELETE Request
Auto-Exported Variables
After HTTP step execution, variables are exported with the pattern<step_name>_http_resp:
HTTP Features
- Connection Pooling: Reuses connections for efficiency
- Automatic Retries: Retries on network errors and 5xx responses (up to 3 attempts)
- Timeout: Configurable via step
timeoutfield (default: 30s) - Template Support: Headers and request body support
{{variable}}interpolation
llm
AI-powered processing using LLM APIs (OpenAI-compatible).Chat Completion
Message Roles
| Role | Description |
|---|---|
system | System prompt defining behavior |
user | User input/question |
assistant | Model’s previous response |
tool | Tool/function call result |
With Tool Calling
Define tools the LLM can invoke (OpenAI-compatible function calling):{{step_name_llm_resp.tool_calls}}.
Embeddings
Generate vector embeddings for text:Multimodal Content (Vision)
Include images in messages:Structured Output (JSON Schema)
Force structured JSON responses:Configuration Override
Override global LLM settings per step:Auto-Exported Variables
After LLM step execution:Provider Rotation
If multiple LLM providers are configured, the executor automatically:- Rotates to next provider on rate limits or errors
- Retries up to
max_retries * provider_counttimes - Records rate limit metrics for monitoring
fragment-step
Execute a pre-defined fragment (reusable step collection) inline.Basic Usage
With Overrides
Fields
| Field | Required | Description |
|---|---|---|
fragment_name | Yes | Name of the included fragment to execute |
override | No | Map of step fields or template variables to override |
includes section with a matching fragment_name.
Common Step Fields
All steps support these fields:Field Reference
| Field | Description |
|---|---|
name | Required. Unique step identifier |
type | Required. Step type (bash, function, foreach, etc.) |
depends_on | Array of step names this step depends on (enables parallel execution) |
pre_condition | Expression to evaluate; step skipped if false |
timeout | Maximum execution time (default varies by step type) |
log | Path to write step output log |
exports | Map of variable names to values to export |
on_success | Actions to execute on successful completion |
on_error | Actions to execute on failure |
decision | Conditional routing based on variable values |
Next Steps
- Variables - Exports and propagation
- Control Flow - Conditions and routing
- Functions Reference - Available functions