{
  "name": "mix",
  "description": "Build tool for Elixir",
  "subcommands": [
    {
      "name": "new",
      "description": "Creates a new Elixir project at the given path",
      "options": [
        {
          "names": [
            "-h",
            "--help"
          ],
          "description": "Output usage information"
        },
        {
          "names": [
            "--app"
          ],
          "description": "Name the OTP application for the project",
          "takes_arg": true,
          "arg": {
            "name": "app"
          }
        },
        {
          "names": [
            "--modules"
          ],
          "description": "Name the modules in the generated code skeleton",
          "takes_arg": true,
          "arg": {
            "name": "module"
          }
        },
        {
          "names": [
            "--sup"
          ],
          "description": "Generate an OTP application skeleton including a supervision tree. Normally an app is generated without a supervisor and without the app callback"
        },
        {
          "names": [
            "--umbrella"
          ],
          "description": "Generate an umbrella project"
        }
      ],
      "args": [
        {
          "name": "path"
        }
      ]
    },
    {
      "name": "run",
      "description": "Starts the current application and runs code",
      "options": [
        {
          "names": [
            "--config"
          ],
          "description": "Loads the given configuration files",
          "takes_arg": true,
          "arg": {
            "name": "file",
            "template": "filepaths"
          }
        },
        {
          "names": [
            "-e",
            "--eval"
          ],
          "description": "Evaluates the given code",
          "takes_arg": true,
          "arg": {
            "name": "code",
            "description": "String containing code to execute"
          }
        },
        {
          "names": [
            "-r",
            "--require"
          ],
          "description": "Executes the given pattern/file",
          "takes_arg": true,
          "arg": {
            "name": "file|pattern",
            "description": "The file|pattern to execute"
          }
        },
        {
          "names": [
            "-p",
            "--parallel"
          ],
          "description": "Executes the given pattern/file",
          "takes_arg": true,
          "arg": {
            "name": "file|pattern"
          }
        },
        {
          "names": [
            "--preload-modules"
          ],
          "description": "Preloads all modules defined in applications"
        },
        {
          "names": [
            "--no-compile"
          ],
          "description": "Does not compile even if files require compilation"
        },
        {
          "names": [
            "--no-deps-check"
          ],
          "description": "Does not check dependencies"
        },
        {
          "names": [
            "--no-archives-check"
          ],
          "description": "Does not check archives"
        },
        {
          "names": [
            "--no-halt"
          ],
          "description": "Does not halt the system after running the command"
        },
        {
          "names": [
            "--no-mix-exs"
          ],
          "description": "Allows the command to run even if there is no mix.exs"
        },
        {
          "names": [
            "--no-start"
          ],
          "description": "Does not start applications after compilation"
        },
        {
          "names": [
            "--no-elixir-version-check"
          ],
          "description": "Does not check the Elixir version from mix.exs"
        }
      ],
      "args": [
        {
          "name": "file"
        }
      ]
    },
    {
      "name": "help",
      "description": "Prints documentation for a given task (Lists all the tasks if no task is specified)",
      "options": [
        {
          "names": [
            "--search"
          ],
          "description": "Prints all tasks and aliases that contain 'pattern' in the name",
          "takes_arg": true,
          "arg": {
            "name": "pattern"
          }
        },
        {
          "names": [
            "--names"
          ],
          "description": "Prints all task names and aliases"
        }
      ],
      "args": [
        {
          "name": "task",
          "description": "Prints documentation for a given task"
        }
      ]
    }
  ],
  "options": [
    {
      "names": [
        "-h",
        "--help"
      ],
      "description": "Shows usage information"
    },
    {
      "names": [
        "-v",
        "--version"
      ],
      "description": "Shows versioning information"
    }
  ],
  "args": [
    {
      "name": "task",
      "description": "Invokes the task (mix run) in a project"
    }
  ]
}
