{
"$id": "https://mise.jdx.dev/schema/mise.json",
"$schema": "https://json-schema.org/draft/2019-09/schema#",
"title": "mise",
"type": "object",
"$defs": {
"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."
}
}
},
{
"type": "object",
"properties": {
"age": {
"oneOf": [
{
"type": "string",
"description": "[experimental] age-encrypted value (simplified format)"
},
{
"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"
}
},
"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": "should mise keep downloaded files after installation",
"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": {
"description": "use asdf as a default plugin backend",
"type": "boolean",
"deprecated": true
},
"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"
},
"registry_name": {
"description": "Name of the cargo registry to use.",
"type": "string"
}
}
},
"cargo_binstall": {
"description": "Use cargo-binstall instead of cargo install if available",
"type": "boolean",
"deprecated": true
},
"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_default_shorthands": {
"description": "Disables built-in shorthands to asdf/vfox plugins",
"type": "boolean",
"deprecated": true
},
"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": {
"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": {
"default": [],
"description": "Tools defined in mise.toml that should be used - all other tools are ignored",
"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"
},
"github": {
"type": "object",
"additionalProperties": false,
"properties": {
"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"
}
}
},
"github_attestations": {
"default": true,
"description": "Enable GitHub Artifact Attestations verification for supported tools.",
"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_default_packages_file": {
"default": "~/.default-go-packages",
"description": "Path to a file containing default go packages to install when installing go",
"type": "string"
},
"go_download_mirror": {
"default": "https://dl.google.com/go",
"description": "Mirror to download go sdk tarballs from.",
"type": "string"
},
"go_repo": {
"default": "https://github.com/golang/go",
"description": "URL to fetch go from.",
"type": "string"
},
"go_set_gobin": {
"description": "Changes where `go install` installs binaries to.",
"type": "boolean"
},
"go_set_gopath": {
"description": "[deprecated] Set to true to set GOPATH=~/.local/share/mise/installs/go/.../packages.",
"type": "boolean",
"deprecated": true
},
"go_set_goroot": {
"default": true,
"description": "Sets GOROOT=~/.local/share/mise/installs/go/.../.",
"type": "boolean"
},
"go_skip_checksum": {
"description": "Set to true to skip checksum verification when downloading go sdk tarballs.",
"type": "boolean"
},
"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": 0,
"description": "Number of retries for HTTP requests 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": "Only install versions released before this date",
"type": "string"
},
"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"
}
},
"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"
},
"lockfile": {
"default": true,
"description": "Create and read lockfiles for tool versions.",
"type": "boolean"
},
"log_level": {
"default": "info",
"description": "Show more/less output.",
"type": "string",
"enum": ["trace", "debug", "info", "warn", "error"]
},
"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": {
"compile": {
"description": "Compile node from source.",
"type": "boolean"
},
"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"
},
"mirror_url": {
"description": "Mirror to download node tarballs from.",
"type": "string"
}
}
},
"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": "npm",
"description": "Package manager to use for installing npm packages.",
"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"
}
}
},
"pipx_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"
},
"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"
},
"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_auto_create": {
"description": "Automatically create virtualenvs for python tools.",
"type": "boolean",
"deprecated": true
},
"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"
}
}
},
"python_compile": {
"description": "If true, compile python from source. If false, use precompiled binaries. If not set, use precompiled binaries if available.",
"type": "boolean",
"deprecated": true
},
"python_default_packages_file": {
"description": "Path to a file containing default python packages to install when installing python.",
"type": "string",
"deprecated": true
},
"python_patch_url": {
"description": "URL to fetch python patches from.",
"type": "string",
"deprecated": true
},
"python_patches_directory": {
"description": "Directory to fetch python patches from.",
"type": "string",
"deprecated": true
},
"python_precompiled_arch": {
"description": "Specify the architecture to use for precompiled binaries.",
"type": "string",
"deprecated": true
},
"python_precompiled_os": {
"description": "Specify the OS to use for precompiled binaries.",
"type": "string",
"deprecated": true
},
"python_pyenv_repo": {
"description": "URL to fetch pyenv from for compiling python.",
"type": "string",
"deprecated": true
},
"python_venv_auto_create": {
"description": "Automatically create virtualenvs for python tools.",
"type": "boolean",
"deprecated": true
},
"python_venv_stdlib": {
"description": "Prefer to use venv from Python's standard library.",
"type": "boolean",
"deprecated": true
},
"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"
}
}
},
"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_env": {
"description": "Show configured env vars when entering a directory with a mise.toml file.",
"type": "boolean"
},
"show_prepare_stale": {
"default": true,
"description": "Show warning when prepare providers have stale dependencies.",
"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_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"
},
"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"
}
}
},
"task_disable_paths": {
"default": [],
"description": "Paths that mise will not look for tasks in.",
"type": "array",
"items": {
"type": "string"
}
},
"task_output": {
"description": "Change output style when executing tasks.",
"type": "string",
"enum": [
"prefix",
"interleave",
"keep-order",
"replacing",
"timed",
"quiet",
"silent"
]
},
"task_remote_no_cache": {
"description": "Mise will always fetch the latest tasks from the remote, by default the cache is used.",
"type": "boolean"
},
"task_run_auto_install": {
"default": true,
"description": "Automatically install missing tools when executing tasks.",
"type": "boolean"
},
"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"
},
"task_skip": {
"default": [],
"description": "Tasks to skip when running `mise run`.",
"type": "array",
"items": {
"type": "string"
}
},
"task_skip_depends": {
"description": "Run only specified tasks skipping all dependencies.",
"type": "boolean"
},
"task_timeout": {
"description": "Default timeout for tasks. Can be overridden by individual tasks.",
"type": "string"
},
"task_timings": {
"description": "Show completion message with elapsed time for each task on `mise run`. Default shows when output type is `prefix`.",
"type": "boolean"
},
"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.",
"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"
},
"vfox": {
"description": "Use vfox as a default plugin backend instead of asdf.",
"type": "boolean",
"deprecated": true
},
"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 (with optional args) to run",
"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"
},
{
"allOf": [
{
"$ref": "#/$defs/task_props"
},
{
"properties": {
"extends": {
"description": "name of the task template to extend",
"type": "string"
}
}
}
],
"unevaluatedProperties": 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": {
"oneOf": [
{
"description": "operating system to install on",
"type": "array"
},
{
"description": "option to pass to tool",
"type": "string"
},
{
"description": "option to pass to tool",
"type": "boolean"
}
]
},
"install_env": {
"type": "object",
"additionalProperties": {
"oneOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
}
]
},
"description": "environment variables during tool installation"
},
"postinstall": {
"description": "command to run after tool installation",
"type": "string"
}
},
"required": ["version"],
"type": "object",
"additionalProperties": {
"oneOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "object",
"additionalProperties": true
}
]
}
}
]
},
"hooks": {
"description": "hooks to run",
"type": "object",
"additionalProperties": {
"oneOf": [
{
"description": "script to run",
"type": "string"
},
{
"description": "script to run",
"items": {
"description": "script to run",
"type": "string"
},
"type": "array"
},
{
"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"
},
{
"description": "scripts to run",
"items": {
"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"
},
"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"
},
"patterns": {
"type": "array",
"description": "patterns to watch for",
"items": {
"type": "string"
}
}
}
}
},
"prepare_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"
}
},
"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": {
"description": "confirmation message before running this task",
"type": "string"
},
"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": {
"description": "task name and args",
"oneOf": [
{
"type": "string"
},
{
"type": "array",
"items": {
"type": "string"
}
}
]
}
}
]
},
"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": {
"description": "task name and args",
"oneOf": [
{
"type": "string"
},
{
"type": "array",
"items": {
"type": "string"
}
}
]
}
}
]
},
"wait_for": {
"oneOf": [
{
"description": "task with args to wait for completion first",
"type": "string"
},
{
"description": "task with args to wait for completion first",
"items": {
"description": "task name and args",
"type": "string"
},
"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"
},
"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": {
"oneOf": [
{
"description": "operating system to install on",
"type": "array"
},
{
"description": "option to pass to tool",
"type": "string"
},
{
"description": "option to pass to tool",
"type": "boolean"
}
]
}
},
"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"
}
]
},
"raw": {
"default": false,
"description": "directly connect task to stdin/stdout/stderr",
"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"
}
},
"type": "object"
},
"task_template": {
"description": "task template that can be extended by tasks",
"allOf": [
{
"$ref": "#/$defs/task_props"
}
],
"unevaluatedProperties": 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"
}
}
]
},
"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"
},
"prepare": {
"type": "object",
"properties": {
"disable": {
"type": "array",
"items": {
"type": "string"
},
"description": "Disable specific prepare providers"
},
"npm": {
"$ref": "#/$defs/prepare_provider"
},
"yarn": {
"$ref": "#/$defs/prepare_provider"
},
"pnpm": {
"$ref": "#/$defs/prepare_provider"
},
"bun": {
"$ref": "#/$defs/prepare_provider"
},
"go": {
"$ref": "#/$defs/prepare_provider"
},
"pip": {
"$ref": "#/$defs/prepare_provider"
},
"poetry": {
"$ref": "#/$defs/prepare_provider"
},
"uv": {
"$ref": "#/$defs/prepare_provider"
},
"bundler": {
"$ref": "#/$defs/prepare_provider"
},
"composer": {
"$ref": "#/$defs/prepare_provider"
}
},
"additionalProperties": {
"$ref": "#/$defs/prepare_provider"
},
"description": "configure prepare providers"
},
"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
}
}
}