Components
The Awee workflow engine. Portable, human- and LLM-readable automations wired with template expressions and run anywhere.
The Awee engine runs automation workflows. A workflow is a portable, declarative definition, an ordered list of steps where each step runs one component and every output flows to the steps that come after it through sintax template expressions. The same definition reads clearly to people and to language models, runs the same on any operating system, and is launched from a command-line app, a REST API, or the web app.
It is the engine behind Awee, the automation platform. The core runtime, control flow, and the file, HTTP, inference, and control components are built in. The App components connect a workflow straight to the Awee data platform.
Tip
New here? Start with Workflow anatomy and the guides beside it in the sidebar for a tour of the whole engine, the workflow format, templates, control flow, inference, execution plans, cost accounting, and modular composition. This page is the component reference, one page per step with its full options and outputs.
Awee pairs a static, inspectable execution plan with model-powered steps, per-run cost accounting, and multi-currency reporting, so an automation stays auditable even when a model is in the loop.
How it works
An ordered list of steps, readable by people and models alike.
Compiles the definition into a static plan with immutable, hierarchical step IDs. No I/O, no side effects.
Runs each step in order, and each step's result feeds every later step.
- Define a workflow. List the actions, pick a component for each, and wire outputs with sintax
{{ step.field }}expressions. - Plan. The engine compiles the definition into an
ExecutionPlanwith no I/O and no side effects. - Execute. Steps run in order, and conditions, loops, retries, and cache hits all resolve at runtime.
A first workflow
id: search-and-summarise
name: Search and Summarise
actions:
- name: page
component: http
vars:
url: "https://example.com/{{ topic | slug }}"
- name: summary
component: inference
vars:
provider: anthropic
model: claude-opus-4-20250514
prompt: "Summarise in three bullet points: {{ page.body }}"
cache:
for: 1h
- name: write
component: file:write
vars:
path: "./out/{{ topic | slug }}.md"
content: "{{ summary.content }}"Every field accepts {{ }} expressions. A prior step's output is referenced by its name, so {{ page.body }} reads the page step's body. Modifier chains such as {{ topic | slug | lower }} transform values inline, and {{ value | default:'x' }} supplies a fallback.
Control flow
Any step can carry an if condition, a retry policy, or a cache duration, and looping is the each component wrapping its body under actions. Conditions choose between a step and its else branch, loops run their child steps once per item, and a cache hit skips the step and injects the stored value. The control flow guide covers all of it.
Components
Each component links to its own page with its full options and outputs.
App
Tip
These components connect a workflow to the Awee data platform, turning schemas, tables, and records into steps.
Manage schemas, tables, fields, and records in the Awee app platform.
| Name | Description |
|---|---|
app:field | Retrieves the definition of a single field within a table |
app:field:create | Adds a new field to a table and applies the migration |
app:field:delete | Removes a field from a table and applies the migration |
app:field:update | Replaces the definition of an existing field within a table |
app:fields | Lists all fields defined within a table |
app:file:save | Inserts a file record, uploads the blob, and stamps the resulting key back onto the record. Errors mid-flight leave the record in place with an empty Field, which is intentional so the row still shows up in audit and list views and operators can inspect the failure |
app:record | Retrieves a single record by ID from the given schema table |
app:record:delete | Soft-deletes a record by setting its deleted_at timestamp |
app:record:history | Retrieves the immutable audit log for a record, ordered oldest first |
app:record:insert | Inserts a new record into a schema table and returns the persisted record |
app:record:update | Applies a full replacement patch to an existing record and returns the updated record |
app:records:query | Queries records from a schema table using filters, sorting and pagination |
app:schema | Retrieves a single schema by ID for the given organization |
app:schema:create | Provisions a new database and applies the initial schema definition |
app:schema:create:many | Provisions multiple databases and applies their initial schema definitions |
app:schema:delete | Drops the database for the given schema ID |
app:schema:update | Replaces the metadata of an existing schema |
app:schemas | Lists all schemas belonging to an organization |
app:table | Retrieves the definition of a single table within a schema |
app:table:create | Adds a new table to a schema and applies the migration |
app:table:delete | Removes a table from a schema and applies the migration |
app:table:update | Replaces the definition of an existing table within a schema |
app:tables | Lists all tables defined within a schema |
CSV
Parse, transform, and merge CSV files.
| Name | Description |
|---|---|
csv:merge | Merges columns from a secondary CSV file into a primary CSV file |
csv:shrink | Removes specified columns from a CSV file to reduce its width |
csv:unchunk | Combines multiple CSV chunk files back into a single output file |
Dir
Read and write directories on the local filesystem.
| Name | Description |
|---|---|
dir:read | Read a directory with filters |
dir:write | Create or delete a directory |
Each
Iterate over a list and run sub-steps for every item.
| Name | Description |
|---|---|
each | Loop over a collection of items or map entries, processing them one by one or in chunks. |
Error
Raise an explicit error to stop the workflow.
| Name | Description |
|---|---|
error | Immediately fails the workflow step with a configurable error message |
Event
Emit events during workflow execution.
| Name | Description |
|---|---|
event:emit | Publishes an event to the configured topic so other pipeline steps or external systems can react |
Exec
Execute shell commands.
| Name | Description |
|---|---|
exec | Runs an arbitrary shell command and captures its stdout, stderr and exit code |
File
Read, write, copy, find, and validate files on the local filesystem.
| Name | Description |
|---|---|
file:copy | Copies a file from source to destination, preserving file permissions |
file:find | |
file:json:unchunk | Combines multiple JSON chunk files into a single array or map output file |
file:read | Reads the full contents of a file and returns it as both a string and raw bytes |
file:write | Writes or appends content to a file, optionally deleting it first |
Group
Group related steps under a single named step.
| Name | Description |
|---|---|
group | Is a control component that groups multiple components together It does not execute any logic itself, but serves as a container for other components |
HTTP
Make HTTP requests and handle responses.
| Name | Description |
|---|---|
http | Perform HTTP requests using the provided configuration |
Inference
Interact with AI language models.
| Name | Description |
|---|---|
inference | Makes LLM inference requests using the configured provider and its model. Supports tools, LLM parameter settings and cost calculation with user currency conversion. Pass a template path to the prompt field, or a string prompt to render dynamic prompts with variables. |
inference:estimate | Estimates the token count and cost for a prompt without running the model |
inference:models | Lists all available models from the configured inference provider |
Map
Transform a list by running sub-steps per item and collecting results.
| Name | Description |
|---|---|
map | Remaps and transforms values from a source object into a new output structure |
Print values to stdout for debugging.
| Name | Description |
|---|---|
print | Logs a labeled variable value to the debug output for inspection during development |
Sleep
Pause workflow execution for a duration.
| Name | Description |
|---|---|
sleep | Is a control component that sleeps for a specified duration |
Template
Render a text template.
| Name | Description |
|---|---|
template | Renders a template |
Var
Set or pass through a variable value.
| Name | Description |
|---|---|
var | Sets or appends a variable in the workflow context for use in subsequent steps |
XML
Parse and transform XML documents.
| Name | Description |
|---|---|
xml | Processes an XML file using a configurable processor (generic or xliff), supporting import and export of translated content |