Flawless Logo, a beautiful woman with freckles head illustration. flawless.dev

Server CLI

The 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 flawless executable internally.

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 default on localhost:27288. This can be controlled using the --socket <SOCKET> option. The server will also expose the HTTP API on The 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 <WORKFLOW> inside <MODULE>. The most important option is --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 using the set_data function. Even after the workflow finishes, the last set data will be available.