id = "dagu" name = "Dagu" homepage = "https://dagu.sh" description = "Lightweight and powerful workflow engine." executables = ["dagu"] [dotfiles] # https://docs.dagu.sh/server-admin/reference — default XDG files are # ~/.config/dagu/config.yaml and ~/.config/dagu/base.yaml; the same page's # directory structure documents dags/ as user workflow YAML files. paths = [ "[configHome]/dagu/config.yaml", "[configHome]/dagu/base.yaml", "[configHome]/dagu/dags/", ] # The authentication guide documents auth.basic.password in config.yaml. Keep # that credential field out of ordinary content while syncing the rest. secret = [] [[dotfiles.secret_paths]] file = "[configHome]/dagu/config.yaml" format = "yaml" match = { key_path = ["auth.basic.password"] } [commands] format = 1 label = "Dagu CLI" description = "Run, retry and stop DAG workflows, or start the web UI server. Modelled subcommands: start, retry, stop, server. Parameters after -- and other subcommands are not covered." quality = "ai-draft" parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = true, short_bundles = false } [[commands.subcommand]] path = ["start"] label = "Run a DAG" [[commands.subcommand.source]] id = "doc" kind = "manual" url = "https://docs.dagu.sh/overview/cli" revision = "docs.dagu.sh CLI reference 2026-10-27" evidence = """ dagu start [options] DAG_NAME_OR_FILE [-- PARAMS...] --name, -N - Override the DAG name (default: name from DAG definition or filename) --run-id, -r - Custom run ID --profile - Runtime profile to apply to this run --no-reuse - Recompute eligible build steps instead of reusing prior materializations --only - Run only this step (name or ID); repeatable. Every other step is recorded as skipped dagu start my-workflow.yaml dagu start --run-id batch-001 etl.yaml dagu start --only scrape example-dag.yaml """ [[commands.subcommand.field]] id = "dag" label = "DAG name or file" type = "path" position = 0 path = { kind = "file", role = "input", must_exist = false } sources = ["doc"] [[commands.subcommand.field]] id = "name" label = "Override DAG name" type = "string" option = ["--name", "-N"] sources = ["doc"] [[commands.subcommand.field]] id = "run_id" label = "Run ID" type = "string" option = ["--run-id", "-r"] sources = ["doc"] [[commands.subcommand.field]] id = "profile" label = "Runtime profile" type = "string" option = ["--profile"] sources = ["doc"] [[commands.subcommand.field]] id = "no_reuse" label = "Recompute build steps" type = "boolean" option = ["--no-reuse"] sources = ["doc"] [[commands.subcommand.field]] id = "only" label = "Run only these steps" type = "string" option = ["--only"] multiple = true sources = ["doc"] [[commands.subcommand.task]] id = "run" label = "Run a DAG" fields = ["dag", "run_id", "profile", "no_reuse"] required = ["dag"] [[commands.subcommand.task]] id = "one-step" label = "Run selected steps only" fields = ["dag", "only", "run_id"] required = ["dag", "only"] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["dag", "run_id", "profile"] [[commands.subcommand.group]] id = "advanced" label = "Advanced" fields = ["name", "no_reuse", "only"] [[commands.subcommand]] path = ["retry"] label = "Retry a run" [[commands.subcommand.source]] id = "doc" kind = "manual" url = "https://docs.dagu.sh/overview/cli" revision = "docs.dagu.sh CLI reference 2026-10-27" evidence = """ dagu retry [options] DAG_NAME_OR_FILE --run-id, -r - Run to retry (required) --step - Retry only the named step --downstream - Also retry reachable descendants of --step; requires --step dagu retry --run-id=20240101_120000 my-workflow """ [[commands.subcommand.field]] id = "dag" label = "DAG name or file" type = "path" position = 0 path = { kind = "file", role = "input", must_exist = false } sources = ["doc"] [[commands.subcommand.field]] id = "run_id" label = "Run ID" type = "string" option = ["--run-id", "-r"] sources = ["doc"] [[commands.subcommand.field]] id = "step" label = "Only this step" type = "string" option = ["--step"] sources = ["doc"] [[commands.subcommand.field]] id = "downstream" label = "Include downstream steps" type = "boolean" option = ["--downstream"] sources = ["doc"] [[commands.subcommand.task]] id = "retry" label = "Retry a run" fields = ["dag", "run_id", "step", "downstream"] required = ["dag", "run_id"] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["dag", "run_id", "step", "downstream"] [[commands.subcommand]] path = ["stop"] label = "Stop a running DAG" [[commands.subcommand.source]] id = "doc" kind = "manual" url = "https://docs.dagu.sh/overview/cli" revision = "docs.dagu.sh CLI reference 2026-10-27" evidence = """ dagu stop [options] DAG_NAME_OR_FILE --run-id, -r - Specific run ID (optional) """ [[commands.subcommand.field]] id = "dag" label = "DAG name or file" type = "path" position = 0 path = { kind = "file", role = "input", must_exist = false } sources = ["doc"] [[commands.subcommand.field]] id = "run_id" label = "Run ID" type = "string" option = ["--run-id", "-r"] sources = ["doc"] [[commands.subcommand.task]] id = "stop" label = "Stop a DAG" fields = ["dag", "run_id"] required = ["dag"] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["dag", "run_id"] [[commands.subcommand]] path = ["server"] label = "Start the web UI server" [[commands.subcommand.source]] id = "doc" kind = "manual" url = "https://docs.dagu.sh/overview/cli" revision = "docs.dagu.sh CLI reference 2026-10-27" evidence = """ dagu server [options] --host, -s - Host (default: localhost) --port, -p - Port (default: 8080) --dags, -d - DAGs directory dagu server --host=0.0.0.0 --port=9000 # Custom host/port """ [[commands.subcommand.field]] id = "host" label = "Host" type = "string" option = ["--host", "-s"] sources = ["doc"] [[commands.subcommand.field]] id = "port" label = "Port" type = "integer" option = ["--port", "-p"] sources = ["doc"] [[commands.subcommand.field]] id = "dags" label = "DAGs directory" type = "path" option = ["--dags", "-d"] path = { kind = "directory", role = "input", must_exist = false } sources = ["doc"] [[commands.subcommand.task]] id = "serve" label = "Start the server" fields = ["host", "port", "dags"] required = [] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["host", "port", "dags"]