{
  "name": "scarb",
  "description": "Scarb, The build toolchain and package manager for Cairo and Starknet ecosystems",
  "subcommands": [
    {
      "name": "add",
      "description": "Add dependencies to a Scarb.toml manifest file",
      "options": [
        {
          "names": [
            "--dry-run"
          ],
          "description": "Do not actually write the manifest"
        },
        {
          "names": [
            "-p",
            "--package"
          ],
          "description": "Packages to run this command on",
          "takes_arg": true,
          "arg": {
            "name": "SPEC",
            "description": "Packages to run this command on, can be a concrete package name (`foobar`) or a prefix glob (`foo*`) [default: *]"
          }
        },
        {
          "names": [
            "-v",
            "--verbose"
          ],
          "description": "More output per occurrence"
        },
        {
          "names": [
            "-q",
            "--quiet"
          ],
          "description": "Less output per occurrence"
        },
        {
          "names": [
            "-h",
            "--help"
          ],
          "description": "Print help"
        },
        {
          "names": [
            "--path"
          ],
          "description": "Filesystem path to local package to add",
          "takes_arg": true,
          "arg": {
            "name": "PATH"
          }
        },
        {
          "names": [
            "--git"
          ],
          "description": "Git repository location",
          "takes_arg": true,
          "arg": {
            "name": "URI"
          }
        },
        {
          "names": [
            "--branch"
          ],
          "description": "Git branch to download the package from",
          "takes_arg": true,
          "arg": {
            "name": "BRANCH"
          }
        },
        {
          "names": [
            "--tag"
          ],
          "description": "Git tag to download the package from",
          "takes_arg": true,
          "arg": {
            "name": "TAG"
          }
        },
        {
          "names": [
            "--rev"
          ],
          "description": "Git reference to download the package from",
          "takes_arg": true,
          "arg": {
            "name": "REV"
          }
        }
      ],
      "args": [
        {
          "name": "DEP_ID",
          "description": "Reference to a package to add as a dependency"
        }
      ]
    },
    {
      "name": "remove",
      "description": "Remove dependencies from a manifest file",
      "options": [
        {
          "names": [
            "--dry-run"
          ],
          "description": "Do not actually write the manifest"
        },
        {
          "names": [
            "-p",
            "--package"
          ],
          "description": "Packages to run this command on",
          "takes_arg": true,
          "arg": {
            "name": "SPEC",
            "description": "Packages to run this command on, can be a concrete package name (`foobar`) or a prefix glob (`foo*`) [default: *]"
          }
        },
        {
          "names": [
            "-v",
            "--verbose"
          ],
          "description": "More output per occurrence"
        },
        {
          "names": [
            "-q",
            "--quiet"
          ],
          "description": "Less output per occurrence"
        },
        {
          "names": [
            "-w",
            "--workspace"
          ],
          "description": "Run for all packages in the workspace"
        },
        {
          "names": [
            "-h",
            "--help"
          ],
          "description": "Print help"
        }
      ],
      "args": [
        {
          "name": "DEP_ID",
          "description": "Dependencies to be removed",
          "is_variadic": true
        }
      ]
    },
    {
      "name": "build",
      "description": "Compile current project",
      "options": [
        {
          "names": [
            "-p",
            "--package"
          ],
          "description": "Packages to run this command on",
          "takes_arg": true,
          "arg": {
            "name": "SPEC",
            "description": "Packages to run this command on, can be a concrete package name (`foobar`) or a prefix glob (`foo*`) [default: *]"
          }
        },
        {
          "names": [
            "-w",
            "--workspace"
          ],
          "description": "Run for all packages in the workspace"
        },
        {
          "names": [
            "-v",
            "--verbose"
          ],
          "description": "More output per occurrence"
        },
        {
          "names": [
            "-q",
            "--quiet"
          ],
          "description": "Less output per occurrence"
        },
        {
          "names": [
            "-h",
            "--help"
          ],
          "description": "Print help"
        }
      ]
    },
    {
      "name": "cache",
      "description": "Manipulate packages cache",
      "subcommands": [
        {
          "name": "clean",
          "description": "Remove all cached dependencies",
          "options": [
            {
              "names": [
                "-v",
                "--verbose"
              ],
              "description": "More output per occurrence"
            },
            {
              "names": [
                "-q",
                "--quiet"
              ],
              "description": "Less output per occurrence"
            },
            {
              "names": [
                "-h",
                "--help"
              ],
              "description": "Print help"
            }
          ]
        },
        {
          "name": "path",
          "description": "Print the path of the cache directory",
          "options": [
            {
              "names": [
                "-v",
                "--verbose"
              ],
              "description": "More output per occurrence"
            },
            {
              "names": [
                "-q",
                "--quiet"
              ],
              "description": "Less output per occurrence"
            },
            {
              "names": [
                "-h",
                "--help"
              ],
              "description": "Print help"
            }
          ]
        },
        {
          "name": "help",
          "description": "Print this message or the help of the given subcommand(s)"
        }
      ],
      "options": [
        {
          "names": [
            "-v",
            "--verbose"
          ],
          "description": "More output per occurrence"
        },
        {
          "names": [
            "-q",
            "--quiet"
          ],
          "description": "Less output per occurrence"
        },
        {
          "names": [
            "-h",
            "--help"
          ],
          "description": "Print help"
        }
      ]
    },
    {
      "name": "clean",
      "description": "Remove generated artifacts",
      "options": [
        {
          "names": [
            "-v",
            "--verbose"
          ],
          "description": "More output per occurrence"
        },
        {
          "names": [
            "-q",
            "--quiet"
          ],
          "description": "Less output per occurrence"
        },
        {
          "names": [
            "-h",
            "--help"
          ],
          "description": "Print help"
        }
      ]
    },
    {
      "name": "commands",
      "description": "List installed commands",
      "options": [
        {
          "names": [
            "-v",
            "--verbose"
          ],
          "description": "More output per occurrence"
        },
        {
          "names": [
            "-q",
            "--quiet"
          ],
          "description": "Less output per occurrence"
        },
        {
          "names": [
            "-h",
            "--help"
          ],
          "description": "Print help"
        }
      ]
    },
    {
      "name": "fetch",
      "description": "Fetch dependencies of packages from the network",
      "options": [
        {
          "names": [
            "-v",
            "--verbose"
          ],
          "description": "More output per occurrence"
        },
        {
          "names": [
            "-q",
            "--quiet"
          ],
          "description": "Less output per occurrence"
        },
        {
          "names": [
            "-h",
            "--help"
          ],
          "description": "Print help"
        }
      ]
    },
    {
      "name": "fmt",
      "description": "Format project files",
      "options": [
        {
          "names": [
            "-c",
            "--check"
          ],
          "description": "Only check if files are formatted, do not write the changes to disk"
        },
        {
          "names": [
            "--no-color"
          ],
          "description": "Do not color output"
        },
        {
          "names": [
            "-v",
            "--verbose"
          ],
          "description": "More output per occurrence"
        },
        {
          "names": [
            "-p",
            "--package"
          ],
          "description": "Packages to run this command on",
          "takes_arg": true,
          "arg": {
            "name": "SPEC",
            "description": "Packages to run this command on, can be a concrete package name (`foobar`) or a prefix glob (`foo*`) [default: *]"
          }
        },
        {
          "names": [
            "-q",
            "--quiet"
          ],
          "description": "Less output per occurrence"
        },
        {
          "names": [
            "-w",
            "--workspace"
          ],
          "description": "Run for all packages in the workspace"
        },
        {
          "names": [
            "-h",
            "--help"
          ],
          "description": "Print help"
        }
      ]
    },
    {
      "name": "init",
      "description": "Create a new Scarb package in existing directory",
      "options": [
        {
          "names": [
            "--name"
          ],
          "description": "Set the resulting package name, defaults to the directory name",
          "takes_arg": true,
          "arg": {
            "name": "NAME",
            "description": "Name for the resulting package"
          }
        },
        {
          "names": [
            "--no-vcs"
          ],
          "description": "Do not initialize a new Git repository"
        },
        {
          "names": [
            "-v",
            "--verbose"
          ],
          "description": "More output per occurrence"
        },
        {
          "names": [
            "-q",
            "--quiet"
          ],
          "description": "Less output per occurrence"
        },
        {
          "names": [
            "-h",
            "--help"
          ],
          "description": "Print help"
        }
      ]
    },
    {
      "name": "metadata",
      "description": "Output the resolved dependencies of a package, the concrete used versions including overrides, in machine-readable format",
      "options": [
        {
          "names": [
            "--format-version"
          ],
          "description": "Format version",
          "takes_arg": true,
          "arg": {
            "name": "VERSION"
          },
          "is_required": true
        },
        {
          "names": [
            "--no-deps"
          ],
          "description": "Output information only about the workspace members and don't fetch dependencies"
        },
        {
          "names": [
            "-v",
            "--verbose"
          ],
          "description": "More output per occurrence"
        },
        {
          "names": [
            "-q",
            "--quiet"
          ],
          "description": "Less output per occurrence"
        },
        {
          "names": [
            "-h",
            "--help"
          ],
          "description": "Print help"
        }
      ]
    },
    {
      "name": "manifest-path",
      "description": "Print path to current Scarb.toml file to standard output",
      "options": [
        {
          "names": [
            "-v",
            "--verbose"
          ],
          "description": "More output per occurrence"
        },
        {
          "names": [
            "-q",
            "--quiet"
          ],
          "description": "Less output per occurrence"
        },
        {
          "names": [
            "-h",
            "--help"
          ],
          "description": "Print help"
        }
      ]
    },
    {
      "name": "new",
      "description": "Create a new Scarb package at <PATH>",
      "options": [
        {
          "names": [
            "--name"
          ],
          "description": "Set the resulting package name, defaults to the directory name",
          "takes_arg": true,
          "arg": {
            "name": "NAME",
            "description": "Name for the resulting package"
          }
        },
        {
          "names": [
            "--no-vcs"
          ],
          "description": "Do not initialize a new Git repository"
        },
        {
          "names": [
            "-v",
            "--verbose"
          ],
          "description": "More output per occurrence"
        },
        {
          "names": [
            "-q",
            "--quiet"
          ],
          "description": "Less output per occurrence"
        },
        {
          "names": [
            "-h",
            "--help"
          ],
          "description": "Print help"
        }
      ],
      "args": [
        {
          "name": "PATH",
          "description": "Path where the new Scarb package should be created"
        }
      ]
    },
    {
      "name": "run",
      "description": "Run arbitrary package scripts",
      "options": [
        {
          "names": [
            "-p",
            "--package"
          ],
          "description": "Packages to run this command on",
          "takes_arg": true,
          "arg": {
            "name": "SPEC",
            "description": "Packages to run this command on, can be a concrete package name (`foobar`) or a prefix glob (`foo*`) [default: *]"
          }
        },
        {
          "names": [
            "-v",
            "--verbose"
          ],
          "description": "More output per occurrence"
        },
        {
          "names": [
            "-w",
            "--workspace"
          ],
          "description": "Run for all packages in the workspace"
        },
        {
          "names": [
            "-q",
            "--quiet"
          ],
          "description": "Less output per occurrence"
        },
        {
          "names": [
            "-h",
            "--help"
          ],
          "description": "Print help"
        }
      ],
      "args": [
        {
          "name": "SCRIPT",
          "description": "The name of the script from manifest file to execute"
        },
        {
          "name": "ARGS",
          "description": "Arguments to pass to executed script",
          "is_variadic": true
        }
      ]
    },
    {
      "name": "test",
      "description": "Runs test in the local project, if it has a Scarb.toml manifest. If project is a virtual workspace, will run all tests by default",
      "options": [
        {
          "names": [
            "--workspace",
            "-w"
          ],
          "description": "Run for all packages in the workspace"
        },
        {
          "names": [
            "--filter",
            "-f"
          ],
          "description": "Runs the test with a specific filter",
          "takes_arg": true,
          "arg": {
            "name": "FILTER",
            "description": "The filter applied for names of test"
          }
        },
        {
          "names": [
            "--include-ignored"
          ],
          "description": "Run ignored and not ignored tests"
        },
        {
          "names": [
            "--ignored"
          ],
          "description": "Run only ignored tests"
        },
        {
          "names": [
            "--verbose",
            "-v"
          ],
          "description": "More output per occurrence"
        },
        {
          "names": [
            "--quiet",
            "-q"
          ],
          "description": "Less output per occurrence"
        },
        {
          "names": [
            "--help",
            "-h"
          ],
          "description": "Print help"
        },
        {
          "names": [
            "--package",
            "-p"
          ],
          "description": "Packages to run this command on",
          "takes_arg": true,
          "arg": {
            "name": "SPEC",
            "description": "Packages to run this command on, can be a concrete package name (`foobar`) or a prefix glob (`foo*`) [default: *]"
          }
        }
      ]
    }
  ],
  "options": [
    {
      "names": [
        "-h",
        "--help"
      ],
      "description": "Print help"
    }
  ]
}
