{
  "name": "exercism",
  "description": "Solve coding exercises in your chosen programming languages",
  "subcommands": [
    {
      "name": "configure",
      "aliases": [
        "c"
      ],
      "description": "Configure the command-line client",
      "options": [
        {
          "names": [
            "-a",
            "--api"
          ],
          "description": "API base url",
          "takes_arg": true,
          "arg": {
            "name": "url"
          }
        },
        {
          "names": [
            "--no-verify"
          ],
          "description": "Skip online token authorization check"
        },
        {
          "names": [
            "-s",
            "--show"
          ],
          "description": "Show the current configuration"
        },
        {
          "names": [
            "-t",
            "--token"
          ],
          "description": "Auth token used to connect to the site",
          "takes_arg": true,
          "arg": {
            "name": "token"
          }
        },
        {
          "names": [
            "-w",
            "--workspace"
          ],
          "description": "Directory for exercism exercises",
          "takes_arg": true,
          "arg": {
            "name": "path",
            "template": "folders"
          }
        }
      ]
    },
    {
      "name": "download",
      "aliases": [
        "d"
      ],
      "description": "Download an exercise",
      "options": [
        {
          "names": [
            "-e",
            "--exercise"
          ],
          "description": "The exercise slug",
          "takes_arg": true,
          "arg": {
            "name": "exercise"
          }
        },
        {
          "names": [
            "-T",
            "--team"
          ],
          "description": "The team slug",
          "takes_arg": true,
          "arg": {
            "name": "team"
          }
        },
        {
          "names": [
            "-t",
            "--track"
          ],
          "description": "The track ID",
          "takes_arg": true,
          "arg": {
            "name": "track"
          }
        },
        {
          "names": [
            "-u",
            "--uuid"
          ],
          "description": "The solution UUID",
          "takes_arg": true,
          "arg": {
            "name": "uuid"
          }
        }
      ]
    },
    {
      "name": "help",
      "description": "Help about any command"
    },
    {
      "name": "open",
      "aliases": [
        "o"
      ],
      "description": "Open an exercise on the website",
      "args": [
        {
          "name": "path",
          "template": "folders"
        }
      ]
    },
    {
      "name": "prepare",
      "aliases": [
        "p"
      ],
      "description": "Prepare does setup for Exercism and its tracks"
    },
    {
      "name": "submit",
      "aliases": [
        "s"
      ],
      "description": "Submit your solution to an exercise",
      "args": [
        {
          "name": "file",
          "description": "The files you want to submit",
          "is_variadic": true,
          "template": "filepaths"
        }
      ]
    },
    {
      "name": "troubleshoot",
      "aliases": [
        "t",
        "debug"
      ],
      "description": "Troubleshoot does a diagnostic self-check",
      "options": [
        {
          "names": [
            "-f",
            "--full-api-key"
          ],
          "description": "Display the user's full API key"
        }
      ]
    },
    {
      "name": "upgrade",
      "aliases": [
        "u"
      ],
      "description": "Upgrade to the latest version of the CLI"
    },
    {
      "name": "version",
      "aliases": [
        "v"
      ],
      "description": "Version outputs the version of CLI"
    },
    {
      "name": "workspace",
      "aliases": [
        "w"
      ],
      "description": "Print out the path to your Exercism workspace"
    }
  ],
  "options": [
    {
      "names": [
        "--help",
        "-h"
      ],
      "description": "Help for this command"
    },
    {
      "names": [
        "--timeout"
      ],
      "description": "Override the default HTTP timeout",
      "takes_arg": true,
      "arg": {
        "name": "value"
      }
    },
    {
      "names": [
        "--unmask-token"
      ],
      "description": "Will unmask the API during a request/response dump"
    },
    {
      "names": [
        "--verbose",
        "-v"
      ],
      "description": "Verbose output"
    }
  ]
}
