flawless executable is both, the server and the client that is used to
interact with the server. Tools like
cargo flw just wrap around the
The best way to get an overview of what you can do with the flawless CLI is by using the
--help argument on commands. For example:
$ flawless workflow --help
will print out all the commands related to workflows. The rest of this page will go into more detail about the most commonly used commands and options.
flawless --working-dir <DIR> [command]
The working directory is the place where Flawless stores all data. By default, this is
$HOME/.flawless on Unix systems and
%APPDATA%\.flawless on Windows.
Deleting it and the
flawless binary will completely remove flawless from the system.
flawless up [OPTIONS]
Starts the flawless server. Once the server starts, it will automatically resume all
workflows that didn't finish yet. The server will accept QUIC connections from clients, by
localhost:27288. This can be controlled using the
--socket <SOCKET> option.
The server will also expose the HTTP API on
default port can be changed using the
--port <PORT> option.
flawless workflow module add <NAME> <.WASM>
This command registers a WebAssembly module under
<NAME>. Workflows from this module can
be started using the
start command or through the HTTP API.
flawless workflow start [OPTIONS] <MODULE> <WORKFLOW>
Starts a workflow with the name
<MODULE>. The most important option
--input <JSON>, that can be used to supply the workflow with an input.
flawless workflow list
Lists all workflows and their status
flawless workflow log <ID>
Shows the log belonging to a workflow.
flawless workflow data <ID>
Shows the data belonging to a workflow. The data is set from inside the workflow running
function. Even after the workflow finishes, the last set data will be available.