{
  "id": "rebar3",
  "name": "Rebar3",
  "homepage": "https://rebar3.org/",
  "description": "An Erlang build tool",
  "executables": [
    "rebar3"
  ],
  "dotfiles": {
    "paths": [
      "[configHome]/rebar3/rebar.config"
    ],
    "secret": []
  },
  "commands": {
    "format": 1,
    "label": "Build and test an Erlang project",
    "description": "The common rebar3 jobs: compile, clean, run EUnit or Common Test, and create a project from a template. Releases, dialyzer, plugins and profiles are not covered.",
    "quality": "ai-draft",
    "parser": {
      "end_of_options": "--",
      "interleave": "permute",
      "long_equals": false,
      "short_attached": false,
      "short_bundles": false
    },
    "subcommand": [
      {
        "path": [
          "compile"
        ],
        "label": "Compile the project",
        "description": "Compile project apps and dependencies.",
        "source": [
          {
            "id": "docs",
            "kind": "manual",
            "url": "https://rebar3.org/docs/commands/",
            "revision": "2026-10-27",
            "evidence": "compile\n-d/--deps_only  Only compile dependencies, no project apps will be built\n"
          }
        ],
        "field": [
          {
            "id": "deps_only",
            "label": "Dependencies only",
            "type": "boolean",
            "option": [
              "--deps_only",
              "-d"
            ],
            "sources": [
              "docs"
            ]
          }
        ],
        "task": [
          {
            "id": "compile",
            "label": "Compile the project",
            "fields": [
              "deps_only"
            ],
            "required": []
          }
        ],
        "group": [
          {
            "id": "basic",
            "label": "Basic",
            "fields": [
              "deps_only"
            ]
          }
        ]
      },
      {
        "path": [
          "clean"
        ],
        "label": "Clean build output",
        "description": "Remove compiled BEAM files.",
        "source": [
          {
            "id": "docs",
            "kind": "manual",
            "url": "https://rebar3.org/docs/commands/",
            "revision": "2026-10-27",
            "evidence": "clean\n--all/-a  Clean all apps, including the dependencies\n--apps  Clean a specific list of apps or dependencies\n"
          }
        ],
        "field": [
          {
            "id": "all",
            "label": "Include dependencies",
            "type": "boolean",
            "option": [
              "--all",
              "-a"
            ],
            "effect": "delete",
            "sources": [
              "docs"
            ]
          },
          {
            "id": "apps",
            "label": "Apps (comma separated)",
            "type": "string",
            "option": [
              "--apps"
            ],
            "sources": [
              "docs"
            ]
          }
        ],
        "task": [
          {
            "id": "clean",
            "label": "Clean build output",
            "fields": [
              "all",
              "apps"
            ],
            "required": []
          }
        ],
        "group": [
          {
            "id": "basic",
            "label": "Basic",
            "fields": [
              "all",
              "apps"
            ]
          }
        ]
      },
      {
        "path": [
          "eunit"
        ],
        "label": "Run EUnit tests",
        "description": "Run EUnit tests on project apps.",
        "source": [
          {
            "id": "docs",
            "kind": "manual",
            "url": "https://rebar3.org/docs/commands/",
            "revision": "2026-10-27",
            "evidence": "eunit\n--application  Application test suites to run.\n-c, --cover  Generate cover data. Defaults to false\n"
          }
        ],
        "field": [
          {
            "id": "application",
            "label": "Applications (comma separated)",
            "type": "string",
            "option": [
              "--application"
            ],
            "sources": [
              "docs"
            ]
          },
          {
            "id": "cover",
            "label": "Generate cover data",
            "type": "boolean",
            "option": [
              "--cover",
              "-c"
            ],
            "sources": [
              "docs"
            ]
          }
        ],
        "task": [
          {
            "id": "eunit",
            "label": "Run EUnit tests",
            "fields": [
              "application",
              "cover"
            ],
            "required": []
          }
        ],
        "group": [
          {
            "id": "basic",
            "label": "Basic",
            "fields": [
              "application",
              "cover"
            ]
          }
        ]
      },
      {
        "path": [
          "ct"
        ],
        "label": "Run Common Test",
        "description": "Run Common Test suites under test/.",
        "source": [
          {
            "id": "docs",
            "kind": "manual",
            "url": "https://rebar3.org/docs/commands/",
            "revision": "2026-10-27",
            "evidence": "ct\n--suite  Compile and run all test suites specified.\n--group  Test groups to run.\n--case  List of test cases to run.\n--cover, -c\n--verbose, -v\n"
          }
        ],
        "field": [
          {
            "id": "suite",
            "label": "Suites (comma separated paths)",
            "type": "string",
            "option": [
              "--suite"
            ],
            "sources": [
              "docs"
            ]
          },
          {
            "id": "group",
            "label": "Groups (comma separated)",
            "type": "string",
            "option": [
              "--group"
            ],
            "sources": [
              "docs"
            ]
          },
          {
            "id": "case",
            "label": "Cases (comma separated)",
            "type": "string",
            "option": [
              "--case"
            ],
            "sources": [
              "docs"
            ]
          },
          {
            "id": "cover",
            "label": "Generate cover data",
            "type": "boolean",
            "option": [
              "--cover",
              "-c"
            ],
            "sources": [
              "docs"
            ]
          },
          {
            "id": "verbose",
            "label": "Verbose",
            "type": "boolean",
            "option": [
              "--verbose",
              "-v"
            ],
            "sources": [
              "docs"
            ]
          }
        ],
        "task": [
          {
            "id": "ct",
            "label": "Run Common Test",
            "fields": [
              "suite",
              "group",
              "case",
              "cover",
              "verbose"
            ],
            "required": []
          }
        ],
        "group": [
          {
            "id": "basic",
            "label": "Basic",
            "fields": [
              "suite",
              "group",
              "case",
              "cover",
              "verbose"
            ]
          }
        ]
      },
      {
        "path": [
          "new"
        ],
        "label": "Create a project",
        "description": "Create a project from a template such as app, lib or release.",
        "source": [
          {
            "id": "docs",
            "kind": "manual",
            "url": "https://rebar3.org/docs/commands/",
            "revision": "2026-10-27",
            "evidence": "rebar3 new <template> <project-name>\n--force, -f  Overwrite existing files.\n"
          }
        ],
        "field": [
          {
            "id": "template",
            "label": "Template",
            "type": "string",
            "position": 0,
            "suggestions": [
              {
                "value": "app",
                "label": "app"
              },
              {
                "value": "lib",
                "label": "lib"
              },
              {
                "value": "release",
                "label": "release"
              }
            ],
            "min": 1,
            "sources": [
              "docs"
            ]
          },
          {
            "id": "name",
            "label": "Project name",
            "type": "string",
            "position": 1,
            "min": 1,
            "sources": [
              "docs"
            ]
          },
          {
            "id": "force",
            "label": "Overwrite existing files",
            "type": "boolean",
            "option": [
              "--force",
              "-f"
            ],
            "effect": "overwrite",
            "sources": [
              "docs"
            ]
          }
        ],
        "task": [
          {
            "id": "new",
            "label": "Create a project",
            "fields": [
              "template",
              "name"
            ],
            "required": [
              "template",
              "name"
            ]
          }
        ],
        "group": [
          {
            "id": "basic",
            "label": "Basic",
            "fields": [
              "template",
              "name",
              "force"
            ]
          }
        ]
      }
    ]
  }
}
