{
  "id": "sbt",
  "name": "sbt",
  "homepage": "https://www.scala-sbt.org",
  "description": "sbt is built for Scala and Java projects.",
  "icon": "https://www.scala-sbt.org/assets/favicon-96x96.png",
  "executables": [
    "sbt",
    "sbtn"
  ],
  "dotfiles": {
    "paths": [
      "~/.sbt/1.0/*.sbt",
      "~/.sbt/1.0/plugins/",
      "~/.sbt/repositories"
    ],
    "exclude": [
      "~/.sbt/1.0/plugins/target/",
      "~/.sbt/1.0/plugins/project/"
    ],
    "secret": [
      "~/.sbt/.credentials"
    ]
  },
  "commands": {
    "format": 1,
    "label": "Run sbt",
    "description": "Run sbt commands such as compile or test, optionally non-interactively. JVM options (-D, -J) and the sbt shell commands themselves are not modelled.",
    "quality": "ai-draft",
    "parser": {
      "end_of_options": "--",
      "interleave": "permute",
      "long_equals": true,
      "short_attached": false,
      "short_bundles": false
    },
    "source": [
      {
        "id": "script",
        "kind": "help",
        "url": "https://github.com/sbt/sbt/blob/develop/sbt",
        "revision": "develop 2026-10 (usage text of the runner script)",
        "evidence": "  -v | --verbose      this runner is chattier\n  --client            run sbtn (native client), and start sbt server in the background\n  --no-colors         disable ANSI color codes\n  --color=auto|always|true|false|never\n                      enable or disable ANSI color codes      (sbt 1.3 and above)\n  --supershell=auto|always|true|false|never\n                      enable or disable supershell            (sbt 1.3 and above)\n  --timings           display task timings report on shutdown\n  --mem    <integer>  set memory options (default: $sbt_default_mem)\n  --jvm-debug <port>  Turn on JVM debugging, open at the given port.\n  --batch             disable interactive mode\n  -d | --debug        set sbt log level to debug\n  --sbt-version  <version>   use the specified version of sbt\n  --java-home <path>         alternate JAVA_HOME\n"
      }
    ],
    "field": [
      {
        "id": "commands",
        "label": "sbt commands",
        "description": "Tasks to run in order, for example clean, compile, test. Quote a command that contains spaces. Leave empty for the interactive shell.",
        "type": "string",
        "position": 0,
        "multiple": true,
        "sources": [
          "script"
        ]
      },
      {
        "id": "batch",
        "label": "Batch (non-interactive)",
        "type": "boolean",
        "option": [
          "--batch"
        ],
        "sources": [
          "script"
        ]
      },
      {
        "id": "client",
        "label": "Use native client (sbtn)",
        "type": "boolean",
        "option": [
          "--client"
        ],
        "sources": [
          "script"
        ]
      },
      {
        "id": "sbt_version",
        "label": "sbt version",
        "type": "string",
        "option": [
          "--sbt-version"
        ],
        "sources": [
          "script"
        ]
      },
      {
        "id": "java_home",
        "label": "JAVA_HOME",
        "type": "path",
        "option": [
          "--java-home"
        ],
        "path": {
          "kind": "directory",
          "role": "input"
        },
        "sources": [
          "script"
        ]
      },
      {
        "id": "mem",
        "label": "Memory (MB)",
        "type": "integer",
        "option": [
          "--mem"
        ],
        "sources": [
          "script"
        ]
      },
      {
        "id": "jvm_debug",
        "label": "JVM debug port",
        "type": "integer",
        "option": [
          "--jvm-debug"
        ],
        "sources": [
          "script"
        ]
      },
      {
        "id": "color",
        "label": "Colors",
        "type": "enum",
        "option": [
          "--color"
        ],
        "choices": [
          {
            "value": "auto",
            "label": "Auto"
          },
          {
            "value": "always",
            "label": "Always"
          },
          {
            "value": "true",
            "label": "True"
          },
          {
            "value": "false",
            "label": "False"
          },
          {
            "value": "never",
            "label": "Never"
          }
        ],
        "sources": [
          "script"
        ]
      },
      {
        "id": "supershell",
        "label": "Supershell",
        "type": "enum",
        "option": [
          "--supershell"
        ],
        "choices": [
          {
            "value": "auto",
            "label": "Auto"
          },
          {
            "value": "always",
            "label": "Always"
          },
          {
            "value": "true",
            "label": "True"
          },
          {
            "value": "false",
            "label": "False"
          },
          {
            "value": "never",
            "label": "Never"
          }
        ],
        "sources": [
          "script"
        ]
      },
      {
        "id": "timings",
        "label": "Show task timings",
        "type": "boolean",
        "option": [
          "--timings"
        ],
        "sources": [
          "script"
        ]
      },
      {
        "id": "debug",
        "label": "Debug log level",
        "type": "boolean",
        "option": [
          "--debug",
          "-d"
        ],
        "sources": [
          "script"
        ]
      },
      {
        "id": "verbose",
        "label": "Verbose runner",
        "type": "boolean",
        "option": [
          "--verbose",
          "-v"
        ],
        "sources": [
          "script"
        ]
      }
    ],
    "task": [
      {
        "id": "batch-run",
        "label": "Run commands in batch mode",
        "set": {
          "batch": [
            true
          ]
        },
        "lock": [
          "batch"
        ],
        "fields": [
          "commands",
          "batch",
          "sbt_version",
          "timings",
          "color"
        ],
        "required": [
          "commands"
        ]
      },
      {
        "id": "shell",
        "label": "Start the interactive shell",
        "fields": [
          "client",
          "sbt_version",
          "mem"
        ]
      }
    ],
    "group": [
      {
        "id": "basic",
        "label": "Basic",
        "fields": [
          "commands",
          "batch",
          "client",
          "sbt_version",
          "timings"
        ]
      },
      {
        "id": "advanced",
        "label": "Advanced",
        "fields": [
          "java_home",
          "mem",
          "jvm_debug",
          "color",
          "supershell",
          "debug",
          "verbose"
        ]
      }
    ]
  }
}
