{
  "description": "Common DVC jobs: track data, push and pull it, and reproduce pipelines. Other subcommands (experiments, metrics, plots, remote setup) are not covered.",
  "options": [
    {
      "names": [
        "--cd"
      ],
      "description": "Run in directory",
      "args": {
        "name": "cd",
        "isOptional": false,
        "template": "folders"
      }
    }
  ],
  "name": "dvc",
  "subcommands": [
    {
      "name": "add",
      "description": "Track files or directories with DVC. Remote upload, glob and relink options are left out.",
      "options": [
        {
          "names": [
            "--no-commit"
          ],
          "description": "Do not put into cache"
        },
        {
          "names": [
            "--glob"
          ],
          "description": "Targets are wildcards"
        },
        {
          "names": [
            "--out",
            "-o"
          ],
          "description": "Destination path",
          "args": {
            "name": "out",
            "isOptional": false,
            "template": "filepaths"
          }
        },
        {
          "names": [
            "--force",
            "-f"
          ],
          "description": "Override existing",
          "isDangerous": true
        }
      ],
      "args": [
        {
          "name": "targets",
          "isOptional": false,
          "isVariadic": true,
          "template": "filepaths"
        }
      ]
    },
    {
      "name": "push",
      "description": "Upload tracked data to remote storage. Run-cache and per-branch options are partly covered.",
      "options": [
        {
          "names": [
            "--remote",
            "-r"
          ],
          "description": "Remote name",
          "args": {
            "name": "remote",
            "isOptional": false
          }
        },
        {
          "names": [
            "--jobs",
            "-j"
          ],
          "description": "Parallel jobs",
          "args": {
            "name": "jobs",
            "isOptional": false
          }
        },
        {
          "names": [
            "--all-branches",
            "-a"
          ],
          "description": "All branches"
        },
        {
          "names": [
            "--all-tags",
            "-T"
          ],
          "description": "All tags"
        },
        {
          "names": [
            "--all-commits",
            "-A"
          ],
          "description": "All commits"
        },
        {
          "names": [
            "--with-deps",
            "-d"
          ],
          "description": "Include dependencies"
        },
        {
          "names": [
            "--recursive",
            "-R"
          ],
          "description": "Recurse into directories"
        }
      ],
      "args": [
        {
          "name": "targets",
          "description": "Limit to these tracked files, .dvc files or stage names. Leave empty for everything.",
          "isOptional": true,
          "isVariadic": true
        }
      ]
    },
    {
      "name": "pull",
      "description": "Download tracked data from remote storage into the workspace.",
      "options": [
        {
          "names": [
            "--remote",
            "-r"
          ],
          "description": "Remote name",
          "args": {
            "name": "remote",
            "isOptional": false
          }
        },
        {
          "names": [
            "--jobs",
            "-j"
          ],
          "description": "Parallel jobs",
          "args": {
            "name": "jobs",
            "isOptional": false
          }
        },
        {
          "names": [
            "--all-branches",
            "-a"
          ],
          "description": "All branches"
        },
        {
          "names": [
            "--all-tags",
            "-T"
          ],
          "description": "All tags"
        },
        {
          "names": [
            "--all-commits",
            "-A"
          ],
          "description": "All commits"
        },
        {
          "names": [
            "--with-deps",
            "-d"
          ],
          "description": "Include dependencies"
        },
        {
          "names": [
            "--recursive",
            "-R"
          ],
          "description": "Recurse into directories"
        },
        {
          "names": [
            "--force",
            "-f"
          ],
          "description": "Do not prompt before removing",
          "isDangerous": true
        }
      ],
      "args": [
        {
          "name": "targets",
          "description": "Limit to these tracked files, .dvc files or stage names. Leave empty for everything.",
          "isOptional": true,
          "isVariadic": true
        }
      ]
    },
    {
      "name": "repro",
      "description": "Run the stages in dvc.yaml that are out of date.",
      "options": [
        {
          "names": [
            "--force",
            "-f"
          ],
          "description": "Reproduce even if dependencies were not changed."
        },
        {
          "names": [
            "--interactive",
            "-i"
          ],
          "description": "Confirm each stage"
        },
        {
          "names": [
            "--single-item",
            "-s"
          ],
          "description": "Single item only"
        },
        {
          "names": [
            "--pipeline",
            "-p"
          ],
          "description": "Whole pipeline"
        },
        {
          "names": [
            "--all-pipelines",
            "-P"
          ],
          "description": "All pipelines"
        },
        {
          "names": [
            "--downstream"
          ],
          "description": "Start from the given stages"
        },
        {
          "names": [
            "--pull"
          ],
          "description": "Pull missing data"
        },
        {
          "names": [
            "--dry"
          ],
          "description": "Only print the commands that would be executed."
        }
      ],
      "args": [
        {
          "name": "targets",
          "description": "Stage names or dvc.yaml paths. Leave empty for dvc.yaml.",
          "isOptional": true,
          "isVariadic": true
        }
      ]
    }
  ]
}
