{
  "id": "dagu",
  "name": "Dagu",
  "homepage": "https://dagu.sh",
  "description": "Lightweight and powerful workflow engine.",
  "executables": [
    "dagu"
  ],
  "dotfiles": {
    "paths": [
      "[configHome]/dagu/config.yaml",
      "[configHome]/dagu/base.yaml",
      "[configHome]/dagu/dags/"
    ],
    "secret": [],
    "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
    },
    "subcommand": [
      {
        "path": [
          "start"
        ],
        "label": "Run a DAG",
        "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...]\n--name, -N - Override the DAG name (default: name from DAG definition or filename)\n--run-id, -r - Custom run ID\n--profile - Runtime profile to apply to this run\n--no-reuse - Recompute eligible build steps instead of reusing prior materializations\n--only - Run only this step (name or ID); repeatable. Every other step is recorded as skipped\ndagu start my-workflow.yaml\ndagu start --run-id batch-001 etl.yaml\ndagu start --only scrape example-dag.yaml\n"
          }
        ],
        "field": [
          {
            "id": "dag",
            "label": "DAG name or file",
            "type": "path",
            "position": 0,
            "path": {
              "kind": "file",
              "role": "input",
              "must_exist": false
            },
            "sources": [
              "doc"
            ]
          },
          {
            "id": "name",
            "label": "Override DAG name",
            "type": "string",
            "option": [
              "--name",
              "-N"
            ],
            "sources": [
              "doc"
            ]
          },
          {
            "id": "run_id",
            "label": "Run ID",
            "type": "string",
            "option": [
              "--run-id",
              "-r"
            ],
            "sources": [
              "doc"
            ]
          },
          {
            "id": "profile",
            "label": "Runtime profile",
            "type": "string",
            "option": [
              "--profile"
            ],
            "sources": [
              "doc"
            ]
          },
          {
            "id": "no_reuse",
            "label": "Recompute build steps",
            "type": "boolean",
            "option": [
              "--no-reuse"
            ],
            "sources": [
              "doc"
            ]
          },
          {
            "id": "only",
            "label": "Run only these steps",
            "type": "string",
            "option": [
              "--only"
            ],
            "multiple": true,
            "sources": [
              "doc"
            ]
          }
        ],
        "task": [
          {
            "id": "run",
            "label": "Run a DAG",
            "fields": [
              "dag",
              "run_id",
              "profile",
              "no_reuse"
            ],
            "required": [
              "dag"
            ]
          },
          {
            "id": "one-step",
            "label": "Run selected steps only",
            "fields": [
              "dag",
              "only",
              "run_id"
            ],
            "required": [
              "dag",
              "only"
            ]
          }
        ],
        "group": [
          {
            "id": "basic",
            "label": "Basic",
            "fields": [
              "dag",
              "run_id",
              "profile"
            ]
          },
          {
            "id": "advanced",
            "label": "Advanced",
            "fields": [
              "name",
              "no_reuse",
              "only"
            ]
          }
        ]
      },
      {
        "path": [
          "retry"
        ],
        "label": "Retry a run",
        "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\n--run-id, -r - Run to retry (required)\n--step - Retry only the named step\n--downstream - Also retry reachable descendants of --step; requires --step\ndagu retry --run-id=20240101_120000 my-workflow\n"
          }
        ],
        "field": [
          {
            "id": "dag",
            "label": "DAG name or file",
            "type": "path",
            "position": 0,
            "path": {
              "kind": "file",
              "role": "input",
              "must_exist": false
            },
            "sources": [
              "doc"
            ]
          },
          {
            "id": "run_id",
            "label": "Run ID",
            "type": "string",
            "option": [
              "--run-id",
              "-r"
            ],
            "sources": [
              "doc"
            ]
          },
          {
            "id": "step",
            "label": "Only this step",
            "type": "string",
            "option": [
              "--step"
            ],
            "sources": [
              "doc"
            ]
          },
          {
            "id": "downstream",
            "label": "Include downstream steps",
            "type": "boolean",
            "option": [
              "--downstream"
            ],
            "sources": [
              "doc"
            ]
          }
        ],
        "task": [
          {
            "id": "retry",
            "label": "Retry a run",
            "fields": [
              "dag",
              "run_id",
              "step",
              "downstream"
            ],
            "required": [
              "dag",
              "run_id"
            ]
          }
        ],
        "group": [
          {
            "id": "basic",
            "label": "Basic",
            "fields": [
              "dag",
              "run_id",
              "step",
              "downstream"
            ]
          }
        ]
      },
      {
        "path": [
          "stop"
        ],
        "label": "Stop a running DAG",
        "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\n--run-id, -r - Specific run ID (optional)\n"
          }
        ],
        "field": [
          {
            "id": "dag",
            "label": "DAG name or file",
            "type": "path",
            "position": 0,
            "path": {
              "kind": "file",
              "role": "input",
              "must_exist": false
            },
            "sources": [
              "doc"
            ]
          },
          {
            "id": "run_id",
            "label": "Run ID",
            "type": "string",
            "option": [
              "--run-id",
              "-r"
            ],
            "sources": [
              "doc"
            ]
          }
        ],
        "task": [
          {
            "id": "stop",
            "label": "Stop a DAG",
            "fields": [
              "dag",
              "run_id"
            ],
            "required": [
              "dag"
            ]
          }
        ],
        "group": [
          {
            "id": "basic",
            "label": "Basic",
            "fields": [
              "dag",
              "run_id"
            ]
          }
        ]
      },
      {
        "path": [
          "server"
        ],
        "label": "Start the web UI server",
        "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]\n--host, -s - Host (default: localhost)\n--port, -p - Port (default: 8080)\n--dags, -d - DAGs directory\ndagu server --host=0.0.0.0 --port=9000  # Custom host/port\n"
          }
        ],
        "field": [
          {
            "id": "host",
            "label": "Host",
            "type": "string",
            "option": [
              "--host",
              "-s"
            ],
            "sources": [
              "doc"
            ]
          },
          {
            "id": "port",
            "label": "Port",
            "type": "integer",
            "option": [
              "--port",
              "-p"
            ],
            "sources": [
              "doc"
            ]
          },
          {
            "id": "dags",
            "label": "DAGs directory",
            "type": "path",
            "option": [
              "--dags",
              "-d"
            ],
            "path": {
              "kind": "directory",
              "role": "input",
              "must_exist": false
            },
            "sources": [
              "doc"
            ]
          }
        ],
        "task": [
          {
            "id": "serve",
            "label": "Start the server",
            "fields": [
              "host",
              "port",
              "dags"
            ],
            "required": []
          }
        ],
        "group": [
          {
            "id": "basic",
            "label": "Basic",
            "fields": [
              "host",
              "port",
              "dags"
            ]
          }
        ]
      }
    ]
  }
}
