concord
Concord workflow CLI for linting and running flows locally
TLDR
SYNOPSIS
concord lint [options] [targetdir_]concord run [options]concord --version
DESCRIPTION
concord is the command-line companion to the Concord workflow orchestration server developed by Walmart Labs. The CLI focuses on the local development loop:- Linting parses concord.yml and any imported YAML, validating DSL syntax and expression syntax. It does not require a running Concord server.- Running flows locally executes a flow on the developer machine, resolving Maven dependencies into $HOME/.concord/depsCache and Git imports into $HOME/.concord/repoCache. Local file-based secrets are resolved from $HOME/.concord/secrets (or the directory passed to --secret-dir).Local execution supports standard flow elements, tasks, external dependencies, Git imports, and string/key-pair/credential/file secrets. Forms, profiles, and password-protected secrets are currently unsupported. Local execution forces the runtime to concord-v2.
PARAMETERS
-h, --help
Show help text.-v, --verbose
Verbose output (lint command).--secret-dir DIR
Directory used by the local secret resolver (default $HOME/.concord/secrets).--version
Print the CLI version.
CONFIGURATION
concord.yml
The flow definition consumed by both lint and run.$HOME/.concord/secrets/_org_/_name_
Default location for local secrets, organised by org and secret name. String, key-pair (name + name.pub), credential (JSON), and file secrets are recognised.$HOME/.concord/depsCache/
Cached Maven dependencies pulled in during concord run.$HOME/.concord/repoCache/
Cached Git repositories used by imports.
COMMANDS
lint [dir]
Parse and validate Concord YAML files in dir (default: current directory). Checks DSL syntax and expression correctness without executing anything. Cannot verify task invocations, parameter types, or dynamically imported resources.run
Execute a Concord v2 flow locally without contacting a Concord server. Files from the current directory are copied to $PWD/target, dependencies are resolved, and the default flow is run.
CAVEATS
Requires Java 17 or newer in PATH. Local run is not a full Concord server: forms, profiles, and password-protected secrets do not work. Linting is best-effort and may miss errors that only manifest at runtime, such as missing tasks, wrong parameter types, or unresolved dynamic imports.
HISTORY
Concord was open-sourced by Walmart Labs in 2017 as a workflow orchestration and continuous-deployment platform built around YAML-defined flows and a server runtime. The standalone concord CLI was added later to give developers a fast local linting and execution loop without round-tripping through the Concord server.
