{
  "$id": "https://mise.en.dev/schema/mise.json",
  "$schema": "https://json-schema.org/draft/2019-09/schema#",
  "title": "mise",
  "type": "object",
  "$defs": {
    "task_dependency_item": {
      "description": "task name and args",
      "oneOf": [
        {
          "type": "string"
        },
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        {
          "type": "object",
          "properties": {
            "task": {
              "type": "string"
            },
            "args": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "env": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              }
            }
          },
          "required": ["task"],
          "additionalProperties": false
        }
      ]
    },
    "os_filter_item": {
      "description": "operating system or os/arch pair to install on",
      "type": "string",
      "pattern": "^[A-Za-z0-9_.+-]+(/[A-Za-z0-9_.+-]+)?$",
      "examples": ["linux", "macos", "windows", "macos/arm64", "linux/x64"]
    },
    "os_filter": {
      "description": "operating system filters to install on",
      "oneOf": [
        {
          "$ref": "#/$defs/os_filter_item"
        },
        {
          "type": "array",
          "items": {
            "$ref": "#/$defs/os_filter_item"
          }
        }
      ]
    },
    "env_directive": {
      "type": "object",
      "properties": {
        "path": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          ]
        },
        "paths": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "tools": {
          "type": "boolean",
          "description": "load tools before resolving"
        },
        "redact": {
          "type": "boolean",
          "description": "redact the value from logs"
        },
        "required": {
          "oneOf": [
            {
              "type": "boolean",
              "description": "require this environment variable to be defined before mise runs or in a later config file"
            },
            {
              "type": "string",
              "description": "require this environment variable with user help text on how to set it"
            }
          ],
          "description": "require this environment variable to be defined before mise runs or in a later config file. Cannot be used with empty string values or value=false. Can be a boolean or a help string."
        }
      },
      "oneOf": [
        {
          "type": "object",
          "properties": {
            "path": {
              "$ref": "#/$defs/env_directive/properties/path"
            }
          },
          "required": ["path"]
        },
        {
          "type": "object",
          "properties": {
            "paths": {
              "$ref": "#/$defs/env_directive/properties/paths"
            }
          },
          "required": ["paths"]
        }
      ]
    },
    "env": {
      "additionalProperties": {
        "oneOf": [
          {
            "type": "object",
            "properties": {
              "value": {
                "oneOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "number"
                  },
                  {
                    "type": "boolean"
                  }
                ]
              },
              "tools": {
                "type": "boolean",
                "description": "load tools before resolving"
              },
              "redact": {
                "type": "boolean",
                "description": "redact the value from logs"
              },
              "required": {
                "oneOf": [
                  {
                    "type": "boolean",
                    "description": "require this environment variable to be defined before mise runs or in a later config file"
                  },
                  {
                    "type": "string",
                    "description": "require this environment variable with user help text on how to set it"
                  }
                ],
                "description": "require this environment variable to be defined before mise runs or in a later config file. Cannot be used with empty string values or value=false. Can be a boolean or a help string."
              }
            },
            "additionalProperties": false
          },
          {
            "type": "object",
            "properties": {
              "age": {
                "type": "string",
                "description": "[experimental] age-encrypted value (simplified format)"
              },
              "tools": {
                "type": "boolean",
                "description": "load tools before resolving"
              },
              "redact": {
                "type": "boolean",
                "description": "redact the value from logs"
              },
              "required": {
                "oneOf": [
                  {
                    "type": "boolean",
                    "description": "require this environment variable to be defined before mise runs or in a later config file"
                  },
                  {
                    "type": "string",
                    "description": "require this environment variable with user help text on how to set it"
                  }
                ],
                "description": "require this environment variable to be defined before mise runs or in a later config file. Cannot be used with empty string values or value=false. Can be a boolean or a help string."
              }
            },
            "required": ["age"],
            "additionalProperties": false,
            "description": "[experimental] age-encrypted environment variable"
          },
          {
            "type": "object",
            "properties": {
              "age": {
                "type": "object",
                "properties": {
                  "value": {
                    "type": "string",
                    "description": "[experimental] age-encrypted value"
                  },
                  "format": {
                    "type": "string",
                    "enum": ["raw", "zstd"],
                    "description": "[experimental] compression format for the encrypted value"
                  },
                  "tools": {
                    "type": "boolean",
                    "description": "load tools before resolving"
                  },
                  "redact": {
                    "type": "boolean",
                    "description": "redact the value from logs"
                  },
                  "required": {
                    "oneOf": [
                      {
                        "type": "boolean",
                        "description": "require this environment variable to be defined before mise runs or in a later config file"
                      },
                      {
                        "type": "string",
                        "description": "require this environment variable with user help text on how to set it"
                      }
                    ],
                    "description": "require this environment variable to be defined before mise runs or in a later config file. Cannot be used with empty string values or value=false. Can be a boolean or a help string."
                  }
                },
                "required": ["value"],
                "additionalProperties": false,
                "description": "[experimental] age-encrypted value (complex format)"
              }
            },
            "required": ["age"],
            "additionalProperties": false,
            "description": "[experimental] age-encrypted environment variable"
          },
          {
            "type": "string"
          },
          {
            "type": "number"
          },
          {
            "type": "boolean"
          }
        ]
      },
      "description": "environment variables",
      "properties": {
        "_": {
          "description": "environment modules",
          "additionalProperties": true,
          "properties": {
            "file": {
              "oneOf": [
                {
                  "$ref": "#/$defs/env_directive"
                },
                {
                  "description": "dotenv file to load",
                  "type": "string"
                },
                {
                  "description": "dotenv files to load",
                  "type": "array",
                  "items": {
                    "oneOf": [
                      {
                        "description": "dotenv file to load",
                        "type": "string"
                      },
                      {
                        "$ref": "#/$defs/env_directive"
                      }
                    ]
                  }
                }
              ]
            },
            "path": {
              "oneOf": [
                {
                  "type": "object",
                  "properties": {
                    "path": {
                      "oneOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        }
                      ]
                    },
                    "paths": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "tools": {
                      "type": "boolean",
                      "description": "load tools before resolving"
                    }
                  },
                  "oneOf": [
                    {
                      "type": "object",
                      "properties": {
                        "path": {
                          "oneOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            }
                          ]
                        }
                      },
                      "required": ["path"]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "paths": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        }
                      },
                      "required": ["paths"]
                    }
                  ]
                },
                {
                  "description": "PATH entry to add",
                  "type": "string"
                },
                {
                  "description": "PATH entries to add",
                  "type": "array",
                  "items": {
                    "oneOf": [
                      {
                        "description": "PATH entry to add",
                        "type": "string"
                      },
                      {
                        "type": "object",
                        "properties": {
                          "path": {
                            "oneOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              }
                            ]
                          },
                          "tools": {
                            "type": "boolean",
                            "description": "load tools before resolving"
                          }
                        }
                      }
                    ]
                  }
                }
              ]
            },
            "python": {
              "description": "python environment",
              "properties": {
                "venv": {
                  "oneOf": [
                    {
                      "description": "path to python virtual environment to use",
                      "type": "string"
                    },
                    {
                      "description": "virtualenv options",
                      "properties": {
                        "create": {
                          "default": false,
                          "description": "create a new virtual environment if one does not exist",
                          "type": "boolean"
                        },
                        "path": {
                          "description": "path to python virtual environment to use",
                          "type": "string"
                        },
                        "python": {
                          "description": "python version to use",
                          "type": "string"
                        },
                        "python_create_args": {
                          "description": "additional arguments to pass to python when creating a virtual environment",
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "uv_create_args": {
                          "description": "additional arguments to pass to uv when creating a virtual environment",
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        }
                      },
                      "required": ["path"],
                      "type": "object"
                    }
                  ]
                }
              },
              "type": "object"
            },
            "source": {
              "oneOf": [
                {
                  "$ref": "#/$defs/env_directive"
                },
                {
                  "description": "bash script to load",
                  "type": "string"
                },
                {
                  "description": "bash scripts to load",
                  "type": "array",
                  "items": {
                    "oneOf": [
                      {
                        "description": "bash script to load",
                        "type": "string"
                      },
                      {
                        "$ref": "#/$defs/env_directive"
                      }
                    ]
                  }
                }
              ]
            }
          },
          "type": "object"
        }
      },
      "type": "object"
    },
    "settings": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "activate_aggressive": {
          "description": "Pushes tools' bin-paths to the front of PATH instead of allowing modifications of PATH after activation to take precedence.",
          "type": "boolean"
        },
        "age": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "identity_files": {
              "description": "[experimental] List of age identity files to use for decryption.",
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "key_file": {
              "description": "[experimental] Path to the age private key file to use for encryption/decryption.",
              "type": "string"
            },
            "ssh_identity_files": {
              "description": "[experimental] List of SSH identity files to use for age decryption.",
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "strict": {
              "default": true,
              "description": "If true, fail when age decryption fails (including when age is not available, the key is missing, or the key is invalid). If false, skip decryption and continue in these cases.",
              "type": "boolean"
            }
          }
        },
        "all_compile": {
          "description": "do not use precompiled binaries for any tool",
          "type": "boolean"
        },
        "always_keep_download": {
          "description": "keep downloaded files after installation for debugging",
          "type": "boolean"
        },
        "always_keep_install": {
          "description": "should mise keep install files after installation even if the installation fails",
          "type": "boolean"
        },
        "aqua": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "baked_registry": {
              "default": true,
              "description": "Use baked-in aqua registry.",
              "type": "boolean"
            },
            "cosign": {
              "default": true,
              "description": "Use cosign to verify aqua tool signatures.",
              "type": "boolean"
            },
            "cosign_extra_args": {
              "description": "Extra arguments to pass to cosign when verifying aqua tool signatures.",
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "github_attestations": {
              "default": true,
              "description": "Enable GitHub Artifact Attestations verification for aqua tools.",
              "type": "boolean"
            },
            "minisign": {
              "default": true,
              "description": "Use minisign to verify aqua tool signatures.",
              "type": "boolean"
            },
            "registry_url": {
              "description": "URL to fetch aqua registry from.",
              "type": "string"
            },
            "slsa": {
              "default": true,
              "description": "Use SLSA to verify aqua tool signatures.",
              "type": "boolean"
            }
          }
        },
        "arch": {
          "description": "Architecture to use for precompiled binaries.",
          "type": "string"
        },
        "asdf_compat": {
          "description": "set to true to ensure .tool-versions will be compatible with asdf",
          "type": "boolean",
          "deprecated": true
        },
        "auto_install": {
          "default": true,
          "description": "Automatically install missing tools when running `mise x`, `mise run`, or as part of the 'not found' handler.",
          "type": "boolean"
        },
        "auto_install_disable_tools": {
          "description": "List of tools to skip automatically installing when running `mise x`, `mise run`, or as part of the 'not found' handler.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "cache_prune_age": {
          "default": "30d",
          "description": "Delete files in cache that have not been accessed in this duration",
          "type": "string"
        },
        "cargo": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "binstall": {
              "default": true,
              "description": "Use cargo-binstall instead of cargo install if available",
              "type": "boolean"
            },
            "binstall_only": {
              "default": false,
              "description": "Only use cargo-binstall for installation, fail if not available.",
              "type": "boolean"
            },
            "registry_name": {
              "description": "Name of the cargo registry to use.",
              "type": "string"
            }
          }
        },
        "cd": {
          "description": "Path to change to after launching mise",
          "type": "string"
        },
        "ceiling_paths": {
          "default": [],
          "description": "Directories where mise stops searching for config files.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "ci": {
          "default": "false",
          "description": "Set to true if running in a CI environment",
          "type": "boolean"
        },
        "color": {
          "default": true,
          "description": "Use color in mise terminal output",
          "type": "boolean"
        },
        "color_theme": {
          "default": "default",
          "description": "Theme for interactive prompts (default/charm, base16, catppuccin, dracula)",
          "type": "string",
          "enum": ["default", "charm", "base16", "catppuccin", "dracula"]
        },
        "conda": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "channel": {
              "default": "conda-forge",
              "description": "Default channel for conda packages.",
              "type": "string"
            }
          }
        },
        "debug": {
          "description": "Sets log level to debug",
          "type": "boolean"
        },
        "default_config_filename": {
          "default": "mise.toml",
          "description": "The default config filename read. `mise use` and other commands that create new config files will use this value. This must be an env var.",
          "type": "string"
        },
        "default_tool_versions_filename": {
          "default": ".tool-versions",
          "description": "The default .tool-versions filename read. This will not ignore .tool-versions—use override_tool_versions_filename for that. This must be an env var.",
          "type": "string"
        },
        "disable_backends": {
          "default": [],
          "description": "Backends to disable such as `asdf` or `pipx`",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "disable_default_registry": {
          "description": "Disable the default mapping of short tool names like `php` -> `asdf:mise-plugins/asdf-php`. This parameter disables only for the backends `vfox` and `asdf`.",
          "type": "boolean"
        },
        "disable_hints": {
          "default": [],
          "description": "Turns off helpful hints when using different mise features",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "disable_tools": {
          "default": [],
          "description": "Tools defined in mise.toml that should be ignored",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "dotnet": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "cli_telemetry_optout": {
              "description": "Set DOTNET_CLI_TELEMETRY_OPTOUT to opt out of .NET CLI telemetry.",
              "type": "boolean"
            },
            "dotnet_root": {
              "description": "Path to the shared .NET SDK root directory.",
              "type": "string"
            },
            "isolated": {
              "default": false,
              "description": "Install each .NET SDK version in its own isolated directory.",
              "type": "boolean"
            },
            "package_flags": {
              "default": [],
              "description": "Extends dotnet search and install abilities.",
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "registry_url": {
              "default": "https://api.nuget.org/v3/index.json",
              "description": "URL to fetch dotnet tools from.",
              "type": "string"
            }
          }
        },
        "enable_tools": {
          "description": "Tools defined in mise.toml that should be used; unset enables all tools and empty disables all tools",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "env": {
          "default": [],
          "description": "Env to use for mise.<MISE_ENV>.toml files.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "env_cache": {
          "default": false,
          "description": "[experimental] Enable environment caching for nested mise invocations",
          "type": "boolean"
        },
        "env_cache_ttl": {
          "default": "1h",
          "description": "TTL for cached environments",
          "type": "string"
        },
        "env_file": {
          "description": "Path to a file containing environment variables to automatically load.",
          "type": "string"
        },
        "env_shell_expand": {
          "description": "Enable shell-style variable expansion in env values (e.g., $FOO, ${BAR:-default})",
          "type": "boolean"
        },
        "erlang": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "compile": {
              "description": "If true, compile erlang from source. If false, use precompiled binaries. If not set, use precompiled binaries if available.",
              "type": "boolean"
            }
          }
        },
        "exec_auto_install": {
          "default": true,
          "description": "Automatically install missing tools when running `mise x`.",
          "type": "boolean"
        },
        "experimental": {
          "description": "Enable experimental mise features which are incomplete or unstable—breakings changes may occur",
          "type": "boolean"
        },
        "fetch_remote_versions_cache": {
          "default": "1h",
          "description": "How long to cache remote versions for tools.",
          "type": "string"
        },
        "fetch_remote_versions_timeout": {
          "default": "20s",
          "description": "Timeout in seconds for HTTP requests to fetch new tool versions in mise.",
          "type": "string"
        },
        "forgejo": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "credential_command": {
              "default": "",
              "description": "Shell command to run to obtain a Forgejo token for mise.",
              "type": "string"
            },
            "fj_cli_tokens": {
              "default": true,
              "description": "Read Forgejo tokens from the fj CLI config.",
              "type": "boolean"
            },
            "use_git_credentials": {
              "default": false,
              "description": "Use git credential helpers to obtain Forgejo tokens.",
              "type": "boolean"
            }
          }
        },
        "github": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "credential_command": {
              "default": "",
              "description": "Shell command to run to obtain a GitHub token for mise.",
              "type": "string"
            },
            "gh_cli_tokens": {
              "default": true,
              "description": "Read GitHub tokens from the gh CLI's hosts.yml config.",
              "type": "boolean"
            },
            "github_attestations": {
              "default": true,
              "description": "Enable GitHub Artifact Attestations verification for github backend tools.",
              "type": "boolean"
            },
            "slsa": {
              "default": true,
              "description": "Enable SLSA provenance verification for github backend tools.",
              "type": "boolean"
            },
            "use_git_credentials": {
              "default": false,
              "description": "Use git credential helpers to obtain GitHub tokens.",
              "type": "boolean"
            }
          }
        },
        "github_attestations": {
          "default": true,
          "description": "Enable GitHub Artifact Attestations verification for supported tools.",
          "type": "boolean"
        },
        "gitlab": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "credential_command": {
              "default": "",
              "description": "Shell command to run to obtain a GitLab token for mise.",
              "type": "string"
            },
            "glab_cli_tokens": {
              "default": true,
              "description": "Read GitLab tokens from the glab CLI config.",
              "type": "boolean"
            },
            "use_git_credentials": {
              "default": false,
              "description": "Use git credential helpers to obtain GitLab tokens.",
              "type": "boolean"
            }
          }
        },
        "gix": {
          "default": true,
          "description": "Use gix for git operations, set to false to shell out to git.",
          "type": "boolean"
        },
        "global_config_file": {
          "description": "Path to the global mise config file. Default is `~/.config/mise/config.toml`. This must be an env var.",
          "type": "string"
        },
        "global_config_root": {
          "description": "Path which is used as `{{config_root}}` for the global config file. Default is `$HOME`. This must be an env var.",
          "type": "string"
        },
        "go": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "default_packages_file": {
              "default": "~/.default-go-packages",
              "description": "Path to a file containing default go packages to install when installing go.",
              "type": "string"
            },
            "download_mirror": {
              "default": "https://dl.google.com/go",
              "description": "Mirror to download go sdk tarballs from.",
              "type": "string"
            },
            "repo": {
              "default": "https://github.com/golang/go",
              "description": "URL to fetch go from.",
              "type": "string"
            },
            "set_gobin": {
              "description": "Changes where `go install` installs binaries to.",
              "type": "boolean"
            },
            "set_gopath": {
              "description": "[deprecated] Set to true to set GOPATH=~/.local/share/mise/installs/go/.../packages.",
              "type": "boolean",
              "deprecated": true
            },
            "set_goroot": {
              "default": true,
              "description": "Sets GOROOT=~/.local/share/mise/installs/go/.../.",
              "type": "boolean"
            },
            "skip_checksum": {
              "description": "Set to true to skip checksum verification when downloading go sdk tarballs.",
              "type": "boolean"
            }
          }
        },
        "go_default_packages_file": {
          "description": "Path to a file containing default go packages to install when installing go.",
          "type": "string",
          "deprecated": true
        },
        "go_download_mirror": {
          "description": "Mirror to download go sdk tarballs from.",
          "type": "string",
          "deprecated": true
        },
        "go_repo": {
          "description": "URL to fetch go from.",
          "type": "string",
          "deprecated": true
        },
        "go_set_gobin": {
          "description": "Changes where `go install` installs binaries to.",
          "type": "boolean",
          "deprecated": true
        },
        "go_set_gopath": {
          "description": "[deprecated] Set to true to set GOPATH=~/.local/share/mise/installs/go/.../packages.",
          "type": "boolean",
          "deprecated": true
        },
        "go_set_goroot": {
          "description": "Sets GOROOT=~/.local/share/mise/installs/go/.../.",
          "type": "boolean",
          "deprecated": true
        },
        "go_skip_checksum": {
          "description": "Set to true to skip checksum verification when downloading go sdk tarballs.",
          "type": "boolean",
          "deprecated": true
        },
        "gpg_verify": {
          "description": "Use gpg to verify all tool signatures.",
          "type": "boolean"
        },
        "hook_env": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "cache_ttl": {
              "default": "0s",
              "description": "Cache hook-env directory checks for this duration. Useful for slow filesystems like NFS.",
              "type": "string"
            },
            "chpwd_only": {
              "default": false,
              "description": "Only run hook-env checks on directory change, not on every prompt.",
              "type": "boolean"
            }
          }
        },
        "http_retries": {
          "default": 3,
          "description": "Number of retries for transient HTTP failures in mise.",
          "type": "number"
        },
        "http_timeout": {
          "default": "30s",
          "description": "Timeout in seconds for all HTTP requests in mise.",
          "type": "string"
        },
        "idiomatic_version_file": {
          "description": "Set to false to disable the idiomatic version files such as .node-version, .ruby-version, etc.",
          "type": "boolean",
          "deprecated": true
        },
        "idiomatic_version_file_disable_tools": {
          "default": [],
          "description": "Specific tools to disable idiomatic version files for.",
          "type": "array",
          "deprecated": true,
          "items": {
            "type": "string"
          }
        },
        "idiomatic_version_file_enable_tools": {
          "default": [],
          "description": "Specific tools to enable idiomatic version files for like .node-version, .ruby-version, etc.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "ignored_config_paths": {
          "default": [],
          "description": "This is a list of config paths that mise will ignore.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "install_before": {
          "description": "Minimum release age / supply chain protection — only install versions released before this date",
          "type": "string",
          "deprecated": true
        },
        "java": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "shorthand_vendor": {
              "default": "openjdk",
              "description": "Shorthand for Java. Used when installing Java without a vendor prefix.",
              "type": "string"
            }
          }
        },
        "jobs": {
          "default": 8,
          "description": "How many jobs to run concurrently such as tool installs.",
          "type": "number"
        },
        "legacy_version_file": {
          "default": true,
          "description": "Set to false to disable the idiomatic version files such as .node-version, .ruby-version, etc.",
          "type": "boolean",
          "deprecated": true
        },
        "legacy_version_file_disable_tools": {
          "default": [],
          "description": "Specific tools to disable idiomatic version files for.",
          "type": "array",
          "deprecated": true,
          "items": {
            "type": "string"
          }
        },
        "libc": {
          "description": "Libc implementation to use for precompiled Linux binaries.",
          "type": "string",
          "enum": ["glibc", "gnu", "musl"]
        },
        "libgit2": {
          "default": true,
          "description": "Use libgit2 for git operations, set to false to shell out to git.",
          "type": "boolean"
        },
        "locked": {
          "default": false,
          "description": "Require lockfile URLs to be present during installation.",
          "type": "boolean"
        },
        "locked_verify_provenance": {
          "default": false,
          "description": "Re-verify provenance at install time even when the lockfile already has provenance.",
          "type": "boolean"
        },
        "lockfile": {
          "description": "Create and read lockfiles for tool versions.",
          "type": "boolean"
        },
        "lockfile_platforms": {
          "description": "Platforms to target in lockfile operations.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "log_level": {
          "default": "info",
          "description": "Show more/less output.",
          "type": "string",
          "enum": ["trace", "debug", "info", "warn", "error"]
        },
        "minimum_release_age": {
          "description": "Minimum release age / supply chain protection — only install versions older than this threshold",
          "type": "string"
        },
        "netrc": {
          "default": true,
          "description": "Use a netrc file for HTTP Basic authentication.",
          "type": "boolean"
        },
        "netrc_file": {
          "description": "Path to the netrc file to use for HTTP Basic authentication.",
          "type": "string"
        },
        "no_env": {
          "description": "Do not load environment variables from config files.",
          "type": "boolean"
        },
        "no_hooks": {
          "description": "Do not execute hooks from config files.",
          "type": "boolean"
        },
        "node": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "cflags": {
              "description": "Additional CFLAGS options (e.g., to override -O3).",
              "type": "string"
            },
            "compile": {
              "description": "Compile node from source.",
              "type": "boolean"
            },
            "concurrency": {
              "description": "How many jobs should be used in compilation.",
              "type": "number"
            },
            "configure_opts": {
              "description": "Additional ./configure options.",
              "type": "string"
            },
            "corepack": {
              "description": "Installs the default corepack shims after installing any node version.",
              "type": "boolean"
            },
            "default_packages_file": {
              "description": "Path to a file containing default npm packages to install.",
              "type": "string"
            },
            "flavor": {
              "description": "Install a specific node flavor like glibc-217 or musl. Use with unofficial node build repo.",
              "type": "string"
            },
            "gpg_verify": {
              "description": "Use gpg to verify node tool signatures.",
              "type": "boolean"
            },
            "make": {
              "description": "Make command to use.",
              "type": "string"
            },
            "make_install_opts": {
              "description": "Additional make install options.",
              "type": "string"
            },
            "make_opts": {
              "description": "Additional make options.",
              "type": "string"
            },
            "mirror_url": {
              "description": "Mirror to download node tarballs from.",
              "type": "string"
            },
            "ninja": {
              "description": "Use ninja instead of make to compile node.",
              "type": "boolean"
            },
            "nodenv_root": {
              "default": "~/.nodenv",
              "description": "Directory for nodenv.",
              "type": "string"
            },
            "nvm_dir": {
              "default": "~/.nvm",
              "description": "Directory for nvm.",
              "type": "string"
            },
            "verify": {
              "default": true,
              "description": "Verify the downloaded assets using GPG.",
              "type": "boolean"
            }
          }
        },
        "not_found_auto_install": {
          "default": true,
          "description": "Set to false to disable the \"command not found\" handler to autoinstall missing tool versions.",
          "type": "boolean"
        },
        "npm": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "bun": {
              "description": "Use bun instead of npm if bun is installed and on PATH.",
              "type": "boolean",
              "deprecated": true
            },
            "package_manager": {
              "default": "auto",
              "description": "Package manager to use for installing npm packages.",
              "type": "string",
              "enum": ["auto", "npm", "aube", "bun", "pnpm"]
            }
          }
        },
        "oci": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "default_from": {
              "default": "debian:bookworm-slim",
              "description": "Default base image for `mise oci build` when [oci].from is not set.",
              "type": "string"
            },
            "default_mount_point": {
              "default": "/mise",
              "description": "Path inside OCI images where mise tools are installed.",
              "type": "string"
            }
          }
        },
        "offline": {
          "description": "Disable all HTTP requests. Tools will only use locally cached data.",
          "type": "boolean"
        },
        "os": {
          "description": "OS to use for precompiled binaries.",
          "type": "string"
        },
        "override_config_filenames": {
          "default": [],
          "description": "If set, mise will ignore default config files like `mise.toml` and use these filenames instead.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "override_tool_versions_filenames": {
          "default": [],
          "description": "If set, mise will ignore .tool-versions files and use these filenames instead. Can be set to `none` to disable .tool-versions.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "paranoid": {
          "description": "Enables extra-secure behavior.",
          "type": "boolean"
        },
        "pin": {
          "description": "Default to pinning versions when running `mise use` in mise.toml files.",
          "type": "boolean"
        },
        "pipx": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "registry_url": {
              "default": "https://pypi.org/pypi/{}/json",
              "description": "URL to use for pipx registry.",
              "type": "string"
            },
            "uvx": {
              "description": "Use uvx instead of pipx if uv is installed and on PATH.",
              "type": "boolean"
            }
          }
        },
        "plugin_autoupdate_last_check_duration": {
          "default": "7d",
          "description": "How long to wait before updating plugins automatically (note this isn't currently implemented).",
          "type": "string"
        },
        "prefer_offline": {
          "description": "Prefer locally cached data over remote fetches when possible.",
          "type": "boolean"
        },
        "prereleases": {
          "description": "Include pre-release versions in `ls-remote`, `latest` resolution, and fuzzy matching for all tools.",
          "type": "boolean"
        },
        "profile": {
          "description": "Profile to use for mise.${MISE_PROFILE}.toml files.",
          "type": "string",
          "deprecated": true
        },
        "python": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "compile": {
              "description": "If true, compile python from source. If false, use precompiled binaries. If not set, use precompiled binaries if available.",
              "type": "boolean"
            },
            "default_packages_file": {
              "description": "Path to a file containing default python packages to install when installing a python version.",
              "type": "string"
            },
            "github_attestations": {
              "description": "Enable GitHub Artifact Attestations verification for precompiled Python binaries.",
              "type": "boolean"
            },
            "patch_url": {
              "description": "URL to fetch python patches from to pass to python-build.",
              "type": "string"
            },
            "patches_directory": {
              "description": "Directory to fetch python patches from.",
              "type": "string"
            },
            "precompiled_arch": {
              "description": "Specify the architecture to use for precompiled binaries.",
              "type": "string"
            },
            "precompiled_flavor": {
              "description": "Specify the flavor to use for precompiled binaries.",
              "type": "string"
            },
            "precompiled_os": {
              "description": "Specify the OS to use for precompiled binaries.",
              "type": "string"
            },
            "pyenv_repo": {
              "default": "https://github.com/pyenv/pyenv.git",
              "description": "URL to fetch pyenv from for compiling python with python-build.",
              "type": "string"
            },
            "uv_venv_auto": {
              "default": false,
              "description": "Integrate with uv to manage project venvs when uv.lock is present.",
              "type": ["boolean", "string"],
              "enum": [false, "source", "create|source", true]
            },
            "uv_venv_create_args": {
              "description": "Arguments to pass to uv when creating a venv.",
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "venv_create_args": {
              "description": "Arguments to pass to python when creating a venv. (not used for uv venv creation)",
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "venv_stdlib": {
              "description": "Prefer to use venv from Python's standard library.",
              "type": "boolean"
            }
          }
        },
        "quiet": {
          "description": "Suppress all output except errors.",
          "type": "boolean"
        },
        "raw": {
          "description": "Connect stdin/stdout/stderr to child processes.",
          "type": "boolean"
        },
        "ruby": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "apply_patches": {
              "description": "A list of patch files or URLs to apply to ruby source.",
              "type": "string"
            },
            "compile": {
              "description": "Set to true to compile ruby from source, false to use precompiled binaries.",
              "type": "boolean"
            },
            "default_packages_file": {
              "default": "~/.default-gems",
              "description": "Path to a file containing default ruby gems to install when installing ruby.",
              "type": "string"
            },
            "github_attestations": {
              "description": "Enable GitHub Artifact Attestations verification for precompiled Ruby binaries.",
              "type": "boolean"
            },
            "precompiled_arch": {
              "description": "Override architecture identifier for precompiled Ruby binaries.",
              "type": "string"
            },
            "precompiled_os": {
              "description": "Override OS identifier for precompiled Ruby binaries.",
              "type": "string"
            },
            "precompiled_url": {
              "default": "jdx/ruby",
              "description": "URL template or GitHub repo for precompiled Ruby binaries.",
              "type": "string"
            },
            "ruby_build_opts": {
              "description": "Options to pass to ruby-build.",
              "type": "string"
            },
            "ruby_build_repo": {
              "default": "https://github.com/rbenv/ruby-build.git",
              "description": "The URL used to fetch ruby-build. This accepts either a Git repository or a ZIP archive.",
              "type": "string"
            },
            "ruby_install": {
              "description": "Use ruby-install instead of ruby-build.",
              "type": "boolean"
            },
            "ruby_install_opts": {
              "description": "Options to pass to ruby-install.",
              "type": "string"
            },
            "ruby_install_repo": {
              "default": "https://github.com/postmodern/ruby-install.git",
              "description": "The URL used to fetch ruby-install. This accepts either a Git repository or a ZIP archive.",
              "type": "string"
            },
            "verbose_install": {
              "description": "Set to true to enable verbose output during ruby installation.",
              "type": "boolean"
            }
          }
        },
        "rust": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "cargo_home": {
              "description": "Path to the cargo home directory. Defaults to `~/.cargo` or `%USERPROFILE%\\.cargo`",
              "type": "string"
            },
            "default_host": {
              "description": "Default host triple to pass to `rustup init` via `--default-host`.",
              "type": "string"
            },
            "rustup_home": {
              "description": "Path to the rustup home directory. Defaults to `~/.rustup` or `%USERPROFILE%\\.rustup`",
              "type": "string"
            }
          }
        },
        "shared_install_dirs": {
          "description": "[experimental] Additional read-only directories to search for installed tool versions.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "shorthands_file": {
          "description": "Path to a file containing custom tool shorthands.",
          "type": "string"
        },
        "silent": {
          "description": "Suppress all `mise run|watch` output except errors—including what tasks output.",
          "type": "boolean"
        },
        "slsa": {
          "default": true,
          "description": "Enable SLSA provenance verification globally.",
          "type": "boolean"
        },
        "sops": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "age_key": {
              "description": "The age private key to use for sops secret decryption. Takes precedence over standard SOPS_AGE_KEY environment variable.",
              "type": "string"
            },
            "age_key_file": {
              "description": "Path to the age private key file for sops secret decryption. Takes precedence over standard SOPS_AGE_KEY_FILE environment variable.",
              "type": "string"
            },
            "age_recipients": {
              "description": "The age public keys to use for sops secret encryption.",
              "type": "string"
            },
            "rops": {
              "default": true,
              "description": "Use rops to decrypt sops files. Disable to shell out to `sops` which will slow down mise but sops may offer features not available in rops.",
              "type": "boolean"
            },
            "strict": {
              "default": true,
              "description": "If true, fail when sops decryption fails (including when sops is not available, the key is missing, or the key is invalid). If false, skip decryption and continue in these cases.",
              "type": "boolean"
            }
          }
        },
        "status": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "missing_tools": {
              "default": "if_other_versions_installed",
              "description": "Show a warning if tools are not installed when entering a directory with a mise.toml file.",
              "type": "string"
            },
            "show_deps_stale": {
              "default": true,
              "description": "Show warning when deps providers have stale dependencies.",
              "type": "boolean"
            },
            "show_env": {
              "description": "Show configured env vars when entering a directory with a mise.toml file.",
              "type": "boolean"
            },
            "show_tools": {
              "description": "Show configured tools when entering a directory with a mise.toml file.",
              "type": "boolean"
            },
            "truncate": {
              "default": true,
              "description": "Truncate status messages.",
              "type": "boolean"
            }
          }
        },
        "swift": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "gpg_verify": {
              "description": "Use gpg to verify swift tool signatures.",
              "type": "boolean"
            },
            "platform": {
              "description": "Override the platform to use for precompiled binaries.",
              "type": "string"
            }
          }
        },
        "system_config_file": {
          "description": "Path to the system mise config file. Default is `/etc/mise/config.toml`. This must be an env var.",
          "type": "string"
        },
        "task": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "disable_paths": {
              "default": [],
              "description": "Paths that mise will not look for tasks in.",
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "disable_spec_from_run_scripts": {
              "default": false,
              "description": "Opt out of parsing task run scripts to infer the usage spec (arguments and flags). When enabled, mise will derive the usage spec only from the `usage` field, ignoring any `arg()`, `option()`, or `flag()` templates used in run scripts. This can restore previous behavior and avoid the extra template pass over run scripts when collecting specs.",
              "type": "boolean"
            },
            "monorepo_depth": {
              "default": 5,
              "description": "Maximum depth to search for task files in monorepo subdirectories.",
              "type": "number"
            },
            "monorepo_exclude_dirs": {
              "default": [],
              "description": "Directory patterns to exclude when discovering monorepo subdirectories.",
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "monorepo_respect_gitignore": {
              "default": true,
              "description": "Whether to respect .gitignore files when discovering monorepo subdirectories.",
              "type": "boolean"
            },
            "output": {
              "description": "Change output style when executing tasks.",
              "type": "string",
              "enum": [
                "prefix",
                "interleave",
                "keep-order",
                "replacing",
                "timed",
                "quiet",
                "silent"
              ]
            },
            "remote_no_cache": {
              "description": "Mise will always fetch the latest tasks from the remote, by default the cache is used.",
              "type": "boolean"
            },
            "run_auto_install": {
              "default": true,
              "description": "Automatically install missing tools when executing tasks.",
              "type": "boolean"
            },
            "show_full_cmd": {
              "description": "Disable truncation of command lines in task execution output. When true, the full command line will be shown.",
              "type": "boolean"
            },
            "skip": {
              "default": [],
              "description": "Tasks to skip when running `mise run`.",
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "skip_depends": {
              "description": "Run only specified tasks skipping all dependencies.",
              "type": "boolean"
            },
            "source_freshness_equal_mtime_is_fresh": {
              "default": false,
              "description": "When source mtime equals output mtime, consider sources fresh (use <=). Default false uses strict < comparison.",
              "type": "boolean"
            },
            "source_freshness_hash_contents": {
              "default": false,
              "description": "Use content hashing (blake3) instead of metadata for source freshness. More accurate but slower.",
              "type": "boolean"
            },
            "timeout": {
              "description": "Default timeout for tasks.",
              "type": "string"
            },
            "timings": {
              "description": "Show completion message with elapsed time for each task on `mise run`. Default shows when output type is `prefix`.",
              "type": "boolean"
            }
          }
        },
        "task_disable_paths": {
          "description": "Paths that mise will not look for tasks in.",
          "type": "array",
          "deprecated": true,
          "items": {
            "type": "string"
          }
        },
        "task_output": {
          "description": "Change output style when executing tasks.",
          "type": "string",
          "deprecated": true
        },
        "task_remote_no_cache": {
          "description": "Mise will always fetch the latest tasks from the remote, by default the cache is used.",
          "type": "boolean",
          "deprecated": true
        },
        "task_run_auto_install": {
          "description": "Automatically install missing tools when executing tasks.",
          "type": "boolean",
          "deprecated": true
        },
        "task_show_full_cmd": {
          "description": "Disable truncation of command lines in task execution output. When true, the full command line will be shown.",
          "type": "boolean",
          "deprecated": true
        },
        "task_skip": {
          "description": "Tasks to skip when running `mise run`.",
          "type": "array",
          "deprecated": true,
          "items": {
            "type": "string"
          }
        },
        "task_skip_depends": {
          "description": "Run only specified tasks skipping all dependencies.",
          "type": "boolean",
          "deprecated": true
        },
        "task_timeout": {
          "description": "Default timeout for tasks. Can be overridden by individual tasks.",
          "type": "string",
          "deprecated": true
        },
        "task_timings": {
          "description": "Show completion message with elapsed time for each task on `mise run`. Default shows when output type is `prefix`.",
          "type": "boolean",
          "deprecated": true
        },
        "terminal_progress": {
          "default": true,
          "description": "Enable terminal progress indicators (OSC 9;4) for compatible terminals.",
          "type": "boolean"
        },
        "trace": {
          "description": "Sets log level to trace",
          "type": "boolean"
        },
        "trusted_config_paths": {
          "default": [],
          "description": "This is a list of config paths that mise will automatically mark as trusted. Any config files under these paths will be trusted without prompting. Set to `[\"/\"]` to trust all config files, effectively disabling the trust mechanism. Paths are separated by the OS path separator when using the environment variable (`:` on Unix, `;` on Windows).",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "unix_default_file_shell_args": {
          "default": "sh",
          "description": "Default shell arguments for Unix to be used for file commands. For example, `sh` for sh.",
          "type": "string"
        },
        "unix_default_inline_shell_args": {
          "default": "sh -c -o errexit",
          "description": "Default shell arguments for Unix to be used for inline commands. For example, `sh -c` for sh.",
          "type": "string"
        },
        "url_replacements": {
          "description": "Map of URL patterns to replacement URLs applied to all requests.",
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "use_file_shell_for_executable_tasks": {
          "default": false,
          "description": "Determines whether to use a specified shell for executing tasks in the tasks directory. When set to true, the shell defined in the file will be used, or the default shell specified by `windows_default_file_shell_args` or `unix_default_file_shell_args` will be applied. If set to false, tasks will be executed directly as programs.",
          "type": "boolean"
        },
        "use_versions_host": {
          "default": true,
          "description": "Set to false to disable using the mise-versions API as a quick way for mise to query for new versions.",
          "type": "boolean"
        },
        "use_versions_host_track": {
          "default": true,
          "description": "Send anonymous download statistics when installing tools.",
          "type": "boolean"
        },
        "verbose": {
          "description": "Shows more verbose output such as installation logs when installing tools.",
          "type": "boolean"
        },
        "windows_default_file_shell_args": {
          "default": "cmd /c",
          "description": "Default shell arguments for Windows to be used for file commands. For example, `cmd /c` for cmd.exe.",
          "type": "string"
        },
        "windows_default_inline_shell_args": {
          "default": "cmd /c",
          "description": "Default shell arguments for Windows to be used for inline commands. For example, `cmd /c` for cmd.exe.",
          "type": "string"
        },
        "windows_executable_extensions": {
          "default": ["exe", "bat", "cmd", "com", "ps1", "vbs"],
          "description": "List of executable extensions for Windows. For example, `exe` for .exe files, `bat` for .bat files, and so on.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "windows_shim_mode": {
          "default": "exe",
          "description": "Shim file mode for Windows. Options: `exe`, `file`, `hardlink`, `symlink`.",
          "type": "string"
        },
        "yes": {
          "description": "This will automatically answer yes or no to prompts. This is useful for scripting.",
          "type": "boolean"
        },
        "zig": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "use_community_mirrors": {
              "default": true,
              "description": "Download Zig from community-maintained mirrors",
              "type": "boolean"
            }
          }
        }
      }
    },
    "task_run_entry": {
      "oneOf": [
        {
          "description": "script to run",
          "type": "string"
        },
        {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "task": {
              "description": "single task name to run",
              "type": "string"
            },
            "args": {
              "description": "arguments to pass to the task",
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "env": {
              "description": "environment variables to set for the task",
              "type": "object",
              "additionalProperties": {
                "type": "string"
              }
            }
          },
          "required": ["task"]
        },
        {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "tasks": {
              "description": "parallel task group to run",
              "items": {
                "description": "task name and args",
                "type": "string"
              },
              "type": "array"
            }
          },
          "required": ["tasks"]
        }
      ]
    },
    "task": {
      "oneOf": [
        {
          "description": "script to run",
          "type": "string"
        },
        {
          "description": "script to run",
          "items": {
            "description": "script to run",
            "type": "string"
          },
          "type": "array"
        },
        {
          "properties": {
            "alias": {
              "oneOf": [
                {
                  "description": "alias for this task",
                  "type": "string"
                },
                {
                  "description": "alias for this task",
                  "items": {
                    "description": "alias for this task",
                    "type": "string"
                  },
                  "type": "array"
                }
              ]
            },
            "confirm": {
              "oneOf": [
                {
                  "description": "confirmation message before running this task",
                  "type": "string"
                },
                {
                  "description": "confirmation message before running this task with default value",
                  "properties": {
                    "message": {
                      "description": "confirmation message before running this task",
                      "type": "string"
                    },
                    "default": {
                      "description": "default value for confirmation (yes/no/true/false)",
                      "enum": ["yes", "no", "y", "n", "true", "false"],
                      "type": "string"
                    }
                  },
                  "required": ["message", "default"],
                  "additionalProperties": false,
                  "type": "object"
                }
              ]
            },
            "depends": {
              "oneOf": [
                {
                  "description": "task with args to run before this task",
                  "type": "string"
                },
                {
                  "description": "task with args to run before this task",
                  "type": "array",
                  "items": {
                    "$ref": "#/$defs/task_dependency_item"
                  }
                }
              ]
            },
            "depends_post": {
              "oneOf": [
                {
                  "description": "task with args to run after this task",
                  "type": "string"
                },
                {
                  "description": "task with args to run after this task",
                  "type": "array",
                  "items": {
                    "$ref": "#/$defs/task_dependency_item"
                  }
                }
              ]
            },
            "wait_for": {
              "oneOf": [
                {
                  "description": "task with args to wait for completion first",
                  "type": "string"
                },
                {
                  "description": "task with args to wait for completion first",
                  "items": {
                    "$ref": "#/$defs/task_dependency_item"
                  },
                  "type": "array"
                }
              ]
            },
            "description": {
              "description": "description of task",
              "type": "string"
            },
            "dir": {
              "default": "{{ config_root }}",
              "description": "directory to run script in, default is the project's base directory",
              "type": "string"
            },
            "env": {
              "$ref": "#/$defs/env"
            },
            "vars": {
              "$ref": "#/$defs/vars"
            },
            "tools": {
              "description": "tools to install/activate before running this task",
              "additionalProperties": {
                "oneOf": [
                  {
                    "description": "version of the tool to install",
                    "type": "string"
                  },
                  {
                    "properties": {
                      "version": {
                        "description": "version of the tool to install",
                        "type": "string"
                      },
                      "os": {
                        "$ref": "#/$defs/os_filter"
                      }
                    },
                    "required": ["version"],
                    "type": "object",
                    "additionalProperties": {
                      "oneOf": [
                        {
                          "type": "string"
                        }
                      ]
                    }
                  }
                ]
              },
              "type": "object"
            },
            "hide": {
              "default": false,
              "description": "do not display this task",
              "type": "boolean"
            },
            "outputs": {
              "oneOf": [
                {
                  "description": "files created by this task",
                  "items": {
                    "description": "glob pattern or path to files created by this task",
                    "type": "string"
                  },
                  "type": "array"
                },
                {
                  "description": "glob pattern or path to files created by this task",
                  "type": "string"
                },
                {
                  "additionalProperties": false,
                  "properties": {
                    "auto": {
                      "description": "automatically touch an internal tracked file instead of specifying outputs",
                      "enum": [true],
                      "type": "boolean"
                    }
                  },
                  "required": ["auto"],
                  "type": "object"
                }
              ]
            },
            "quiet": {
              "default": false,
              "description": "do not display mise information for this task",
              "type": "boolean"
            },
            "silent": {
              "default": false,
              "description": "suppress all output for this task",
              "oneOf": [
                {
                  "type": "boolean"
                },
                {
                  "enum": ["stdout", "stderr"],
                  "type": "string"
                }
              ]
            },
            "interactive": {
              "default": false,
              "description": "mark task as interactive, acquiring exclusive terminal access while allowing other non-interactive tasks to run in parallel",
              "type": "boolean"
            },
            "raw": {
              "default": false,
              "description": "directly connect task to stdin/stdout/stderr",
              "type": "boolean"
            },
            "raw_args": {
              "default": false,
              "description": "skip mise's argument parsing for this task — all arguments (including --help/-h) are forwarded verbatim to the underlying command. Use for tasks that proxy a tool with its own argument parser.",
              "type": "boolean"
            },
            "run": {
              "oneOf": [
                {
                  "$ref": "#/$defs/task_run_entry"
                },
                {
                  "type": "array",
                  "items": {
                    "$ref": "#/$defs/task_run_entry"
                  }
                }
              ]
            },
            "run_windows": {
              "oneOf": [
                {
                  "$ref": "#/$defs/task_run_entry"
                },
                {
                  "type": "array",
                  "items": {
                    "$ref": "#/$defs/task_run_entry"
                  }
                }
              ]
            },
            "file": {
              "description": "Execute an external script",
              "type": "string"
            },
            "sources": {
              "oneOf": [
                {
                  "description": "files that this task depends on",
                  "items": {
                    "description": "glob pattern or path to files that this task depends on",
                    "type": "string"
                  },
                  "type": "array"
                },
                {
                  "description": "glob pattern or path to files that this task depends on",
                  "type": "string"
                }
              ]
            },
            "shell": {
              "description": "specify a shell command to run the script with",
              "type": "string"
            },
            "usage": {
              "description": "Specify usage (https://usage.jdx.dev/) specs for the task",
              "type": "string"
            },
            "timeout": {
              "description": "timeout for this task",
              "type": "string"
            },
            "deny_all": {
              "default": false,
              "description": "block reads, writes, network, and env vars",
              "type": "boolean"
            },
            "deny_read": {
              "default": false,
              "description": "block filesystem reads",
              "type": "boolean"
            },
            "deny_write": {
              "default": false,
              "description": "block all filesystem writes",
              "type": "boolean"
            },
            "deny_net": {
              "default": false,
              "description": "block all network access",
              "type": "boolean"
            },
            "deny_env": {
              "default": false,
              "description": "block env var inheritance",
              "type": "boolean"
            },
            "allow_read": {
              "description": "allow reads from specific paths",
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "allow_write": {
              "description": "allow writes to specific paths",
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "allow_net": {
              "description": "allow network to specific hosts",
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "allow_env": {
              "description": "allow specific env vars through",
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "extends": {
              "description": "name of the task template to extend",
              "type": "string"
            }
          },
          "additionalProperties": false,
          "type": "object"
        }
      ]
    },
    "vars": {
      "description": "variables to set",
      "type": "object",
      "properties": {
        "_": {
          "description": "vars modules",
          "additionalProperties": true,
          "properties": {
            "file": {
              "oneOf": [
                {
                  "description": "dotenv file to load",
                  "type": "string"
                },
                {
                  "description": "dotenv files to load",
                  "items": {
                    "description": "dotenv file to load",
                    "type": "string"
                  },
                  "type": "array"
                }
              ]
            },
            "source": {
              "oneOf": [
                {
                  "description": "bash script to load",
                  "type": "string"
                },
                {
                  "description": "bash scripts to load",
                  "items": {
                    "description": "bash script to load",
                    "type": "string"
                  },
                  "type": "array"
                }
              ]
            }
          },
          "type": "object"
        }
      },
      "additionalProperties": {
        "description": "value of variable",
        "type": "string"
      }
    },
    "task_config": {
      "description": "configuration for task execution/management",
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "dir": {
          "description": "default directory to run tasks in defined in this file",
          "type": "string"
        },
        "includes": {
          "description": "files/directories to include searching for tasks. Can be local paths or git repository URLs using git:: prefix (e.g., git::https://github.com/org/repo.git//path?ref=branch)",
          "items": {
            "description": "file/directory root to include in task execution. Supports local paths and git URLs (git::https://github.com/org/repo.git//path?ref=branch)",
            "type": "string"
          },
          "type": "array"
        }
      }
    },
    "experimental_monorepo_root": {
      "description": "Marks this config as a monorepo root, enabling target path syntax for tasks. Requires MISE_EXPERIMENTAL=1. When enabled, tasks can be referenced with paths like //projects/frontend:build",
      "type": "boolean"
    },
    "monorepo": {
      "description": "Configuration for monorepo task discovery",
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "config_roots": {
          "description": "Explicit list of config root paths for monorepo task discovery. Supports single-level glob patterns (*). When set, skips filesystem walking for better performance.",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "tool": {
      "oneOf": [
        {
          "description": "version of the tool to install",
          "type": "string"
        },
        {
          "properties": {
            "version": {
              "description": "version of the tool to install",
              "type": "string"
            },
            "os": {
              "$ref": "#/$defs/os_filter"
            },
            "install_env": {
              "type": "object",
              "additionalProperties": {
                "oneOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "number"
                  },
                  {
                    "type": "boolean"
                  }
                ]
              },
              "description": "environment variables during tool installation"
            },
            "depends": {
              "oneOf": [
                {
                  "description": "tools that must be installed before this tool",
                  "type": "string"
                },
                {
                  "description": "tools that must be installed before this tool",
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              ]
            },
            "postinstall": {
              "description": "command to run after tool installation",
              "type": "string"
            }
          },
          "required": ["version"],
          "type": "object",
          "additionalProperties": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "number"
              },
              {
                "type": "boolean"
              },
              {
                "type": "array"
              },
              {
                "type": "object",
                "additionalProperties": true
              }
            ]
          }
        }
      ]
    },
    "hooks": {
      "description": "hooks to run",
      "type": "object",
      "additionalProperties": {
        "oneOf": [
          {
            "description": "script to run",
            "type": "string"
          },
          {
            "additionalProperties": false,
            "properties": {
              "script": {
                "description": "script to run",
                "type": "string"
              },
              "shell": {
                "description": "specify the shell to run the script inside of",
                "type": "string"
              }
            },
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "task": {
                "description": "mise task to run",
                "type": "string"
              }
            },
            "required": ["task"],
            "type": "object"
          },
          {
            "description": "scripts/tasks to run",
            "items": {
              "oneOf": [
                {
                  "description": "script to run",
                  "type": "string"
                },
                {
                  "additionalProperties": false,
                  "properties": {
                    "script": {
                      "description": "script to run",
                      "type": "string"
                    },
                    "shell": {
                      "description": "specify the shell to run the script inside of",
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                {
                  "additionalProperties": false,
                  "properties": {
                    "task": {
                      "description": "mise task to run",
                      "type": "string"
                    }
                  },
                  "required": ["task"],
                  "type": "object"
                }
              ]
            },
            "type": "array"
          }
        ]
      }
    },
    "watch_files": {
      "description": "files to watch for changes",
      "type": "array",
      "items": {
        "type": "object",
        "description": "file to watch for changes",
        "additionalProperties": false,
        "properties": {
          "run": {
            "type": "string",
            "description": "script to run when file changes"
          },
          "task": {
            "type": "string",
            "description": "mise task to run when file changes"
          },
          "patterns": {
            "type": "array",
            "description": "patterns to watch for",
            "items": {
              "type": "string"
            }
          }
        },
        "oneOf": [
          {
            "required": ["run"]
          },
          {
            "required": ["task"]
          }
        ]
      }
    },
    "deps_provider": {
      "type": "object",
      "properties": {
        "auto": {
          "type": "boolean",
          "default": false,
          "description": "Auto-run before `mise x` and `mise run`"
        },
        "sources": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          ],
          "description": "Files/patterns to check for changes"
        },
        "outputs": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          ],
          "description": "Files/directories that should be newer than sources"
        },
        "run": {
          "type": "string",
          "description": "Command to run when stale"
        },
        "env": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Environment variables to set"
        },
        "dir": {
          "type": "string",
          "description": "Working directory for the command"
        },
        "description": {
          "type": "string",
          "description": "Description shown in output"
        },
        "depends": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Other deps providers that must complete before this one runs"
        },
        "timeout": {
          "type": "string",
          "description": "Timeout for the run command (e.g., \"30s\", \"5m\", \"1h\")"
        }
      },
      "additionalProperties": false,
      "description": "Prepare provider configuration"
    },
    "task_props": {
      "description": "common task properties",
      "properties": {
        "alias": {
          "oneOf": [
            {
              "description": "alias for this task",
              "type": "string"
            },
            {
              "description": "alias for this task",
              "items": {
                "description": "alias for this task",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "confirm": {
          "oneOf": [
            {
              "description": "confirmation message before running this task",
              "type": "string"
            },
            {
              "description": "confirmation message before running this task with default value",
              "properties": {
                "message": {
                  "description": "confirmation message before running this task",
                  "type": "string"
                },
                "default": {
                  "description": "default value for confirmation (yes/no/true/false)",
                  "enum": ["yes", "no", "y", "n", "true", "false"],
                  "type": "string"
                }
              },
              "required": ["message", "default"],
              "additionalProperties": false,
              "type": "object"
            }
          ]
        },
        "depends": {
          "oneOf": [
            {
              "description": "task with args to run before this task",
              "type": "string"
            },
            {
              "description": "task with args to run before this task",
              "type": "array",
              "items": {
                "$ref": "#/$defs/task_dependency_item"
              }
            }
          ]
        },
        "depends_post": {
          "oneOf": [
            {
              "description": "task with args to run after this task",
              "type": "string"
            },
            {
              "description": "task with args to run after this task",
              "type": "array",
              "items": {
                "$ref": "#/$defs/task_dependency_item"
              }
            }
          ]
        },
        "wait_for": {
          "oneOf": [
            {
              "description": "task with args to wait for completion first",
              "type": "string"
            },
            {
              "description": "task with args to wait for completion first",
              "items": {
                "$ref": "#/$defs/task_dependency_item"
              },
              "type": "array"
            }
          ]
        },
        "description": {
          "description": "description of task",
          "type": "string"
        },
        "dir": {
          "default": "{{ config_root }}",
          "description": "directory to run script in, default is the project's base directory",
          "type": "string"
        },
        "env": {
          "$ref": "#/$defs/env"
        },
        "vars": {
          "$ref": "#/$defs/vars"
        },
        "tools": {
          "description": "tools to install/activate before running this task",
          "additionalProperties": {
            "oneOf": [
              {
                "description": "version of the tool to install",
                "type": "string"
              },
              {
                "properties": {
                  "version": {
                    "description": "version of the tool to install",
                    "type": "string"
                  },
                  "os": {
                    "$ref": "#/$defs/os_filter"
                  }
                },
                "required": ["version"],
                "type": "object",
                "additionalProperties": {
                  "oneOf": [
                    {
                      "type": "string"
                    }
                  ]
                }
              }
            ]
          },
          "type": "object"
        },
        "hide": {
          "default": false,
          "description": "do not display this task",
          "type": "boolean"
        },
        "outputs": {
          "oneOf": [
            {
              "description": "files created by this task",
              "items": {
                "description": "glob pattern or path to files created by this task",
                "type": "string"
              },
              "type": "array"
            },
            {
              "description": "glob pattern or path to files created by this task",
              "type": "string"
            },
            {
              "additionalProperties": false,
              "properties": {
                "auto": {
                  "description": "automatically touch an internal tracked file instead of specifying outputs",
                  "enum": [true],
                  "type": "boolean"
                }
              },
              "required": ["auto"],
              "type": "object"
            }
          ]
        },
        "quiet": {
          "default": false,
          "description": "do not display mise information for this task",
          "type": "boolean"
        },
        "silent": {
          "default": false,
          "description": "suppress all output for this task",
          "oneOf": [
            {
              "type": "boolean"
            },
            {
              "enum": ["stdout", "stderr"],
              "type": "string"
            }
          ]
        },
        "interactive": {
          "default": false,
          "description": "mark task as interactive, acquiring exclusive terminal access while allowing other non-interactive tasks to run in parallel",
          "type": "boolean"
        },
        "raw": {
          "default": false,
          "description": "directly connect task to stdin/stdout/stderr",
          "type": "boolean"
        },
        "raw_args": {
          "default": false,
          "description": "skip mise's argument parsing for this task — all arguments (including --help/-h) are forwarded verbatim to the underlying command. Use for tasks that proxy a tool with its own argument parser.",
          "type": "boolean"
        },
        "run": {
          "oneOf": [
            {
              "$ref": "#/$defs/task_run_entry"
            },
            {
              "type": "array",
              "items": {
                "$ref": "#/$defs/task_run_entry"
              }
            }
          ]
        },
        "run_windows": {
          "oneOf": [
            {
              "$ref": "#/$defs/task_run_entry"
            },
            {
              "type": "array",
              "items": {
                "$ref": "#/$defs/task_run_entry"
              }
            }
          ]
        },
        "file": {
          "description": "Execute an external script",
          "type": "string"
        },
        "sources": {
          "oneOf": [
            {
              "description": "files that this task depends on",
              "items": {
                "description": "glob pattern or path to files that this task depends on",
                "type": "string"
              },
              "type": "array"
            },
            {
              "description": "glob pattern or path to files that this task depends on",
              "type": "string"
            }
          ]
        },
        "shell": {
          "description": "specify a shell command to run the script with",
          "type": "string"
        },
        "usage": {
          "description": "Specify usage (https://usage.jdx.dev/) specs for the task",
          "type": "string"
        },
        "timeout": {
          "description": "timeout for this task",
          "type": "string"
        },
        "deny_all": {
          "default": false,
          "description": "block reads, writes, network, and env vars",
          "type": "boolean"
        },
        "deny_read": {
          "default": false,
          "description": "block filesystem reads",
          "type": "boolean"
        },
        "deny_write": {
          "default": false,
          "description": "block all filesystem writes",
          "type": "boolean"
        },
        "deny_net": {
          "default": false,
          "description": "block all network access",
          "type": "boolean"
        },
        "deny_env": {
          "default": false,
          "description": "block env var inheritance",
          "type": "boolean"
        },
        "allow_read": {
          "description": "allow reads from specific paths",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "allow_write": {
          "description": "allow writes to specific paths",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "allow_net": {
          "description": "allow network to specific hosts",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "allow_env": {
          "description": "allow specific env vars through",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "task_template": {
      "description": "task template that can be extended by tasks",
      "properties": {
        "alias": {
          "oneOf": [
            {
              "description": "alias for this task",
              "type": "string"
            },
            {
              "description": "alias for this task",
              "items": {
                "description": "alias for this task",
                "type": "string"
              },
              "type": "array"
            }
          ]
        },
        "confirm": {
          "oneOf": [
            {
              "description": "confirmation message before running this task",
              "type": "string"
            },
            {
              "description": "confirmation message before running this task with default value",
              "properties": {
                "message": {
                  "description": "confirmation message before running this task",
                  "type": "string"
                },
                "default": {
                  "description": "default value for confirmation (yes/no/true/false)",
                  "enum": ["yes", "no", "y", "n", "true", "false"],
                  "type": "string"
                }
              },
              "required": ["message", "default"],
              "additionalProperties": false,
              "type": "object"
            }
          ]
        },
        "depends": {
          "oneOf": [
            {
              "description": "task with args to run before this task",
              "type": "string"
            },
            {
              "description": "task with args to run before this task",
              "type": "array",
              "items": {
                "$ref": "#/$defs/task_dependency_item"
              }
            }
          ]
        },
        "depends_post": {
          "oneOf": [
            {
              "description": "task with args to run after this task",
              "type": "string"
            },
            {
              "description": "task with args to run after this task",
              "type": "array",
              "items": {
                "$ref": "#/$defs/task_dependency_item"
              }
            }
          ]
        },
        "wait_for": {
          "oneOf": [
            {
              "description": "task with args to wait for completion first",
              "type": "string"
            },
            {
              "description": "task with args to wait for completion first",
              "items": {
                "$ref": "#/$defs/task_dependency_item"
              },
              "type": "array"
            }
          ]
        },
        "description": {
          "description": "description of task",
          "type": "string"
        },
        "dir": {
          "default": "{{ config_root }}",
          "description": "directory to run script in, default is the project's base directory",
          "type": "string"
        },
        "env": {
          "$ref": "#/$defs/env"
        },
        "vars": {
          "$ref": "#/$defs/vars"
        },
        "tools": {
          "description": "tools to install/activate before running this task",
          "additionalProperties": {
            "oneOf": [
              {
                "description": "version of the tool to install",
                "type": "string"
              },
              {
                "properties": {
                  "version": {
                    "description": "version of the tool to install",
                    "type": "string"
                  },
                  "os": {
                    "$ref": "#/$defs/os_filter"
                  }
                },
                "required": ["version"],
                "type": "object",
                "additionalProperties": {
                  "oneOf": [
                    {
                      "type": "string"
                    }
                  ]
                }
              }
            ]
          },
          "type": "object"
        },
        "hide": {
          "default": false,
          "description": "do not display this task",
          "type": "boolean"
        },
        "outputs": {
          "oneOf": [
            {
              "description": "files created by this task",
              "items": {
                "description": "glob pattern or path to files created by this task",
                "type": "string"
              },
              "type": "array"
            },
            {
              "description": "glob pattern or path to files created by this task",
              "type": "string"
            },
            {
              "additionalProperties": false,
              "properties": {
                "auto": {
                  "description": "automatically touch an internal tracked file instead of specifying outputs",
                  "enum": [true],
                  "type": "boolean"
                }
              },
              "required": ["auto"],
              "type": "object"
            }
          ]
        },
        "quiet": {
          "default": false,
          "description": "do not display mise information for this task",
          "type": "boolean"
        },
        "silent": {
          "default": false,
          "description": "suppress all output for this task",
          "oneOf": [
            {
              "type": "boolean"
            },
            {
              "enum": ["stdout", "stderr"],
              "type": "string"
            }
          ]
        },
        "interactive": {
          "default": false,
          "description": "mark task as interactive, acquiring exclusive terminal access while allowing other non-interactive tasks to run in parallel",
          "type": "boolean"
        },
        "raw": {
          "default": false,
          "description": "directly connect task to stdin/stdout/stderr",
          "type": "boolean"
        },
        "raw_args": {
          "default": false,
          "description": "skip mise's argument parsing for this task — all arguments (including --help/-h) are forwarded verbatim to the underlying command. Use for tasks that proxy a tool with its own argument parser.",
          "type": "boolean"
        },
        "run": {
          "oneOf": [
            {
              "$ref": "#/$defs/task_run_entry"
            },
            {
              "type": "array",
              "items": {
                "$ref": "#/$defs/task_run_entry"
              }
            }
          ]
        },
        "run_windows": {
          "oneOf": [
            {
              "$ref": "#/$defs/task_run_entry"
            },
            {
              "type": "array",
              "items": {
                "$ref": "#/$defs/task_run_entry"
              }
            }
          ]
        },
        "file": {
          "description": "Execute an external script",
          "type": "string"
        },
        "sources": {
          "oneOf": [
            {
              "description": "files that this task depends on",
              "items": {
                "description": "glob pattern or path to files that this task depends on",
                "type": "string"
              },
              "type": "array"
            },
            {
              "description": "glob pattern or path to files that this task depends on",
              "type": "string"
            }
          ]
        },
        "shell": {
          "description": "specify a shell command to run the script with",
          "type": "string"
        },
        "usage": {
          "description": "Specify usage (https://usage.jdx.dev/) specs for the task",
          "type": "string"
        },
        "timeout": {
          "description": "timeout for this task",
          "type": "string"
        },
        "deny_all": {
          "default": false,
          "description": "block reads, writes, network, and env vars",
          "type": "boolean"
        },
        "deny_read": {
          "default": false,
          "description": "block filesystem reads",
          "type": "boolean"
        },
        "deny_write": {
          "default": false,
          "description": "block all filesystem writes",
          "type": "boolean"
        },
        "deny_net": {
          "default": false,
          "description": "block all network access",
          "type": "boolean"
        },
        "deny_env": {
          "default": false,
          "description": "block env var inheritance",
          "type": "boolean"
        },
        "allow_read": {
          "description": "allow reads from specific paths",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "allow_write": {
          "description": "allow writes to specific paths",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "allow_net": {
          "description": "allow network to specific hosts",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "allow_env": {
          "description": "allow specific env vars through",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "additionalProperties": false,
      "type": "object"
    }
  },
  "additionalProperties": false,
  "description": "config file for mise version manager (mise.toml)",
  "properties": {
    "alias": {
      "deprecated": true,
      "description": "custom shorthands",
      "type": "object",
      "additionalProperties": {
        "oneOf": [
          {
            "description": "where the alias goes",
            "type": "string"
          },
          {
            "description": "tool to set aliases for",
            "type": "object",
            "additionalProperties": {
              "description": "version alias points to",
              "type": "string"
            }
          }
        ]
      }
    },
    "tool_alias": {
      "description": "Tool version aliases",
      "type": "object",
      "additionalProperties": {
        "oneOf": [
          {
            "description": "where the alias goes",
            "type": "string"
          },
          {
            "description": "tool to set aliases for",
            "type": "object",
            "additionalProperties": {
              "description": "version alias points to",
              "type": "string"
            }
          }
        ]
      }
    },
    "shell_alias": {
      "description": "shell aliases",
      "type": "object",
      "additionalProperties": {
        "description": "command to run",
        "type": "string"
      }
    },
    "env": {
      "description": "environment variables to set",
      "oneOf": [
        {
          "$ref": "#/$defs/env"
        },
        {
          "type": "array",
          "items": {
            "$ref": "#/$defs/env"
          }
        }
      ]
    },
    "env_file": {
      "description": "dotenv file(s) to load. Deprecated; use env._.file instead. This will be removed in mise 2027.4.0.",
      "deprecated": true,
      "oneOf": [
        {
          "description": "dotenv file to load",
          "type": "string"
        },
        {
          "description": "dotenv files to load",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      ]
    },
    "dotenv": {
      "description": "dotenv file(s) to load. Deprecated; use env._.file instead. This will be removed in mise 2027.4.0.",
      "deprecated": true,
      "oneOf": [
        {
          "description": "dotenv file to load",
          "type": "string"
        },
        {
          "description": "dotenv files to load",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      ]
    },
    "env_path": {
      "description": "PATH entries to add. Deprecated; use env._.path instead. This will be removed in mise 2027.4.0.",
      "deprecated": true,
      "oneOf": [
        {
          "description": "PATH entry to add",
          "type": "string"
        },
        {
          "description": "PATH entries to add",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      ]
    },
    "experimental_monorepo_root": {
      "description": "marks this config as a monorepo root for task path syntax",
      "$ref": "#/$defs/experimental_monorepo_root"
    },
    "monorepo": {
      "description": "configuration for monorepo task discovery",
      "$ref": "#/$defs/monorepo"
    },
    "min_version": {
      "description": "minimum version of mise required to use this config",
      "oneOf": [
        {
          "pattern": "^\\d+\\.\\d+\\.\\d+$",
          "type": "string"
        },
        {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "hard": {
              "description": "error if current mise is lower than this version",
              "type": "string",
              "pattern": "^\\d+\\.\\d+\\.\\d+$"
            },
            "soft": {
              "description": "warn if current mise is lower than this version",
              "type": "string",
              "pattern": "^\\d+\\.\\d+\\.\\d+$"
            }
          }
        }
      ]
    },
    "redactions": {
      "description": "env or vars keys to redact from logs",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "plugins": {
      "additionalProperties": {
        "description": "url to plugin repository",
        "type": "string"
      },
      "description": "plugins to use",
      "type": "object"
    },
    "deps": {
      "type": "object",
      "properties": {
        "disable": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Disable specific deps providers"
        },
        "npm": {
          "$ref": "#/$defs/deps_provider"
        },
        "yarn": {
          "$ref": "#/$defs/deps_provider"
        },
        "pnpm": {
          "$ref": "#/$defs/deps_provider"
        },
        "bun": {
          "$ref": "#/$defs/deps_provider"
        },
        "go": {
          "$ref": "#/$defs/deps_provider"
        },
        "pip": {
          "$ref": "#/$defs/deps_provider"
        },
        "poetry": {
          "$ref": "#/$defs/deps_provider"
        },
        "uv": {
          "$ref": "#/$defs/deps_provider"
        },
        "bundler": {
          "$ref": "#/$defs/deps_provider"
        },
        "composer": {
          "$ref": "#/$defs/deps_provider"
        }
      },
      "additionalProperties": {
        "$ref": "#/$defs/deps_provider"
      },
      "description": "configure deps providers"
    },
    "oci": {
      "type": "object",
      "additionalProperties": false,
      "description": "configuration for `mise oci build`",
      "properties": {
        "from": {
          "type": "string",
          "description": "Base image reference (overrides the oci.default_from setting)"
        },
        "tag": {
          "type": "string",
          "description": "Default tag applied to the built image"
        },
        "workdir": {
          "type": "string",
          "description": "Working directory baked into the image config"
        },
        "entrypoint": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Entrypoint baked into the image config"
        },
        "cmd": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Cmd baked into the image config"
        },
        "user": {
          "type": "string",
          "description": "User baked into the image config"
        },
        "mount_point": {
          "type": "string",
          "description": "Override where mise installs go in the image (default /mise)"
        },
        "env": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Extra env vars baked into the image config"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Labels baked into the image config"
        }
      }
    },
    "settings": {
      "$ref": "#/$defs/settings",
      "description": "mise settings",
      "type": "object"
    },
    "task_config": {
      "description": "configuration for task execution and management",
      "$ref": "#/$defs/task_config"
    },
    "tasks": {
      "additionalProperties": {
        "$ref": "#/$defs/task"
      },
      "description": "task runner tasks",
      "type": "object"
    },
    "task_templates": {
      "description": "task templates that can be extended by tasks via extends",
      "additionalProperties": {
        "$ref": "#/$defs/task_template"
      },
      "type": "object"
    },
    "tools": {
      "additionalProperties": {
        "oneOf": [
          {
            "items": {
              "$ref": "#/$defs/tool"
            },
            "type": "array"
          },
          {
            "$ref": "#/$defs/tool"
          }
        ]
      },
      "description": "dev tools to use",
      "type": "object"
    },
    "hooks": {
      "description": "hooks to run on events like cd, enter, leave",
      "$ref": "#/$defs/hooks"
    },
    "vars": {
      "description": "variables to set for use in config templates",
      "$ref": "#/$defs/vars"
    },
    "watch_files": {
      "description": "files to watch for changes and run scripts when modified",
      "$ref": "#/$defs/watch_files"
    },
    "_": {
      "type": "object",
      "additionalProperties": true
    }
  }
}
