flowwork needs almost no configuration — the binary sets up its database, key, and default workspace on first run. The variables below cover the cases where you want to tune behaviour.
Engine
| Variable | Default | Purpose |
|---|---|---|
FLOWWORK_LICENSE_KEY | — | Your license key. Required to start the engine. |
FLOWWORK_PORT | 9010 | HTTP port for the API + health endpoints. |
POLLER_INTERVAL_MS | (engine default) | How often the scheduler looks for ready work. |
LOG_LEVEL | info | debug / info / warn / error (structured JSON logs). |
FLOWWORK_CONNECTOR_ALLOW_PROCESS | false | Allow spawning stdio MCP/CLI connectors (process adapters). Remote-HTTP connectors don’t need this. |
FLOWWORK_CONNECTOR_DEBUG | false | Verbose connector diagnostics — launch command (secrets masked), JSON-RPC wire, child stderr, schema-validation failures. |
There are also ENGINE_* and SCRIPT_* tuning knobs for the executor and the script runtime;
the defaults are sensible — reach for them only when profiling a specific bottleneck.
flowctl
flowctl is configured by flags or environment variables:
| Variable | Flag | Default | Purpose |
|---|---|---|---|
FLOWCTL_SERVER | --server | http://localhost:9010/api | Engine base URL (include /api). |
FLOWCTL_WORKSPACE | -w, --workspace | 1 | Workspace id. |
FLOWCTL_USER | -u, --user | 1 | User id. |
Add -o json for machine-readable output and -q to print only the resulting id (handy in
$(...)).
The engine generates and persists its own encryption key for connector credentials on first run
— you don’t supply or manage one. Credentials you set via flowctl instance create
are stored encrypted and are never returned by the API.
Next: flowctl CLI reference.