worker.yml
worker.yml
The worker file format: identity, trigger, inputs, runtime, outputs, tools, secrets, and approvals.
Bundle shape
A worker bundle has worker.yml plus either run.py for script mode or SKILL.md for agent mode. Floom uploads the bundle, materializes inputs, injects declared secrets and connections, runs the entrypoint, and captures declared outputs.
folder
workers/my-worker/ worker.yml run.py # script mode SKILL.md # agent mode, instead of run.py requirements.txt
Fields
Top level
schema_versionstringrequiredUse
0.3.namestringrequiredStable worker slug, usually lowercase with dashes.
titlestringrequiredHuman-readable worker name.
descriptionstringrequiredShort card/list description.
versionstringrequiredBundle version; bump when the source changes.
entrypointstringUsually
run.py or SKILL.md.long_description, use_cases, example_input, example_output, how_it_works, folder, tagsoptionalDashboard metadata for cards, overview, search, and grouping.
trigger
trigger.typestringrequiredOne of
manual, schedule, webhook, or composio.trigger.cronstringCron expression for
schedule workers.trigger.timezonestringIANA timezone for schedules, for example
Europe/Berlin.trigger.webhook.secretbooleanRequire a generated webhook secret for webhook-triggered runs.
exec
exec.modestringUse
pure-script for code or agent for SKILL.md.exec.entrystringrequiredEntrypoint file; matches
run.py or SKILL.md.exec.runtimestringrequiredSupported values include
python311, node22, bash, skill, and none.exec.runnerstringrequiredUsually
e2b.exec.commandstringScript mode command, for example
python run.py.exec.inputs[]arrayrequiredRun input fields, described below.
exec.outputs[]arrayrequiredNamed outputs Floom renders and validates.
inputs and outputs
inputs[].namestringrequiredInput key passed into the run.
inputs[].kindstringrequiredUse
scalar or file.inputs[].typestringScalar type such as
string, number, boolean, textarea, select, or url.inputs[].label, placeholder, default, requiredoptionalUI and validation metadata.
inputs[].enum / optionsstring[]Allowed values for
select inputs.inputs[].media_type, path, accepts, max_size_mbfile inputFile materialization path and upload constraints.
outputs[].name, kind, media_type, path, required, labeloutputrequiredOutput declaration. Markdown file outputs render inline; other files are downloadable.
tools, secrets, limits
connections[]arrayDeclare app connections. Structured entries can set
app and allowed_tools.capabilities.secretsstring[]Environment variable names the worker can read.
capabilities.connectionsstring[]Connection names mirrored for capability checks.
capabilities.network.egressbooleanSet true for workers that call external APIs.
approvals.requiredbooleanPause runs for human approval before completion or side effects.
limitsobjectAgent-loop limits: max_tool_iterations, max_output_tokens, max_total_tokens, timeout_seconds.
resourcesobjectOptional sandbox sizing request: memory_mb, cpu_count.
Example
This is the minimal script-worker shape used by the engine contract.
worker.yml
schema_version: "0.3"
name: text-normalizer
title: Text Normalizer
description: Normalize a text input and return the normalized value.
version: "0.1.0"
entrypoint: run.py
trigger:
type: manual
exec:
mode: pure-script
entry: run.py
runtime: python311
runner: e2b
command: python run.py
inputs:
- name: text
label: Text
type: string
kind: scalar
required: true
outputs:
- name: normalized
label: Normalized text
type: string
kind: scalar
required: true
capabilities:
network:
egress: false
secrets: []
connections: []Schedule trigger
trigger
trigger: type: schedule cron: "0 9 * * MON" timezone: "Europe/Berlin"
Agent worker
agent fields
entrypoint: SKILL.md
exec:
mode: agent
entry: SKILL.md
runtime: python311
runner: e2b
inputs: []
outputs:
- name: summary
kind: file
media_type: text/markdown
path: out/summary.md
required: trueValidate
Use the CLI contract, templates, and validation before creating a worker. Hosted MCP agents create workers with workers.create by passing worker_yml, run_py, and optional skill_md.
cli
floom workers contract floom workers templates list floom workers templates get python-script floom workers validate ./workers/<id> floom workers push ./workers/<id>
Runtime contract
Script workers read
inputs.json and write result.json. Agent workers put instructions in SKILL.md and declare outputs in worker.yml so Floom can render and validate them.The CLI and MCP references are here: CLI workers and MCP tools.