Skip to main content
Version: Next

CLI reference

The arkflow binary is a single executable that runs streams and jobs from a YAML configuration and ships discovery commands for the component registry.

arkflow [OPTIONS] [COMMAND]

Run the engine

OptionDescription
-c, --config <FILE>Path to the YAML configuration file. Required unless a discovery subcommand is used.
-v, --validateValidate the configuration and exit without starting the engine.
--versionPrint the version and exit.
# Run streams and jobs defined in the config
./target/release/arkflow --config config.yaml

# Deep-validate a config: parsing, stream ids, declared job graphs,
# duplicate ids, operator references, and configuration rules
./target/release/arkflow --config config.yaml --validate

--validate goes beyond deserialization: it checks stream id uniqueness, validates every declared Job spec (graph structure and operator references), and runs the engine's configuration rule checks. Validation failures print Invalid configuration: ... and exit with a non-zero status, which makes the flag suitable for CI pipelines and admission hooks.

components list

List every registered component, grouped by kind.

arkflow components list [--kind KIND] [--format FORMAT]
OptionDescription
-k, --kind <KIND>Filter by component kind: input, output, processor, buffer, codec, temporary.
-f, --format <FORMAT>text (default, aligned columns) or json (machine-readable registry export).
$ arkflow components list --kind codec
codec:
json JSON codec for parsing and serializing message payloads
protobuf Protobuf codec using a compiled .proto descriptor
...

The json format is the same registry export that backs the generated component inventory, so scripts and the docs can never disagree with the binary.

components show

Print the configuration schema for one component.

arkflow components show <KIND> <NAME> [--format FORMAT]
ArgumentDescription
<KIND>Component kind (required).
<NAME>Registered component type name (required).
-f, --format <FORMAT>text (default) or json.
$ arkflow components show input kafka
kafka: Kafka input component for consuming messages from Kafka topics
kind: input
config_optional: no

Example:
{ ... pretty-printed config example ... }

Config schema:
{ ... JSON Schema for the component config ... }

Unknown names fail with the list of valid alternatives, e.g. Unknown input type: kafaka. Available input types: file, generate, http, kafka, ....

schema

Print the JSON Schema (draft 2020-12) for the whole engine configuration. Feed it to your editor for YAML auto-completion and hover docs — see IDE auto-completion.

arkflow schema > arkflow.schema.json

Exit behavior

InvocationBehavior
components ..., schemaPrints results and exits immediately; no config file is read.
--validateValidates the config, logs The config is validated., exits without starting the engine.
--config <FILE> (default)Validates the config, then starts the engine and blocks until shutdown.
Missing --config without a subcommandError: missing --config <FILE> (or run a subcommand: components, schema).