{
  "description": "Common west jobs: create a workspace, update projects, build a Zephyr application. Flash, debug, sysbuild and CMake pass-through arguments are not covered.",
  "name": "west",
  "subcommands": [
    {
      "name": "init",
      "description": "Clone a manifest repository into a new west workspace.",
      "options": [
        {
          "names": [
            "-m"
          ],
          "description": "Manifest repository URL",
          "args": {
            "name": "manifest_url",
            "isOptional": false
          }
        },
        {
          "names": [
            "--mr"
          ],
          "description": "Manifest revision",
          "args": {
            "name": "manifest_rev",
            "isOptional": false
          }
        },
        {
          "names": [
            "--mf"
          ],
          "description": "Manifest file",
          "args": {
            "name": "manifest_file",
            "isOptional": false
          }
        },
        {
          "names": [
            "-l"
          ],
          "description": "Use an existing local manifest repository"
        }
      ],
      "args": [
        {
          "name": "directory",
          "isOptional": true,
          "template": "folders"
        }
      ]
    },
    {
      "name": "update",
      "description": "Update the projects listed in the manifest.",
      "options": [
        {
          "names": [
            "-f"
          ],
          "description": "Fetch policy",
          "args": {
            "name": "fetch",
            "isOptional": false,
            "suggestions": [
              {
                "name": "always",
                "description": "Always"
              },
              {
                "name": "smart",
                "description": "Smart"
              }
            ]
          }
        },
        {
          "names": [
            "-k"
          ],
          "description": "Keep descendant branches"
        },
        {
          "names": [
            "-r"
          ],
          "description": "Rebase instead of detaching"
        },
        {
          "names": [
            "--stats"
          ],
          "description": "Print statistics"
        }
      ],
      "args": [
        {
          "name": "projects",
          "isOptional": true,
          "isVariadic": true
        }
      ]
    },
    {
      "name": "build",
      "description": "Build a Zephyr application for a board.",
      "options": [
        {
          "names": [
            "-b"
          ],
          "description": "Board",
          "args": {
            "name": "board",
            "isOptional": false
          }
        },
        {
          "names": [
            "--build-dir",
            "-d"
          ],
          "description": "Build directory",
          "args": {
            "name": "build_dir",
            "isOptional": false,
            "template": "folders"
          }
        },
        {
          "names": [
            "-t"
          ],
          "description": "Build target",
          "args": {
            "name": "target",
            "isOptional": false,
            "suggestions": [
              {
                "name": "run",
                "description": "run"
              },
              {
                "name": "pristine",
                "description": "pristine"
              },
              {
                "name": "help",
                "description": "help"
              }
            ]
          }
        },
        {
          "names": [
            "-p"
          ],
          "description": "Pristine build"
        },
        {
          "names": [
            "-c"
          ],
          "description": "Force CMake re-run"
        }
      ],
      "args": [
        {
          "name": "source_dir",
          "isOptional": true,
          "template": "folders"
        }
      ]
    }
  ]
}
