# https://mise.jdx.dev llms-full.txt <|firecrawl-page-1-lllmstxt|> ## Dev Environment Management [Skip to content](https://mise.jdx.dev/#VPContent) # mise-en-place The front-end to your dev env Pronounced "MEEZ ahn plahs" [Getting Started](https://mise.jdx.dev/getting-started.html) [Demo](https://mise.jdx.dev/demo.html) [About](https://mise.jdx.dev/about.html) [πŸ› οΈ\\ \\ **Dev Tools** \\ \\ mise is a polyglot tool version manager. It replaces tools like asdf, nvm, pyenv, rbenv, etc.](https://mise.jdx.dev/dev-tools/) [βš™\\ \\ **Environments** \\ \\ mise allows you to switch sets of env vars in different project directories. It can replace direnv.](https://mise.jdx.dev/environments/) [⚑\\ \\ **Tasks** \\ \\ mise is a task runner that can replace make, or npm scripts.](https://mise.jdx.dev/tasks/) <|firecrawl-page-2-lllmstxt|> ## Getting Started with mise [Skip to content](https://mise.jdx.dev/getting-started.html#VPContent) On this page # Getting Started [​](https://mise.jdx.dev/getting-started.html\#getting-started) This will show you how to install mise and get started with it. This is a suitable way when using an interactive shell like `bash`, `zsh`, or `fish`. ## 1\. Install `mise` CLI [​](https://mise.jdx.dev/getting-started.html\#installing-mise-cli) See [installing mise](https://mise.jdx.dev/installing-mise.html) for other ways to install mise ( `macport`, `apt`, `yum`, `nix`, etc.). Linux/macOSBrewWindowsDebian/Ubuntu (apt)Fedora 41+, RHEL/CentOS Stream 9+ (dnf) shell ``` curl https://mise.run | sh ``` By default, mise will be installed to `~/.local/bin` (this is simply a suggestion. `mise` can be installed anywhere). You can verify the installation by running: shell ``` ~/.local/bin/mise --version # mise 2024.x.x ``` - `~/.local/bin` does not need to be in `PATH`. mise will automatically add its own directory to `PATH` when [activated](https://mise.jdx.dev/getting-started.html#activate-mise). `mise` respects [`MISE_DATA_DIR`](https://mise.jdx.dev/configuration.html) and [`XDG_DATA_HOME`](https://mise.jdx.dev/configuration.html) if you'd like to change these locations. ## 2\. mise `exec` and `run` [​](https://mise.jdx.dev/getting-started.html\#mise-exec-run) Once `mise` is installed, you can immediately start using it. `mise` can be used to install and run [tools](https://mise.jdx.dev/dev-tools/), launch [tasks](https://mise.jdx.dev/tasks/), and manage [environment variables](https://mise.jdx.dev/environments/). The most essential feature `mise` provides is the ability to run [tools](https://mise.jdx.dev/dev-tools/) with specific versions. A simple way to run a shell command with a given tool is to use [`mise x|exec`](https://mise.jdx.dev/cli/exec.html). For example, here is how you can start a Python 3 interactive shell (REPL): > _In the examples below, use `~/.local/bin/mise` (or the absolute path to `mise`) if `mise` is not already on `PATH`_ sh ``` mise exec python@3 -- python # this will download and install Python if it is not already installed # Python 3.13.2 # >>> ... ``` or run node 22: sh ``` mise exec node@22 -- node -v # v22.x.x ``` [`mise x|exec`](https://mise.jdx.dev/cli/exec.html) is a powerful way to load the current `mise` context (tools & environment variables) without modifying your shell session or running ad-hoc commands with mise tools set. Installing [`tools`](https://mise.jdx.dev/dev-tools/) is as simple as running [`mise u|use`](https://mise.jdx.dev/cli/use.html). shell ``` mise use --global node@22 # install node 22 and set it as the global default mise exec -- node my-script.js # run my-script.js with node 22... ``` Another useful command is [`mise r|run`](https://mise.jdx.dev/cli/run.html) which allows you to run a [`mise task`](https://mise.jdx.dev/tasks/) or a script with the `mise` context. TIP You can set a shell alias in your shell's rc file like `alias x="mise x --"` to save some keystrokes. ## 3\. Activate `mise` optional [​](https://mise.jdx.dev/getting-started.html\#activate-mise) While using [`mise x|exec`](https://mise.jdx.dev/cli/exec.html) is useful, for interactive shells, you might prefer to activate `mise` to automatically load the `mise` context ( `tools` and `environment variables`) in your shell session. Another option is to use [shims](https://mise.jdx.dev/dev-tools/shims.html). - [`mise activate`](https://mise.jdx.dev/cli/activate.html) method updates your environment variable and `PATH` every time your prompt is run to ensure you use the correct versions. - [Shims](https://mise.jdx.dev/dev-tools/shims.html) are symlinks to the `mise` binary that intercept commands and load the appropriate environment. Note that [**shims do not support all the features of `mise activate`**](https://mise.jdx.dev/dev-tools/shims.html#shims-vs-path). For interactive shells, `mise activate` is recommended. In non-interactive sessions, like CI/CD, IDEs, and scripts, using `shims` might work best. You can also not use any and call `mise exec/run` directly instead. See [this guide](https://mise.jdx.dev/dev-tools/shims.html) for more information. Here is how you can activate `mise` depending on your shell and the installation method: https://mise.runBrewWindowsOther package managers bashzshfish sh ``` echo 'eval "$(~/.local/bin/mise activate bash)"' >> ~/.bashrc ``` sh ``` echo 'eval "$(~/.local/bin/mise activate zsh)"' >> ~/.zshrc ``` sh ``` echo '~/.local/bin/mise activate fish | source' >> ~/.config/fish/config.fish ``` Make sure you restart your shell session after modifying your rc file in order for it to take effect. You can run [`mise dr|doctor`](https://mise.jdx.dev/cli/doctor.html) to verify that mise is correctly installed and activated. Now that `mise` is activated or its shims have been added to `PATH`, `node` is also available directly! (without using `mise exec`): sh ``` mise use --global node@22 node -v # v22.x.x ``` Note that when you ran `mise use --global node@22`, `mise` updated the global `mise` configuration. ~/.config/mise/config.toml toml ``` [tools] node = "22" ``` ## 4\. Next steps [​](https://mise.jdx.dev/getting-started.html\#next-steps) Follow the [walkthrough](https://mise.jdx.dev/walkthrough.html) for more examples on how to use mise. ### Set up the autocompletion [​](https://mise.jdx.dev/getting-started.html\#autocompletion) See [autocompletion](https://mise.jdx.dev/installing-mise.html#autocompletion) to learn how to set up autocompletion for your shell. ### GitHub API rate limiting [​](https://mise.jdx.dev/getting-started.html\#github-api-rate-limiting) WARNING Many tools in mise require the use of the GitHub API. Unauthenticated requests to the GitHub API are often rate limited. If you see 4xx errors while using mise, you can set `MISE_GITHUB_TOKEN` or `GITHUB_TOKEN` to a token [generated from here](https://github.com/settings/tokens/new?description=MISE_GITHUB_TOKEN) which will likely fix the issue. The token does not require any scopes. <|firecrawl-page-3-lllmstxt|> ## TOML Task Configuration [Skip to content](https://mise.jdx.dev/tasks/toml-tasks.html#VPContent) On this page # TOML-based Tasks [​](https://mise.jdx.dev/tasks/toml-tasks.html\#toml-based-tasks) Tasks can be defined in `mise.toml` files in different ways. Trivial tasks can be written into a `[tasks]` section, while more detailed tasks each get their own section. ## Trivial task examples [​](https://mise.jdx.dev/tasks/toml-tasks.html\#trivial-task-examples) mise.toml toml ``` build = "cargo build" test = "cargo test" lint = "cargo clippy" ``` ## Detailed task examples [​](https://mise.jdx.dev/tasks/toml-tasks.html\#detailed-task-examples) mise.toml toml ``` [tasks.cleancache] run = "rm -rf .cache" hide = true # hide this task from the list [tasks.clean] depends = ['cleancache'] run = "cargo clean" # runs as a shell command [tasks.build] description = 'Build the CLI' run = "cargo build" alias = 'b' # `mise run b` [tasks.test] description = 'Run automated tests' # multiple commands are run in series run = [\ 'cargo test',\ './scripts/test-e2e.sh',\ ] dir = "{{cwd}}" # run in user's cwd, default is the project's base directory [tasks.lint] description = 'Lint with clippy' env = { RUST_BACKTRACE = '1' } # env vars for the script # you can specify a multiline script instead of individual commands run = """ #!/usr/bin/env bash cargo clippy """ [tasks.ci] # only dependencies to be run description = 'Run CI tasks' depends = ['build', 'lint', 'test'] [tasks.release] confirm = 'Are you sure you want to cut a new release?' description = 'Cut a new release' file = 'scripts/release.sh' # execute an external script ``` You can use [environment variables](https://mise.jdx.dev/environments/) or [`vars`](https://mise.jdx.dev/tasks/task-configuration.html#vars-options) to define common arguments: mise.toml toml ``` [env] VERBOSE_ARGS = '--verbose' # Vars can be shared between tasks like environment variables, # but they are not passed as environment variables to the scripts [vars] e2e_args = '--headless' [tasks.test] run = './scripts/test-e2e.sh {{vars.e2e_args}} $VERBOSE_ARGS' ``` ## Adding tasks [​](https://mise.jdx.dev/tasks/toml-tasks.html\#adding-tasks) You can edit the `mise.toml` file directly or using [`mise tasks add`](https://mise.jdx.dev/cli/tasks/add.html) shell ``` mise task add pre-commit --depends "test" --depends "render" -- echo pre-commit ``` will add the following to `mise.toml`: shell ``` [tasks.pre-commit] depends = ["test", "render"] run = "echo pre-commit" ``` ## Common options [​](https://mise.jdx.dev/tasks/toml-tasks.html\#common-options) For an exhaustive list, see [task configuration](https://mise.jdx.dev/tasks/task-configuration.html). ### Run command [​](https://mise.jdx.dev/tasks/toml-tasks.html\#run-command) Provide the script to run. Can be a single command or an array of commands: toml ``` [tasks.test] run = 'cargo test' ``` Commands are run in series. If a command fails, the task will stop and the remaining commands will not run. toml ``` [tasks.test] run = [\ 'cargo test',\ './scripts/test-e2e.sh',\ ] ``` You can specify an alternate command to run on Windows by using the `run_windows` key: toml ``` [tasks.test] run = 'cargo test' run_windows = 'cargo test --features windows' ``` ### Specifying which directory to use [​](https://mise.jdx.dev/tasks/toml-tasks.html\#specifying-which-directory-to-use) The [`dir`](https://mise.jdx.dev/tasks/task-configuration.html#dir) property determines the `cwd` in which the task is executed. You can use the directory from where the task was run with `dir = "{{cwd}}"`: toml ``` [tasks.test] run = 'cargo test' dir = "{{cwd}}" ``` Also, `MISE_ORIGINAL_CWD` is set to the original working directory and will be passed to the task. ### Adding a description and alias [​](https://mise.jdx.dev/tasks/toml-tasks.html\#adding-a-description-and-alias) You can add a description to a task and alias for a task. toml ``` [tasks.build] description = 'Build the CLI' run = "cargo build" alias = 'b' # `mise run b` ``` - This alias can be used to run the task - The description will be displayed when running [`mise tasks ls`](https://mise.jdx.dev/cli/tasks/ls.html) or [`mise run`](https://mise.jdx.dev/cli/run.html) with no arguments. shell ``` ❯ mise run Tasks # Select a tasks to run # > build Build the CLI # test Run the tests ``` ### Dependencies [​](https://mise.jdx.dev/tasks/toml-tasks.html\#dependencies) You can specify dependencies for a task. Dependencies are run before the task itself. If a dependency fails, the task will not run. toml ``` [tasks.build] run = 'cargo build' [tasks.test] depends = ['build'] ``` There are other ways to specify dependencies, see [wait\_for](https://mise.jdx.dev/tasks/task-configuration.html#wait-for) and [depends\_post](https://mise.jdx.dev/tasks/task-configuration.html#depends-post) ### Environment variables [​](https://mise.jdx.dev/tasks/toml-tasks.html\#environment-variables) You can specify environment variables for a task: toml ``` [tasks.lint] description = 'Lint with clippy' env = { RUST_BACKTRACE = '1' } # env vars for the script # you can specify a multiline script instead of individual commands run = """ #!/usr/bin/env bash cargo clippy """ ``` ### Sources / Outputs [​](https://mise.jdx.dev/tasks/toml-tasks.html\#sources-outputs) If you want to skip executing a task if certain files haven't changed (up-to-date), you should specify `sources` and `outputs`: toml ``` [tasks.build] description = 'Build the CLI' run = "cargo build" sources = ['Cargo.toml', 'src/**/*.rs'] # skip running if these files haven't changed outputs = ['target/debug/mycli'] ``` You can use `sources` alone if with [`mise watch`](https://mise.jdx.dev/cli/watch.html) to run the task when the sources change. ### Confirmation [​](https://mise.jdx.dev/tasks/toml-tasks.html\#confirmation) A message to show before running the task. The user will be prompted to confirm before the task is run. toml ``` [tasks.release] confirm = 'Are you sure you want to cut a new release?' description = 'Cut a new release' file = 'scripts/release.sh' ``` ## Specifying a shell or an interpreter [​](https://mise.jdx.dev/tasks/toml-tasks.html\#shell-shebang) Tasks are executed with `set -e` ( `set -o erropt`) if the shell is `sh`, `bash`, or `zsh`. This means that the script will exit if any command fails. You can disable this by running `set +e` in the script. toml ``` [tasks.echo] run = ''' set +e cd /nonexistent echo "This will not fail the task" ''' ``` You can specify a `shell` command to run the script with (default is [`sh -c`](https://mise.jdx.dev/configuration/settings.html#unix_default_inline_shell_args) or [`cmd /c`](https://mise.jdx.dev/configuration/settings.html#windows_default_inline_shell_args)): toml ``` [tasks.lint] shell = 'bash -c' run = "cargo clippy" ``` or use a shebang: toml ``` [tasks.lint] run = """ #!/usr/bin/env bash cargo clippy """ ``` By using a `shebang` (or `shell`), you can run tasks in different languages (e.g., Python, Node.js, Ruby, etc.): pythonpython + uvnodebundenoruby toml ``` [tools] python = 'latest' [tasks.python_task] run = ''' #!/usr/bin/env python for i in range(10): print(i) ''' ``` toml ``` [tools] uv = 'latest' [tasks.python_uv_task] run = """ #!/usr/bin/env -S uv run --script # /// script # dependencies = ["requests<3", "rich"] # /// import requests from rich.pretty import pprint resp = requests.get("https://peps.python.org/api/peps.json") data = resp.json() pprint([(k, v["title"]) for k, v in data.items()][:10]) """ ``` toml ``` [tools] node = 'lts' [tasks.node_task] shell = 'node -e' run = [\ "console.log('First line')",\ "console.log('Second line')",\ ] ``` toml ``` [tools] bun = 'latest' [tasks.bun_shell] description = "https://bun.sh/docs/runtime/shell" run = """ #!/usr/bin/env bun import { $ } from "bun"; const response = await fetch("https://example.com"); await $`cat < ${response} | wc -c`; // 1256 """ ``` toml ``` [tools] deno = 'latest' [tasks.deno_task] description = "A more complex task using Deno imports" run = ''' #!/usr/bin/env -S deno run import ProgressBar from "jsr:@deno-library/progress"; import { delay } from "jsr:@std/async"; if (!confirm('Start download?')) { Deno.exit(1); } const progress = new ProgressBar({ title: "downloading:", total: 100 }); let completed = 0; async function download() { while (completed <= 100) { await progress.render(completed++); await delay(10); } } await download(); ''' # ❯ mise run deno_task # [download_task] $ import ProgressBar from "jsr:@deno-library/progress"; # Start download? [y/N] y # downloading: ... ``` toml ``` [tools] ruby = 'latest' [tasks.ruby_task] run = """ #!/usr/bin/env ruby puts 'Hello, ruby!' """ ``` What's a shebang? What's the difference between `#!/usr/bin/env` and `#!/usr/bin/env -S` A shebang is the character sequence `#!` at the beginning of a script file that tells the system which program should be used to interpret/execute the script. The [env command](https://manpages.ubuntu.com/manpages/jammy/man1/env.1.html) comes from GNU Coreutils. `mise` does not use `env` but will behave similarly. For example, `#!/usr/bin/env python` will run the script with the Python interpreter found in the `PATH`. The `-S` flag allows passing multiple arguments to the interpreter. It treats the rest of the line as a single argument string to be split. This is useful when you need to specify interpreter flags or options. Example: `#!/usr/bin/env -S python -u` will run Python with unbuffered output. ## Using a file or remote script [​](https://mise.jdx.dev/tasks/toml-tasks.html\#using-a-file-or-remote-script) You can specify a file to run as a task: toml ``` [tasks.release] description = 'Cut a new release' file = 'scripts/release.sh' # execute an external script ``` ### Remote tasks [​](https://mise.jdx.dev/tasks/toml-tasks.html\#remote-tasks) Task files can be fetched remotely with multiple protocols: #### HTTP [​](https://mise.jdx.dev/tasks/toml-tasks.html\#http) toml ``` [tasks.build] file = "https://example.com/build.sh" ``` Please note that the file will be downloaded and executed. Make sure you trust the source. #### Git experimental [​](https://mise.jdx.dev/tasks/toml-tasks.html\#git) sshhttps toml ``` [tasks.build] file = "git::ssh://git@github.com/myorg/example.git//myfile?ref=v1.0.0" ``` toml ``` [tasks.build] file = "git::https://github.com/myorg/example.git//myfile?ref=v1.0.0" ``` Url format must follow these patterns `git:::////?` Required fields: - `protocol`: The git repository URL. - `url`: The git repository URL. - `path`: The path to the file in the repository. Optional fields: - `ref`: The git reference (branch, tag, commit). #### Cache [​](https://mise.jdx.dev/tasks/toml-tasks.html\#cache) Each task file is cached in the `MISE_CACHE_DIR` directory. If the file is updated, it will not be re-downloaded unless the cache is cleared. TIP You can reset the cache by running `mise cache clear`. You can use the `MISE_TASK_REMOTE_NO_CACHE` environment variable to disable caching of remote tasks. ## Arguments [​](https://mise.jdx.dev/tasks/toml-tasks.html\#arguments) By default, arguments are passed to the last script in the `run` array. So if a task was defined as: toml ``` [tasks.test] run = ['cargo test', './scripts/test-e2e.sh'] ``` Then running `mise run test foo bar` will pass `foo bar` to `./scripts/test-e2e.sh` but not to `cargo test`. You can also define arguments using templates: toml ``` [tasks.test] run = [\ 'cargo test {{arg(name="cargo_test_args", var=true)}}',\ './scripts/test-e2e.sh {{option(name="e2e_args")}}',\ ] ``` Then running `mise run test foo bar` will pass `foo bar` to `cargo test`. `mise run test --e2e-args baz` will pass `baz` to `./scripts/test-e2e.sh`. If any arguments are defined with templates then mise will not pass the arguments to the last script in the `run` array. TIP Using templates to define arguments will make them work with completion and help messages. ### Positional Arguments [​](https://mise.jdx.dev/tasks/toml-tasks.html\#positional-arguments) These are defined in scripts with `{{arg()}}`. They are used for positional arguments where the order matters. Example: toml ``` [tasks.test] run = 'cargo test {{arg(name="file")}}' # execute: mise run test my-test-file # runs: cargo test my-test-file ``` - `i`: The index of the argument. This can be used to specify the order of arguments. Defaults to the order they're defined in the scripts. - `name`: The name of the argument. This is used for help/error messages. - `var`: If `true`, multiple arguments can be passed. - `default`: The default value if the argument is not provided. ### Options [​](https://mise.jdx.dev/tasks/toml-tasks.html\#options) These are defined in scripts with `{{option()}}`. They are used for named arguments where the order doesn't matter. Example: toml ``` [tasks.test] run = 'cargo test {{option(name="file")}}' # execute: mise run test --file my-test-file # runs: cargo test my-test-file ``` - `name`: The name of the argument. This is used for help/error messages. - `var`: If `true`, multiple values can be passed. - `default`: The default value if the option is not provided. ### Flags [​](https://mise.jdx.dev/tasks/toml-tasks.html\#flags) Flags are like options except they don't take values. They are defined in scripts with `{{flag()}}`. Examples: toml ``` [tasks.echo] run = 'echo {{flag(name="myflag")}}' # execute: mise run echo --myflag # runs: echo true ``` toml ``` [tasks.maybeClean] run = """ if [ '{{flag(name='clean')}}' = 'true' ]; then echo 'cleaning' fi """ # execute: mise run maybeClean --clean # runs: echo cleaning ``` - `name`: The name of the flag. This is used for help/error messages. The value will be `true` if the flag is passed, and `false` otherwise. ### Usage spec [​](https://mise.jdx.dev/tasks/toml-tasks.html\#usage-spec) More advanced usage specs can be added to the task's `usage` field: toml ``` [tasks.add-user] description = "Add a user" usage = ''' arg "" default="unknown" complete "user" run="mise run list-users-completion" ''' run = 'echo {{arg(name="user")}}' [tasks.list-users-completion] hide = true quiet = true # this is mandatory to make completion work (makes the mise command just print "alice bob charlie") description = "List users" run = 'echo "alice\nbob\ncharlie"' ``` Arguments and flags defined in the usage spec are also set in the environment before running each script defined in the `run` field. The name of each variable is prepended with `usage_` keyword. toml ``` [tasks.usage-env-example] usage = ''' arg "myarg" "myarg description" default="foo" ''' run = 'echo myarg=$usage_myarg' # execute: mise run usage-env-example # outputs: myarg=foo # execute: mise run usage-env-example bar # outputs: myarg=bar ``` toml ``` [tasks.usage-env-example] usage = ''' flag "-m --myflag " default="false" ''' run = [\ 'echo "Command 1: $usage_myflag"',\ 'echo "Command 2: {{flag(name="myflag", default="false")}} $usage_myflag"',\ ] # execute: mise run usage-env-example # outputs: # Command 1: false # Command 2: false false # execute: mise run usage-env-example --myflag true # outputs: # Command 1: true # Command 2: true true ``` <|firecrawl-page-4-lllmstxt|> ## Mise Tool Registry [Skip to content](https://mise.jdx.dev/registry.html#VPContent) On this page # Registry [​](https://mise.jdx.dev/registry.html\#registry) List of all [tools](https://mise.jdx.dev/registry.html#tools) aliased by default in `mise`. You can use these shorthands with `mise use`. This allows you to use a tool without needing to know the full name. For example, to use the `aws-cli` tool, you can do the following: shell ``` mise use aws-cli ``` instead of shell ``` mise use aqua:aws/aws-cli ``` If a tool is not available in the registry, you can install it by its full name. [ubi](https://mise.jdx.dev/dev-tools/backends/ubi.html) and [aqua](https://mise.jdx.dev/dev-tools/backends/aqua.html) give you for example access to almost all programs available on GitHub. ## Backends [​](https://mise.jdx.dev/registry.html\#backends) In addition to built-in [core tools](https://mise.jdx.dev/core-tools.html), `mise` supports a variety of [backends](https://mise.jdx.dev/dev-tools/backends/) to install tools. In general, the preferred [backend](https://mise.jdx.dev/dev-tools/backends/) to use for new tools is the following: - [aqua](https://mise.jdx.dev/dev-tools/backends/aqua.html) \- offers the most features and security while not requiring plugins - [ubi](https://mise.jdx.dev/dev-tools/backends/ubi.html) \- Universal Binary Installer, offers a simple way to install tools from any GitHub/GitLab repo - [pipx](https://mise.jdx.dev/dev-tools/backends/pipx.html) \- only for python tools, requires python to be installed but this generally would always be the case for python tools - [npm](https://mise.jdx.dev/dev-tools/backends/npm.html) \- only for node tools, requires node to be installed but this generally would always be the case for node tools - [vfox](https://mise.jdx.dev/dev-tools/backends/vfox.html) \- only for tools that have unique installation requirements or need to modify env vars - [asdf](https://mise.jdx.dev/dev-tools/backends/asdf.html) \- only for tools that have unique installation requirements or need to modify env vars, doesn't support windows - [go](https://mise.jdx.dev/dev-tools/backends/go.html) \- only for go tools, requires go to be installed to compile. Because go tools can be distributed as a single binary, aqua/ubi are definitely preferred. - [cargo](https://mise.jdx.dev/dev-tools/backends/cargo.html) \- only for rust tools, requires rust to be installed to compile. Because rust tools can be distributed as a single binary, aqua/ubi are definitely preferred. - [dotnet](https://mise.jdx.dev/dev-tools/backends/dotnet.html) \- only for dotnet tools, requires dotnet to be installed to compile. Because dotnet tools can be distributed as a single binary, aqua/ubi are definitely preferred. ### Backends Priority [​](https://mise.jdx.dev/registry.html\#backends-priority) Each tool can define its own priority if it has more than one backend it supports. If you would like to disable a backend, you can do so with the following command: shell ``` mise settings disable_backends=asdf ``` This will disable the [asdf](https://mise.jdx.dev/dev-tools/backends/asdf.html) backend. See [Aliases](https://mise.jdx.dev/dev-tools/aliases.html) for a way to set a default backend for a tool. Note that the `asdf` backend is disabled by default on Windows. You can also specify the full name for a tool using `mise use aqua:1password/cli` if you want to use a specific backend. Source: [https://github.com/jdx/mise/blob/main/registry.toml](https://github.com/jdx/mise/blob/main/registry.toml) ## Tools [​](https://mise.jdx.dev/registry.html\#tools) Note that [`mise registry`](https://mise.jdx.dev/cli/registry.html) can be used to list all tools in the registry. [`mise use`](https://mise.jdx.dev/cli/use.html) without any arguments will show a `tui` to select a tool to install. | Short | Full | OS | | --- | --- | --- | | 1password | [aqua:1password/cli](https://github.com/1password/cli)
[asdf:mise-plugins/mise-1password-cli](https://github.com/mise-plugins/mise-1password-cli) | | | aapt2 | [asdf:mise-plugins/mise-aapt2](https://github.com/mise-plugins/mise-aapt2) | | | act | [aqua:nektos/act](https://github.com/nektos/act)
[ubi:nektos/act](https://github.com/nektos/act)
[asdf:gr1m0h/asdf-act](https://github.com/gr1m0h/asdf-act) | | | action-validator | [aqua:mpalmer/action-validator](https://github.com/mpalmer/action-validator)
[ubi:mpalmer/action-validator](https://github.com/mpalmer/action-validator)
[asdf:mpalmer/action-validator](https://github.com/mpalmer/action-validator) | linux, macos | | actionlint | [aqua:rhysd/actionlint](https://github.com/rhysd/actionlint)
[ubi:rhysd/actionlint](https://github.com/rhysd/actionlint)
[asdf:crazy-matt/asdf-actionlint](https://github.com/crazy-matt/asdf-actionlint)
[go:github.com/rhysd/actionlint/cmd/actionlint](https://pkg.go.dev/github.com/rhysd/actionlint/cmd/actionlint) | | | adr-tools | [aqua:npryce/adr-tools](https://github.com/npryce/adr-tools)
[asdf:https://gitlab.com/td7x/asdf/adr-tools](https://gitlab.com/td7x/asdf/adr-tools) | | | ag | [asdf:mise-plugins/mise-ag](https://github.com/mise-plugins/mise-ag) | | | age | [aqua:FiloSottile/age](https://github.com/FiloSottile/age)
[asdf:threkk/asdf-age](https://github.com/threkk/asdf-age) | | | age-plugin-yubikey | [ubi:str4d/age-plugin-yubikey](https://github.com/str4d/age-plugin-yubikey)
[asdf:joke/asdf-age-plugin-yubikey](https://github.com/joke/asdf-age-plugin-yubikey) | | | agebox | [aqua:slok/agebox](https://github.com/slok/agebox)
[ubi:slok/agebox](https://github.com/slok/agebox)
[asdf:slok/asdf-agebox](https://github.com/slok/asdf-agebox) | | | aichat | [aqua:sigoden/aichat](https://github.com/sigoden/aichat) | | | air | [aqua:air-verse/air](https://github.com/air-verse/air)
[asdf:pdemagny/asdf-air](https://github.com/pdemagny/asdf-air) | | | aks-engine | [aqua:Azure/aks-engine](https://github.com/Azure/aks-engine)
[asdf:robsonpeixoto/asdf-aks-engine](https://github.com/robsonpeixoto/asdf-aks-engine) | | | allure | [asdf:mise-plugins/mise-allure](https://github.com/mise-plugins/mise-allure) | | | allurectl | [ubi:allure-framework/allurectl](https://github.com/allure-framework/allurectl) | | | alp | [aqua:tkuchiki/alp](https://github.com/tkuchiki/alp)
[asdf:asdf-community/asdf-alp](https://github.com/asdf-community/asdf-alp) | | | amass | [ubi:owasp-amass/amass](https://github.com/owasp-amass/amass)
[asdf:dhoeric/asdf-amass](https://github.com/dhoeric/asdf-amass) | | | amazon-ecr-credential-helper | [aqua:awslabs/amazon-ecr-credential-helper](https://github.com/awslabs/amazon-ecr-credential-helper)
[asdf:dex4er/asdf-amazon-ecr-credential-helper](https://github.com/dex4er/asdf-amazon-ecr-credential-helper) | | | amp | [npm:@sourcegraph/amp](https://www.npmjs.com/package/@sourcegraph/amp) | | | android-sdk | [asdf:mise-plugins/mise-android-sdk](https://github.com/mise-plugins/mise-android-sdk) | | | ansible | [pipx:ansible](https://pypi.org/project/ansible) | | | ansible-core | [pipx:ansible-core](https://pypi.org/project/ansible-core) | | | ant | [asdf:mise-plugins/mise-ant](https://github.com/mise-plugins/mise-ant) | | | apko | [aqua:chainguard-dev/apko](https://github.com/chainguard-dev/apko)
[ubi:chainguard-dev/apko](https://github.com/chainguard-dev/apko)
[asdf:omissis/asdf-apko](https://github.com/omissis/asdf-apko) | | | apollo-ios | [asdf:mise-plugins/mise-apollo-ios-cli](https://github.com/mise-plugins/mise-apollo-ios-cli) | | | apollo-router | [ubi:apollographql/router](https://github.com/apollographql/router)
[asdf:safx/asdf-apollo-router](https://github.com/safx/asdf-apollo-router) | | | apollo-rover | [ubi:apollographql/rover](https://github.com/apollographql/rover) | | | aqua | [ubi:aquaproj/aqua](https://github.com/aquaproj/aqua) | | | arduino | [aqua:arduino/arduino-cli](https://github.com/arduino/arduino-cli)
[asdf:egnor/asdf-arduino-cli](https://github.com/egnor/asdf-arduino-cli) | | | argc | [ubi:sigoden/argc](https://github.com/sigoden/argc) | | | argo | [aqua:argoproj/argo-workflows](https://github.com/argoproj/argo-workflows)
[asdf:sudermanjr/asdf-argo](https://github.com/sudermanjr/asdf-argo) | | | argo-rollouts | [aqua:argoproj/argo-rollouts](https://github.com/argoproj/argo-rollouts)
[asdf:abatilo/asdf-argo-rollouts](https://github.com/abatilo/asdf-argo-rollouts) | | | argocd | [aqua:argoproj/argo-cd](https://github.com/argoproj/argo-cd)
[ubi:argoproj/argo-cd](https://github.com/argoproj/argo-cd)
[asdf:beardix/asdf-argocd](https://github.com/beardix/asdf-argocd) | | | asciidoctorj | [asdf:mise-plugins/mise-asciidoctorj](https://github.com/mise-plugins/mise-asciidoctorj) | | | assh | [ubi:moul/assh](https://github.com/moul/assh)
[asdf:mise-plugins/mise-assh](https://github.com/mise-plugins/mise-assh) | | | ast-grep | [aqua:ast-grep/ast-grep](https://github.com/ast-grep/ast-grep)
[cargo:ast-grep](https://crates.io/crates/ast-grep)
[npm:@ast-grep/cli](https://www.npmjs.com/package/@ast-grep/cli)
[pipx:ast-grep-cli](https://pypi.org/project/ast-grep-cli) | | | astro | [ubi:astronomer/astro-cli](https://github.com/astronomer/astro-cli) | | | atlas | [aqua:ariga/atlas](https://github.com/ariga/atlas)
[asdf:komi1230/asdf-atlas](https://github.com/komi1230/asdf-atlas) | | | atmos | [aqua:cloudposse/atmos](https://github.com/cloudposse/atmos)
[asdf:cloudposse/asdf-atmos](https://github.com/cloudposse/asdf-atmos) | | | atuin | [aqua:atuinsh/atuin](https://github.com/atuinsh/atuin)
[ubi:atuinsh/atuin](https://github.com/atuinsh/atuin) | | | auto-doc | [ubi:tj-actions/auto-doc](https://github.com/tj-actions/auto-doc)
[asdf:mise-plugins/mise-auto-doc](https://github.com/mise-plugins/mise-auto-doc) | | | aws-amplify | [ubi:aws-amplify/amplify-cli](https://github.com/aws-amplify/amplify-cli)
[asdf:LozanoMatheus/asdf-aws-amplify-cli](https://github.com/LozanoMatheus/asdf-aws-amplify-cli) | | | aws-cli | [aqua:aws/aws-cli](https://github.com/aws/aws-cli)
[asdf:MetricMike/asdf-awscli](https://github.com/MetricMike/asdf-awscli) | linux, macos | | aws-copilot | [aqua:aws/copilot-cli](https://github.com/aws/copilot-cli)
[asdf:NeoHsu/asdf-copilot](https://github.com/NeoHsu/asdf-copilot) | | | aws-iam-authenticator | [aqua:kubernetes-sigs/aws-iam-authenticator](https://github.com/kubernetes-sigs/aws-iam-authenticator)
[asdf:zekker6/asdf-aws-iam-authenticator](https://github.com/zekker6/asdf-aws-iam-authenticator) | | | aws-nuke | [aqua:ekristen/aws-nuke](https://github.com/ekristen/aws-nuke)
[asdf:bersalazar/asdf-aws-nuke](https://github.com/bersalazar/asdf-aws-nuke) | | | aws-sam | [aqua:aws/aws-sam-cli](https://github.com/aws/aws-sam-cli)
[pipx:aws-sam-cli](https://pypi.org/project/aws-sam-cli)
[asdf:mise-plugins/mise-pyapp](https://github.com/mise-plugins/mise-pyapp) | | | aws-sso | [aqua:synfinatic/aws-sso-cli](https://github.com/synfinatic/aws-sso-cli)
[asdf:adamcrews/asdf-aws-sso-cli](https://github.com/adamcrews/asdf-aws-sso-cli) | | | aws-vault | [aqua:99designs/aws-vault](https://github.com/99designs/aws-vault)
[asdf:karancode/asdf-aws-vault](https://github.com/karancode/asdf-aws-vault) | | | awscli-local | [asdf:mise-plugins/mise-awscli-local](https://github.com/mise-plugins/mise-awscli-local) | | | awsebcli | [pipx:awsebcli](https://pypi.org/project/awsebcli)
[asdf:mise-plugins/mise-pyapp](https://github.com/mise-plugins/mise-pyapp) | | | awsls | [ubi:jckuester/awsls](https://github.com/jckuester/awsls)
[asdf:chessmango/asdf-awsls](https://github.com/chessmango/asdf-awsls) | | | awsrm | [ubi:jckuester/awsrm](https://github.com/jckuester/awsrm)
[asdf:chessmango/asdf-awsrm](https://github.com/chessmango/asdf-awsrm) | | | awsweeper | [ubi:jckuester/awsweeper](https://github.com/jckuester/awsweeper)
[asdf:chessmango/asdf-awsweeper](https://github.com/chessmango/asdf-awsweeper) | | | azure | [asdf:mise-plugins/mise-azure-cli](https://github.com/mise-plugins/mise-azure-cli) | | | azure-functions-core-tools | [asdf:mise-plugins/mise-azure-functions-core-tools](https://github.com/mise-plugins/mise-azure-functions-core-tools) | | | azure-kubelogin | [aqua:Azure/kubelogin](https://github.com/Azure/kubelogin)
[asdf:sechmann/asdf-kubelogin](https://github.com/sechmann/asdf-kubelogin) | | | babashka | [ubi:babashka/babashka](https://github.com/babashka/babashka)
[asdf:pitch-io/asdf-babashka](https://github.com/pitch-io/asdf-babashka) | | | balena | [ubi:balena-io/balena-cli](https://github.com/balena-io/balena-cli)
[asdf:jaredallard/asdf-balena-cli](https://github.com/jaredallard/asdf-balena-cli) | | | bashbot | [aqua:mathew-fleisch/bashbot](https://github.com/mathew-fleisch/bashbot)
[asdf:mathew-fleisch/asdf-bashbot](https://github.com/mathew-fleisch/asdf-bashbot) | | | bashly | [asdf:mise-plugins/mise-bashly](https://github.com/mise-plugins/mise-bashly) | | | bat | [aqua:sharkdp/bat](https://github.com/sharkdp/bat)
[ubi:sharkdp/bat](https://github.com/sharkdp/bat)
[cargo:bat](https://crates.io/crates/bat)
[asdf:https://gitlab.com/wt0f/asdf-bat](https://gitlab.com/wt0f/asdf-bat) | | | bat-extras | [asdf:mise-plugins/mise-bat-extras](https://github.com/mise-plugins/mise-bat-extras) | | | bats | [aqua:bats-core/bats-core](https://github.com/bats-core/bats-core)
[asdf:timgluz/asdf-bats](https://github.com/timgluz/asdf-bats) | linux, macos | | bazel | [aqua:bazelbuild/bazel](https://github.com/bazelbuild/bazel)
[ubi:bazelbuild/bazel](https://github.com/bazelbuild/bazel)
[asdf:rajatvig/asdf-bazel](https://github.com/rajatvig/asdf-bazel) | | | bazel-watcher | [aqua:bazelbuild/bazel-watcher](https://github.com/bazelbuild/bazel-watcher) | | | bazelisk | [aqua:bazelbuild/bazelisk](https://github.com/bazelbuild/bazelisk)
[asdf:josephtate/asdf-bazelisk](https://github.com/josephtate/asdf-bazelisk) | | | bbr-s3-config-validator | [asdf:mise-plugins/tanzu-plug-in-for-asdf](https://github.com/mise-plugins/tanzu-plug-in-for-asdf) | | | benthos | [aqua:benthosdev/benthos](https://github.com/benthosdev/benthos)
[asdf:benthosdev/benthos-asdf](https://github.com/benthosdev/benthos-asdf) | | | bfs | [asdf:mise-plugins/mise-bfs](https://github.com/mise-plugins/mise-bfs) | | | binnacle | [aqua:Traackr/binnacle](https://github.com/Traackr/binnacle)
[asdf:Traackr/asdf-binnacle](https://github.com/Traackr/asdf-binnacle) | | | biome | [aqua:biomejs/biome](https://github.com/biomejs/biome)
[ubi:biomejs/biome](https://github.com/biomejs/biome)
[npm:@biomejs/biome](https://www.npmjs.com/package/@biomejs/biome) | | | bitwarden | [aqua:bitwarden/clients](https://github.com/bitwarden/clients)
[asdf:vixus0/asdf-bitwarden](https://github.com/vixus0/asdf-bitwarden) | | | bitwarden-secrets-manager | [ubi:bitwarden/sdk](https://github.com/bitwarden/sdk)
[asdf:asdf-community/asdf-bitwarden-secrets-manager](https://github.com/asdf-community/asdf-bitwarden-secrets-manager) | | | black | [aqua:psf/black](https://github.com/psf/black) | | | bob | [ubi:MordechaiHadad/bob](https://github.com/MordechaiHadad/bob)
[cargo:bob-nvim](https://crates.io/crates/bob-nvim) | | | boilerplate | [aqua:gruntwork-io/boilerplate](https://github.com/gruntwork-io/boilerplate) | | | bombardier | [aqua:codesenberg/bombardier](https://github.com/codesenberg/bombardier)
[asdf:NeoHsu/asdf-bombardier](https://github.com/NeoHsu/asdf-bombardier) | | | borg | [aqua:borgbackup/borg](https://github.com/borgbackup/borg)
[asdf:lwiechec/asdf-borg](https://github.com/lwiechec/asdf-borg) | | | bosh | [aqua:cloudfoundry/bosh-cli](https://github.com/cloudfoundry/bosh-cli)
[asdf:mise-plugins/tanzu-plug-in-for-asdf](https://github.com/mise-plugins/tanzu-plug-in-for-asdf) | | | bosh-backup-and-restore | [ubi:cloudfoundry-incubator/bosh-backup-and-restore](https://github.com/cloudfoundry-incubator/bosh-backup-and-restore)
[asdf:mise-plugins/tanzu-plug-in-for-asdf](https://github.com/mise-plugins/tanzu-plug-in-for-asdf) | linux, macos | | bottom | [aqua:ClementTsang/bottom](https://github.com/ClementTsang/bottom)
[asdf:carbonteq/asdf-btm](https://github.com/carbonteq/asdf-btm) | | | boundary | [aqua:hashicorp/boundary](https://github.com/hashicorp/boundary)
[asdf:mise-plugins/mise-hashicorp](https://github.com/mise-plugins/mise-hashicorp) | | | bpkg | [asdf:mise-plugins/mise-bpkg](https://github.com/mise-plugins/mise-bpkg) | | | brig | [aqua:brigadecore/brigade](https://github.com/brigadecore/brigade)
[asdf:Ibotta/asdf-brig](https://github.com/Ibotta/asdf-brig) | | | btop | [aqua:aristocratos/btop](https://github.com/aristocratos/btop)
[ubi:aristocratos/btop](https://github.com/aristocratos/btop) | | | btrace | [asdf:mise-plugins/mise-btrace](https://github.com/mise-plugins/mise-btrace) | | | buf | [aqua:bufbuild/buf](https://github.com/bufbuild/buf)
[ubi:bufbuild/buf](https://github.com/bufbuild/buf)
[asdf:truepay/asdf-buf](https://github.com/truepay/asdf-buf) | | | buildifier | [aqua:bazelbuild/buildtools/buildifier](https://github.com/bazelbuild/buildtools) | | | buildpack | [aqua:buildpacks/pack](https://github.com/buildpacks/pack)
[asdf:johnlayton/asdf-buildpack](https://github.com/johnlayton/asdf-buildpack) | | | bun | [core:bun](https://mise.jdx.dev/lang/bun.html) | | | cabal | [aqua:haskell/cabal/cabal-install](https://github.com/haskell/cabal) | | | caddy | [aqua:caddyserver/caddy](https://github.com/caddyserver/caddy)
[asdf:salasrod/asdf-caddy](https://github.com/salasrod/asdf-caddy) | | | calendarsync | [aqua:inovex/CalendarSync](https://github.com/inovex/CalendarSync)
[ubi:inovex/CalendarSync](https://github.com/inovex/CalendarSync)
[asdf:FeryET/asdf-calendarsync](https://github.com/FeryET/asdf-calendarsync) | | | calicoctl | [aqua:projectcalico/calico/calicoctl](https://github.com/projectcalico/calico)
[asdf:TheCubicleJockey/asdf-calicoctl](https://github.com/TheCubicleJockey/asdf-calicoctl) | | | carapace | [aqua:carapace-sh/carapace-bin](https://github.com/carapace-sh/carapace-bin) | | | cargo-binstall | [aqua:cargo-bins/cargo-binstall](https://github.com/cargo-bins/cargo-binstall)
[ubi:cargo-bins/cargo-binstall](https://github.com/cargo-bins/cargo-binstall)
[cargo:cargo-binstall](https://crates.io/crates/cargo-binstall) | | | cargo-insta | [aqua:mitsuhiko/insta](https://github.com/mitsuhiko/insta)
[ubi:mitsuhiko/insta](https://github.com/mitsuhiko/insta) | | | cargo-make | [aqua:sagiegurari/cargo-make](https://github.com/sagiegurari/cargo-make)
[ubi:sagiegurari/cargo-make](https://github.com/sagiegurari/cargo-make)
[asdf:mise-plugins/asdf-cargo-make](https://github.com/mise-plugins/asdf-cargo-make) | | | carp | [ubi:carp-lang/Carp](https://github.com/carp-lang/Carp)
[asdf:susurri/asdf-carp](https://github.com/susurri/asdf-carp) | | | carthage | [asdf:mise-plugins/mise-carthage](https://github.com/mise-plugins/mise-carthage) | | | ccache | [ubi:ccache/ccache](https://github.com/ccache/ccache)
[asdf:asdf-community/asdf-ccache](https://github.com/asdf-community/asdf-ccache) | | | certstrap | [ubi:square/certstrap](https://github.com/square/certstrap)
[asdf:carnei-ro/asdf-certstrap](https://github.com/carnei-ro/asdf-certstrap) | | | cf | [asdf:mise-plugins/mise-cf](https://github.com/mise-plugins/mise-cf) | | | cfn-lint | [pipx:cfn-lint](https://pypi.org/project/cfn-lint) | | | cfssl | [aqua:cloudflare/cfssl/cfssl](https://github.com/cloudflare/cfssl)
[asdf:mathew-fleisch/asdf-cfssl](https://github.com/mathew-fleisch/asdf-cfssl) | | | chamber | [aqua:segmentio/chamber](https://github.com/segmentio/chamber)
[ubi:segmentio/chamber](https://github.com/segmentio/chamber)
[asdf:mintel/asdf-chamber](https://github.com/mintel/asdf-chamber) | | | changie | [aqua:miniscruff/changie](https://github.com/miniscruff/changie)
[ubi:miniscruff/changie](https://github.com/miniscruff/changie)
[asdf:pdemagny/asdf-changie](https://github.com/pdemagny/asdf-changie) | | | cheat | [aqua:cheat/cheat](https://github.com/cheat/cheat)
[asdf:jmoratilla/asdf-cheat-plugin](https://github.com/jmoratilla/asdf-cheat-plugin) | | | checkmake | [aqua:mrtazz/checkmake](https://github.com/mrtazz/checkmake) | | | checkov | [aqua:bridgecrewio/checkov](https://github.com/bridgecrewio/checkov)
[ubi:bridgecrewio/checkov](https://github.com/bridgecrewio/checkov)
[asdf:bosmak/asdf-checkov](https://github.com/bosmak/asdf-checkov) | | | chezmoi | [aqua:twpayne/chezmoi](https://github.com/twpayne/chezmoi)
[ubi:twpayne/chezmoi](https://github.com/twpayne/chezmoi)
[asdf:joke/asdf-chezmoi](https://github.com/joke/asdf-chezmoi) | | | chezscheme | [asdf:mise-plugins/mise-chezscheme](https://github.com/mise-plugins/mise-chezscheme) | | | chicken | [asdf:mise-plugins/mise-chicken](https://github.com/mise-plugins/mise-chicken) | | | chisel | [aqua:jpillora/chisel](https://github.com/jpillora/chisel)
[ubi:jpillora/chisel](https://github.com/jpillora/chisel)
[go:github.com/jpillora/chisel](https://pkg.go.dev/github.com/jpillora/chisel)
[asdf:lwiechec/asdf-chisel](https://github.com/lwiechec/asdf-chisel) | | | choose | [aqua:theryangeary/choose](https://github.com/theryangeary/choose)
[ubi:theryangeary/choose](https://github.com/theryangeary/choose)
[cargo:choose](https://crates.io/crates/choose)
[asdf:carbonteq/asdf-choose](https://github.com/carbonteq/asdf-choose) | | | chromedriver | [asdf:mise-plugins/mise-chromedriver](https://github.com/mise-plugins/mise-chromedriver) | | | cidr-merger | [ubi:zhanhb/cidr-merger](https://github.com/zhanhb/cidr-merger)
[asdf:ORCID/asdf-cidr-merger](https://github.com/ORCID/asdf-cidr-merger) | | | cidrchk | [ubi:mhausenblas/cidrchk](https://github.com/mhausenblas/cidrchk)
[asdf:ORCID/asdf-cidrchk](https://github.com/ORCID/asdf-cidrchk) | | | cilium-cli | [aqua:cilium/cilium-cli](https://github.com/cilium/cilium-cli)
[ubi:cilium/cilium-cli](https://github.com/cilium/cilium-cli)
[asdf:carnei-ro/asdf-cilium-cli](https://github.com/carnei-ro/asdf-cilium-cli) | | | cilium-hubble | [ubi:cilium/hubble](https://github.com/cilium/hubble)
[asdf:NitriKx/asdf-cilium-hubble](https://github.com/NitriKx/asdf-cilium-hubble) | | | circleci | [aqua:CircleCI-Public/circleci-cli](https://github.com/CircleCI-Public/circleci-cli)
[ubi:CircleCI-Public/circleci-cli](https://github.com/CircleCI-Public/circleci-cli)
[asdf:ucpr/asdf-circleci-cli](https://github.com/ucpr/asdf-circleci-cli) | | | clang | [asdf:mise-plugins/mise-llvm](https://github.com/mise-plugins/mise-llvm)
[vfox:mise-plugins/vfox-clang](https://github.com/mise-plugins/vfox-clang) | | | clang-format | [asdf:mise-plugins/mise-llvm](https://github.com/mise-plugins/mise-llvm) | | | clangd | [asdf:mise-plugins/mise-llvm](https://github.com/mise-plugins/mise-llvm) | | | clarinet | [ubi:hirosystems/clarinet](https://github.com/hirosystems/clarinet)
[asdf:alexgo-io/asdf-clarinet](https://github.com/alexgo-io/asdf-clarinet) | linux, macos | | claude | [npm:@anthropic-ai/claude-code](https://www.npmjs.com/package/@anthropic-ai/claude-code) | | | cli53 | [aqua:barnybug/cli53](https://github.com/barnybug/cli53) | | | clickhouse | [asdf:mise-plugins/mise-clickhouse](https://github.com/mise-plugins/mise-clickhouse) | | | clj-kondo | [ubi:clj-kondo/clj-kondo](https://github.com/clj-kondo/clj-kondo)
[asdf:rynkowsg/asdf-clj-kondo](https://github.com/rynkowsg/asdf-clj-kondo) | | | cljstyle | [ubi:greglook/cljstyle](https://github.com/greglook/cljstyle)
[asdf:abogoyavlensky/asdf-cljstyle](https://github.com/abogoyavlensky/asdf-cljstyle) | linux, macos | | clojure | [asdf:mise-plugins/mise-clojure](https://github.com/mise-plugins/mise-clojure) | | | cloud-sql-proxy | [aqua:GoogleCloudPlatform/cloud-sql-proxy](https://github.com/GoogleCloudPlatform/cloud-sql-proxy)
[asdf:pbr0ck3r/asdf-cloud-sql-proxy](https://github.com/pbr0ck3r/asdf-cloud-sql-proxy) | | | cloudflared | [aqua:cloudflare/cloudflared](https://github.com/cloudflare/cloudflared)
[asdf:threkk/asdf-cloudflared](https://github.com/threkk/asdf-cloudflared) | | | clusterawsadm | [ubi:kubernetes-sigs/cluster-api-provider-aws](https://github.com/kubernetes-sigs/cluster-api-provider-aws)
[asdf:kahun/asdf-clusterawsadm](https://github.com/kahun/asdf-clusterawsadm) | | | clusterctl | [aqua:kubernetes-sigs/cluster-api](https://github.com/kubernetes-sigs/cluster-api)
[asdf:pfnet-research/asdf-clusterctl](https://github.com/pfnet-research/asdf-clusterctl) | | | cmake | [asdf:mise-plugins/mise-cmake](https://github.com/mise-plugins/mise-cmake)
[vfox:mise-plugins/vfox-cmake](https://github.com/mise-plugins/vfox-cmake) | | | cmctl | [aqua:cert-manager/cmctl](https://github.com/cert-manager/cmctl)
[asdf:asdf-community/asdf-cmctl](https://github.com/asdf-community/asdf-cmctl) | | | cmdx | [aqua:suzuki-shunsuke/cmdx](https://github.com/suzuki-shunsuke/cmdx)
[ubi:suzuki-shunsuke/cmdx](https://github.com/suzuki-shunsuke/cmdx) | | | cockroach | [aqua:cockroachdb/cockroach](https://github.com/cockroachdb/cockroach)
[asdf:salasrod/asdf-cockroach](https://github.com/salasrod/asdf-cockroach) | | | cocoapods | [asdf:mise-plugins/mise-cocoapods](https://github.com/mise-plugins/mise-cocoapods) | | | cocogitto | [aqua:cocogitto/cocogitto](https://github.com/cocogitto/cocogitto) | | | codebuff | [npm:codebuff](https://www.npmjs.com/package/codebuff) | | | codefresh | [ubi:codefresh-io/cli](https://github.com/codefresh-io/cli)
[asdf:gurukulkarni/asdf-codefresh](https://github.com/gurukulkarni/asdf-codefresh) | | | codeql | [asdf:mise-plugins/mise-codeql](https://github.com/mise-plugins/mise-codeql) | | | coder | [aqua:coder/coder](https://github.com/coder/coder)
[asdf:mise-plugins/asdf-coder](https://github.com/mise-plugins/asdf-coder) | | | colima | [aqua:abiosoft/colima](https://github.com/abiosoft/colima)
[ubi:abiosoft/colima](https://github.com/abiosoft/colima)
[asdf:CrouchingMuppet/asdf-colima](https://github.com/CrouchingMuppet/asdf-colima) | | | committed | [aqua:crate-ci/committed](https://github.com/crate-ci/committed) | | | conan | [pipx:conan](https://pypi.org/project/conan)
[asdf:mise-plugins/mise-pyapp](https://github.com/mise-plugins/mise-pyapp) | | | concourse | [aqua:concourse/concourse/concourse](https://github.com/concourse/concourse)
[asdf:mattysweeps/asdf-concourse](https://github.com/mattysweeps/asdf-concourse) | | | conduit | [ubi:ConduitIO/conduit](https://github.com/ConduitIO/conduit)
[asdf:gmcabrita/asdf-conduit](https://github.com/gmcabrita/asdf-conduit) | | | conform | [aqua:siderolabs/conform](https://github.com/siderolabs/conform)
[asdf:skyzyx/asdf-conform](https://github.com/skyzyx/asdf-conform) | linux, macos | | conftest | [aqua:open-policy-agent/conftest](https://github.com/open-policy-agent/conftest)
[asdf:looztra/asdf-conftest](https://github.com/looztra/asdf-conftest) | | | consul | [aqua:hashicorp/consul](https://github.com/hashicorp/consul)
[asdf:mise-plugins/mise-hashicorp](https://github.com/mise-plugins/mise-hashicorp) | | | container | [aqua:apple/container](https://github.com/apple/container)
[ubi:apple/container](https://github.com/apple/container) | macos | | container-structure-test | [aqua:GoogleContainerTools/container-structure-test](https://github.com/GoogleContainerTools/container-structure-test)
[asdf:FeryET/asdf-container-structure-test](https://github.com/FeryET/asdf-container-structure-test) | | | cookiecutter | [pipx:cookiecutter](https://pypi.org/project/cookiecutter)
[asdf:shawon-crosen/asdf-cookiecutter](https://github.com/shawon-crosen/asdf-cookiecutter) | | | copier | [pipx:copier](https://pypi.org/project/copier)
[asdf:looztra/asdf-copier](https://github.com/looztra/asdf-copier) | | | copper | [aqua:cloud66-oss/copper](https://github.com/cloud66-oss/copper)
[ubi:cloud66-oss/copper](https://github.com/cloud66-oss/copper)
[asdf:vladlosev/asdf-copper](https://github.com/vladlosev/asdf-copper) | linux, macos | | coq | [asdf:mise-plugins/mise-coq](https://github.com/mise-plugins/mise-coq) | | | coredns | [ubi:coredns/coredns](https://github.com/coredns/coredns)
[asdf:s3than/asdf-coredns](https://github.com/s3than/asdf-coredns) | | | coreutils | [aqua:uutils/coreutils](https://github.com/uutils/coreutils)
[ubi:uutils/coreutils](https://github.com/uutils/coreutils) | | | cosign | [aqua:sigstore/cosign](https://github.com/sigstore/cosign)
[asdf:https://gitlab.com/wt0f/asdf-cosign](https://gitlab.com/wt0f/asdf-cosign) | | | coursier | [ubi:coursier/coursier](https://github.com/coursier/coursier)
[asdf:jiahuili430/asdf-coursier](https://github.com/jiahuili430/asdf-coursier) | | | cowsay | [npm:cowsay](https://www.npmjs.com/package/cowsay) | | | crane | [aqua:google/go-containerregistry](https://github.com/google/go-containerregistry)
[ubi:google/go-containerregistry](https://github.com/google/go-containerregistry)
[asdf:dmpe/asdf-crane](https://github.com/dmpe/asdf-crane) | | | crc | [asdf:mise-plugins/mise-crc](https://github.com/mise-plugins/mise-crc) | | | credhub | [aqua:cloudfoundry/credhub-cli](https://github.com/cloudfoundry/credhub-cli)
[asdf:mise-plugins/tanzu-plug-in-for-asdf](https://github.com/mise-plugins/tanzu-plug-in-for-asdf) | | | crictl | [aqua:kubernetes-sigs/cri-tools/crictl](https://github.com/kubernetes-sigs/cri-tools)
[asdf:FairwindsOps/asdf-crictl](https://github.com/FairwindsOps/asdf-crictl) | | | crossplane | [aqua:crossplane/crossplane](https://github.com/crossplane/crossplane)
[asdf:joke/asdf-crossplane-cli](https://github.com/joke/asdf-crossplane-cli) | | | crystal | [asdf:mise-plugins/mise-crystal](https://github.com/mise-plugins/mise-crystal)
[vfox:mise-plugins/vfox-crystal](https://github.com/mise-plugins/vfox-crystal) | | | cspell | [npm:cspell](https://www.npmjs.com/package/cspell) | | | ctlptl | [aqua:tilt-dev/ctlptl](https://github.com/tilt-dev/ctlptl)
[asdf:ezcater/asdf-ctlptl](https://github.com/ezcater/asdf-ctlptl) | | | ctop | [aqua:bcicen/ctop](https://github.com/bcicen/ctop)
[ubi:bcicen/ctop](https://github.com/bcicen/ctop)
[asdf:NeoHsu/asdf-ctop](https://github.com/NeoHsu/asdf-ctop) | | | cue | [aqua:cue-lang/cue](https://github.com/cue-lang/cue)
[asdf:asdf-community/asdf-cue](https://github.com/asdf-community/asdf-cue) | | | curlie | [aqua:rs/curlie](https://github.com/rs/curlie) | | | cyclonedx | [aqua:CycloneDX/cyclonedx-cli](https://github.com/CycloneDX/cyclonedx-cli)
[asdf:xeedio/asdf-cyclonedx](https://github.com/xeedio/asdf-cyclonedx) | | | dagger | [aqua:dagger/dagger](https://github.com/dagger/dagger)
[asdf:virtualstaticvoid/asdf-dagger](https://github.com/virtualstaticvoid/asdf-dagger) | | | dagu | [aqua:dagu-org/dagu](https://github.com/dagu-org/dagu)
[ubi:dagu-org/dagu](https://github.com/dagu-org/dagu) | | | danger-js | [asdf:mise-plugins/mise-danger-js](https://github.com/mise-plugins/mise-danger-js) | | | danger-swift | [spm:danger/swift](https://mise.jdx.dev/registry.html) | | | dapr | [aqua:dapr/cli](https://github.com/dapr/cli)
[asdf:asdf-community/asdf-dapr-cli](https://github.com/asdf-community/asdf-dapr-cli) | | | dart | [asdf:mise-plugins/mise-dart](https://github.com/mise-plugins/mise-dart)
[vfox:mise-plugins/vfox-dart](https://github.com/mise-plugins/vfox-dart) | | | dasel | [aqua:TomWright/dasel](https://github.com/TomWright/dasel)
[asdf:asdf-community/asdf-dasel](https://github.com/asdf-community/asdf-dasel) | | | databricks-cli | [ubi:databricks/cli](https://github.com/databricks/cli) | | | datree | [aqua:datreeio/datree](https://github.com/datreeio/datree)
[asdf:lukeab/asdf-datree](https://github.com/lukeab/asdf-datree) | | | daytona | [asdf:mise-plugins/mise-daytona](https://github.com/mise-plugins/mise-daytona) | | | dbmate | [aqua:amacneil/dbmate](https://github.com/amacneil/dbmate)
[asdf:juusujanar/asdf-dbmate](https://github.com/juusujanar/asdf-dbmate) | | | deck | [aqua:Kong/deck](https://github.com/Kong/deck)
[asdf:nutellinoit/asdf-deck](https://github.com/nutellinoit/asdf-deck) | | | delta | [aqua:dandavison/delta](https://github.com/dandavison/delta)
[ubi:dandavison/delta](https://github.com/dandavison/delta)
[asdf:andweeb/asdf-delta](https://github.com/andweeb/asdf-delta)
[cargo:git-delta](https://crates.io/crates/git-delta) | | | deno | [core:deno](https://mise.jdx.dev/lang/deno.html) | | | depot | [ubi:depot/cli](https://github.com/depot/cli)
[asdf:depot/asdf-depot](https://github.com/depot/asdf-depot) | | | desk | [aqua:jamesob/desk](https://github.com/jamesob/desk)
[asdf:endorama/asdf-desk](https://github.com/endorama/asdf-desk) | linux, macos | | devspace | [aqua:devspace-sh/devspace](https://github.com/devspace-sh/devspace)
[asdf:NeoHsu/asdf-devspace](https://github.com/NeoHsu/asdf-devspace) | | | dhall | [asdf:mise-plugins/mise-dhall](https://github.com/mise-plugins/mise-dhall) | | | diffoci | [aqua:reproducible-containers/diffoci](https://github.com/reproducible-containers/diffoci) | | | difftastic | [aqua:Wilfred/difftastic](https://github.com/Wilfred/difftastic)
[ubi:Wilfred/difftastic](https://github.com/Wilfred/difftastic)
[asdf:volf52/asdf-difftastic](https://github.com/volf52/asdf-difftastic) | | | digdag | [asdf:mise-plugins/mise-digdag](https://github.com/mise-plugins/mise-digdag) | | | direnv | [aqua:direnv/direnv](https://github.com/direnv/direnv)
[asdf:asdf-community/asdf-direnv](https://github.com/asdf-community/asdf-direnv) | | | dive | [aqua:wagoodman/dive](https://github.com/wagoodman/dive)
[ubi:wagoodman/dive](https://github.com/wagoodman/dive)
[asdf:looztra/asdf-dive](https://github.com/looztra/asdf-dive) | | | djinni | [ubi:cross-language-cpp/djinni-generator](https://github.com/cross-language-cpp/djinni-generator)
[asdf:cross-language-cpp/asdf-djinni](https://github.com/cross-language-cpp/asdf-djinni) | | | dmd | [asdf:mise-plugins/mise-dmd](https://github.com/mise-plugins/mise-dmd) | | | docker-cli | [aqua:docker/cli](https://github.com/docker/cli) | | | docker-compose | [aqua:docker/compose](https://github.com/docker/compose) | | | docker-slim | [aqua:mintoolkit/mint](https://github.com/mintoolkit/mint)
[ubi:mintoolkit/mint](https://github.com/mintoolkit/mint)
[asdf:xataz/asdf-docker-slim](https://github.com/xataz/asdf-docker-slim) | linux, macos | | dockle | [aqua:goodwithtech/dockle](https://github.com/goodwithtech/dockle)
[asdf:mathew-fleisch/asdf-dockle](https://github.com/mathew-fleisch/asdf-dockle) | | | doctl | [aqua:digitalocean/doctl](https://github.com/digitalocean/doctl)
[ubi:digitalocean/doctl](https://github.com/digitalocean/doctl)
[asdf:maristgeek/asdf-doctl](https://github.com/maristgeek/asdf-doctl) | | | doctoolchain | [asdf:mise-plugins/mise-doctoolchain](https://github.com/mise-plugins/mise-doctoolchain) | | | docuum | [aqua:stepchowfun/docuum](https://github.com/stepchowfun/docuum)
[ubi:stepchowfun/docuum](https://github.com/stepchowfun/docuum)
[cargo:docuum](https://crates.io/crates/docuum)
[asdf:bradym/asdf-docuum](https://github.com/bradym/asdf-docuum) | | | doggo | [aqua:mr-karan/doggo](https://github.com/mr-karan/doggo)
[ubi:mr-karan/doggo](https://github.com/mr-karan/doggo) | | | dome | [asdf:mise-plugins/mise-dome](https://github.com/mise-plugins/mise-dome) | | | doppler | [ubi:DopplerHQ/cli](https://github.com/DopplerHQ/cli)
[asdf:takutakahashi/asdf-doppler](https://github.com/takutakahashi/asdf-doppler) | | | dotenv-linter | [aqua:dotenv-linter/dotenv-linter](https://github.com/dotenv-linter/dotenv-linter)
[ubi:dotenv-linter/dotenv-linter](https://github.com/dotenv-linter/dotenv-linter)
[asdf:wesleimp/asdf-dotenv-linter](https://github.com/wesleimp/asdf-dotenv-linter) | | | dotenvx | [aqua:dotenvx/dotenvx](https://github.com/dotenvx/dotenvx)
[ubi:dotenvx/dotenvx](https://github.com/dotenvx/dotenvx) | | | dotnet | [asdf:mise-plugins/mise-dotnet](https://github.com/mise-plugins/mise-dotnet)
[vfox:mise-plugins/vfox-dotnet](https://github.com/mise-plugins/vfox-dotnet) | | | dotnet-core | [asdf:mise-plugins/mise-dotnet-core](https://github.com/mise-plugins/mise-dotnet-core) | | | dotslash | [ubi:facebook/dotslash](https://github.com/facebook/dotslash) | | | dotty | [asdf:mise-plugins/mise-dotty](https://github.com/mise-plugins/mise-dotty) | | | dprint | [aqua:dprint/dprint](https://github.com/dprint/dprint)
[asdf:asdf-community/asdf-dprint](https://github.com/asdf-community/asdf-dprint) | | | draft | [aqua:Azure/draft](https://github.com/Azure/draft)
[asdf:kristoflemmens/asdf-draft](https://github.com/kristoflemmens/asdf-draft) | | | driftctl | [aqua:snyk/driftctl](https://github.com/snyk/driftctl)
[asdf:nlamirault/asdf-driftctl](https://github.com/nlamirault/asdf-driftctl) | | | drone | [aqua:harness/drone-cli](https://github.com/harness/drone-cli)
[ubi:harness/drone-cli](https://github.com/harness/drone-cli)
[asdf:virtualstaticvoid/asdf-drone](https://github.com/virtualstaticvoid/asdf-drone) | | | dt | [aqua:so-dang-cool/dt](https://github.com/so-dang-cool/dt)
[asdf:so-dang-cool/asdf-dt](https://github.com/so-dang-cool/asdf-dt) | | | dtm | [ubi:devstream-io/devstream](https://github.com/devstream-io/devstream)
[asdf:zhenyuanlau/asdf-dtm](https://github.com/zhenyuanlau/asdf-dtm) | | | dua | [aqua:Byron/dua-cli](https://github.com/Byron/dua-cli)
[ubi:Byron/dua-cli](https://github.com/Byron/dua-cli) | | | duckdb | [aqua:duckdb/duckdb](https://github.com/duckdb/duckdb)
[ubi:duckdb/duckdb](https://github.com/duckdb/duckdb) | | | duf | [aqua:muesli/duf](https://github.com/muesli/duf)
[asdf:NeoHsu/asdf-duf](https://github.com/NeoHsu/asdf-duf) | | | dust | [aqua:bootandy/dust](https://github.com/bootandy/dust)
[ubi:bootandy/dust](https://github.com/bootandy/dust)
[asdf:looztra/asdf-dust](https://github.com/looztra/asdf-dust) | | | dvc | [asdf:mise-plugins/mise-dvc](https://github.com/mise-plugins/mise-dvc) | | | dyff | [aqua:homeport/dyff](https://github.com/homeport/dyff)
[asdf:https://gitlab.com/wt0f/asdf-dyff](https://gitlab.com/wt0f/asdf-dyff) | | | dynatrace-monaco | [ubi:Dynatrace/dynatrace-configuration-as-code](https://github.com/Dynatrace/dynatrace-configuration-as-code)
[asdf:nsaputro/asdf-monaco](https://github.com/nsaputro/asdf-monaco) | | | e1s | [asdf:tbobm/asdf-e1s](https://github.com/tbobm/asdf-e1s) | | | earthly | [aqua:earthly/earthly](https://github.com/earthly/earthly)
[asdf:YR-ZR0/asdf-earthly](https://github.com/YR-ZR0/asdf-earthly) | | | ecspresso | [aqua:kayac/ecspresso](https://github.com/kayac/ecspresso)
[asdf:kayac/asdf-ecspresso](https://github.com/kayac/asdf-ecspresso) | | | edit | [aqua:microsoft/edit](https://github.com/microsoft/edit) | | | editorconfig-checker | [aqua:editorconfig-checker/editorconfig-checker](https://github.com/editorconfig-checker/editorconfig-checker)
[ubi:editorconfig-checker/editorconfig-checker](https://github.com/editorconfig-checker/editorconfig-checker)
[asdf:gabitchov/asdf-editorconfig-checker](https://github.com/gabitchov/asdf-editorconfig-checker) | | | ejson | [aqua:Shopify/ejson](https://github.com/Shopify/ejson)
[asdf:cipherstash/asdf-ejson](https://github.com/cipherstash/asdf-ejson) | | | eksctl | [aqua:eksctl-io/eksctl](https://github.com/eksctl-io/eksctl)
[asdf:elementalvoid/asdf-eksctl](https://github.com/elementalvoid/asdf-eksctl) | | | elasticsearch | [asdf:mise-plugins/mise-elasticsearch](https://github.com/mise-plugins/mise-elasticsearch) | | | elixir | [core:elixir](https://mise.jdx.dev/lang/elixir.html) | | | elixir-ls | [asdf:mise-plugins/mise-elixir-ls](https://github.com/mise-plugins/mise-elixir-ls) | | | elm | [ubi:elm/compiler](https://github.com/elm/compiler)
[asdf:asdf-community/asdf-elm](https://github.com/asdf-community/asdf-elm) | | | emsdk | [asdf:mise-plugins/mise-emsdk](https://github.com/mise-plugins/mise-emsdk) | | | envcli | [aqua:EnvCLI/EnvCLI](https://github.com/EnvCLI/EnvCLI)
[ubi:EnvCLI/EnvCLI](https://github.com/EnvCLI/EnvCLI)
[asdf:zekker6/asdf-envcli](https://github.com/zekker6/asdf-envcli) | | | envsubst | [aqua:a8m/envsubst](https://github.com/a8m/envsubst)
[asdf:dex4er/asdf-envsubst](https://github.com/dex4er/asdf-envsubst) | | | ephemeral-postgres | [asdf:mise-plugins/mise-ephemeral-postgres](https://github.com/mise-plugins/mise-ephemeral-postgres) | | | erlang | [core:erlang](https://mise.jdx.dev/lang/erlang.html) | | | esc | [aqua:pulumi/esc](https://github.com/pulumi/esc)
[ubi:pulumi/esc](https://github.com/pulumi/esc)
[asdf:fxsalazar/asdf-esc](https://github.com/fxsalazar/asdf-esc) | | | esy | [asdf:mise-plugins/mise-esy](https://github.com/mise-plugins/mise-esy) | | | etcd | [aqua:etcd-io/etcd](https://github.com/etcd-io/etcd)
[asdf:particledecay/asdf-etcd](https://github.com/particledecay/asdf-etcd)
[vfox:mise-plugins/vfox-etcd](https://github.com/mise-plugins/vfox-etcd) | | | evans | [aqua:ktr0731/evans](https://github.com/ktr0731/evans)
[asdf:goki90210/asdf-evans](https://github.com/goki90210/asdf-evans) | | | eza | [aqua:eza-community/eza](https://github.com/eza-community/eza)
[asdf:mise-plugins/mise-eza](https://github.com/mise-plugins/mise-eza)
[cargo:eza](https://crates.io/crates/eza) | | | fastfetch | [aqua:fastfetch-cli/fastfetch](https://github.com/fastfetch-cli/fastfetch) | | | fd | [aqua:sharkdp/fd](https://github.com/sharkdp/fd)
[ubi:sharkdp/fd](https://github.com/sharkdp/fd)
[asdf:https://gitlab.com/wt0f/asdf-fd](https://gitlab.com/wt0f/asdf-fd)
[cargo:fd-find](https://crates.io/crates/fd-find) | | | ffmpeg | [asdf:mise-plugins/mise-ffmpeg](https://github.com/mise-plugins/mise-ffmpeg) | | | figma-export | [ubi:RedMadRobot/figma-export](https://github.com/RedMadRobot/figma-export)
[asdf:younke/asdf-figma-export](https://github.com/younke/asdf-figma-export) | | | fillin | [aqua:itchyny/fillin](https://github.com/itchyny/fillin)
[asdf:ouest/asdf-fillin](https://github.com/ouest/asdf-fillin) | | | firebase | [aqua:firebase/firebase-tools](https://github.com/firebase/firebase-tools)
[asdf:jthegedus/asdf-firebase](https://github.com/jthegedus/asdf-firebase) | | | fission | [aqua:fission/fission](https://github.com/fission/fission)
[asdf:virtualstaticvoid/asdf-fission](https://github.com/virtualstaticvoid/asdf-fission) | | | flamingo | [ubi:flux-subsystem-argo/flamingo](https://github.com/flux-subsystem-argo/flamingo)
[asdf:log2/asdf-flamingo](https://github.com/log2/asdf-flamingo) | | | flarectl | [ubi:cloudflare/cloudflare-go](https://github.com/cloudflare/cloudflare-go)
[asdf:mise-plugins/asdf-flarectl](https://github.com/mise-plugins/asdf-flarectl) | | | flatc | [ubi:google/flatbuffers](https://github.com/google/flatbuffers)
[asdf:TheOpenDictionary/asdf-flatc](https://github.com/TheOpenDictionary/asdf-flatc) | | | flutter | [asdf:mise-plugins/mise-flutter](https://github.com/mise-plugins/mise-flutter)
[vfox:mise-plugins/vfox-flutter](https://github.com/mise-plugins/vfox-flutter) | | | fluttergen | [ubi:FlutterGen/flutter\_gen](https://github.com/FlutterGen/flutter_gen)
[asdf:FlutterGen/asdf-fluttergen](https://github.com/FlutterGen/asdf-fluttergen) | linux, macos | | flux2 | [aqua:fluxcd/flux2](https://github.com/fluxcd/flux2)
[asdf:tablexi/asdf-flux2](https://github.com/tablexi/asdf-flux2) | | | fly | [aqua:concourse/concourse/fly](https://github.com/concourse/concourse)
[asdf:mise-plugins/tanzu-plug-in-for-asdf](https://github.com/mise-plugins/tanzu-plug-in-for-asdf) | | | flyctl | [aqua:superfly/flyctl](https://github.com/superfly/flyctl)
[ubi:superfly/flyctl](https://github.com/superfly/flyctl)
[asdf:chessmango/asdf-flyctl](https://github.com/chessmango/asdf-flyctl) | | | flyway | [asdf:mise-plugins/mise-flyway](https://github.com/mise-plugins/mise-flyway) | | | foundry | [aqua:foundry-rs/foundry](https://github.com/foundry-rs/foundry)
[ubi:foundry-rs/foundry](https://github.com/foundry-rs/foundry) | | | func-e | [ubi:tetratelabs/func-e](https://github.com/tetratelabs/func-e)
[asdf:mise-plugins/mise-func-e](https://github.com/mise-plugins/mise-func-e) | | | furyctl | [ubi:sighupio/furyctl](https://github.com/sighupio/furyctl)
[asdf:sighupio/asdf-furyctl](https://github.com/sighupio/asdf-furyctl) | linux, macos | | fx | [aqua:antonmedv/fx](https://github.com/antonmedv/fx)
[asdf:https://gitlab.com/wt0f/asdf-fx](https://gitlab.com/wt0f/asdf-fx) | | | fzf | [aqua:junegunn/fzf](https://github.com/junegunn/fzf)
[ubi:junegunn/fzf](https://github.com/junegunn/fzf)
[asdf:kompiro/asdf-fzf](https://github.com/kompiro/asdf-fzf) | | | gallery-dl | [asdf:mise-plugins/mise-gallery-dl](https://github.com/mise-plugins/mise-gallery-dl) | | | gam | [ubi:GAM-team/GAM](https://github.com/GAM-team/GAM)
[asdf:offbyone/asdf-gam](https://github.com/offbyone/asdf-gam) | | | gator | [aqua:open-policy-agent/gatekeeper](https://github.com/open-policy-agent/gatekeeper)
[ubi:open-policy-agent/gatekeeper](https://github.com/open-policy-agent/gatekeeper)
[asdf:MxNxPx/asdf-gator](https://github.com/MxNxPx/asdf-gator) | | | gauche | [asdf:mise-plugins/mise-gauche](https://github.com/mise-plugins/mise-gauche) | | | gcc-arm-none-eabi | [asdf:mise-plugins/mise-gcc-arm-none-eabi](https://github.com/mise-plugins/mise-gcc-arm-none-eabi) | | | gcloud | [asdf:mise-plugins/mise-gcloud](https://github.com/mise-plugins/mise-gcloud) | | | gdu | [aqua:dundee/gdu](https://github.com/dundee/gdu) | | | gemini-cli | [npm:@google/gemini-cli](https://www.npmjs.com/package/@google/gemini-cli) | | | getenvoy | [ubi:tetratelabs-attic/getenvoy](https://github.com/tetratelabs-attic/getenvoy)
[asdf:mise-plugins/mise-getenvoy](https://github.com/mise-plugins/mise-getenvoy) | | | ghalint | [aqua:suzuki-shunsuke/ghalint](https://github.com/suzuki-shunsuke/ghalint)
[ubi:suzuki-shunsuke/ghalint](https://github.com/suzuki-shunsuke/ghalint) | | | ghc | [asdf:mise-plugins/mise-ghcup](https://github.com/mise-plugins/mise-ghcup) | | | ghcup | [aqua:haskell/ghcup-hs](https://github.com/haskell/ghcup-hs)
[ubi:haskell/ghcup-hs](https://github.com/haskell/ghcup-hs)
[asdf:mise-plugins/mise-ghcup](https://github.com/mise-plugins/mise-ghcup) | linux, macos | | ghidra | [asdf:mise-plugins/mise-ghidra](https://github.com/mise-plugins/mise-ghidra) | | | ghorg | [aqua:gabrie30/ghorg](https://github.com/gabrie30/ghorg)
[asdf:gbloquel/asdf-ghorg](https://github.com/gbloquel/asdf-ghorg) | | | ghq | [aqua:x-motemen/ghq](https://github.com/x-motemen/ghq)
[asdf:kajisha/asdf-ghq](https://github.com/kajisha/asdf-ghq) | | | ginkgo | [go:github.com/onsi/ginkgo/v2/ginkgo](https://pkg.go.dev/github.com/onsi/ginkgo/v2/ginkgo)
[asdf:mise-plugins/mise-ginkgo](https://github.com/mise-plugins/mise-ginkgo) | | | git-chglog | [aqua:git-chglog/git-chglog](https://github.com/git-chglog/git-chglog)
[asdf:GoodwayGroup/asdf-git-chglog](https://github.com/GoodwayGroup/asdf-git-chglog) | | | git-cliff | [aqua:orhun/git-cliff](https://github.com/orhun/git-cliff)
[asdf:jylenhof/asdf-git-cliff](https://github.com/jylenhof/asdf-git-cliff) | | | git-lfs | [aqua:git-lfs/git-lfs](https://github.com/git-lfs/git-lfs)
[ubi:git-lfs/git-lfs](https://github.com/git-lfs/git-lfs) | | | gitconfig | [ubi:0ghny/gitconfig](https://github.com/0ghny/gitconfig)
[asdf:0ghny/asdf-gitconfig](https://github.com/0ghny/asdf-gitconfig) | | | github-cli | [aqua:cli/cli](https://github.com/cli/cli)
[ubi:cli/cli](https://github.com/cli/cli)
[asdf:bartlomiejdanek/asdf-github-cli](https://github.com/bartlomiejdanek/asdf-github-cli) | | | github-markdown-toc | [aqua:ekalinin/github-markdown-toc](https://github.com/ekalinin/github-markdown-toc)
[asdf:skyzyx/asdf-github-markdown-toc](https://github.com/skyzyx/asdf-github-markdown-toc) | | | gitleaks | [aqua:gitleaks/gitleaks](https://github.com/gitleaks/gitleaks)
[asdf:jmcvetta/asdf-gitleaks](https://github.com/jmcvetta/asdf-gitleaks) | | | gitsign | [aqua:sigstore/gitsign](https://github.com/sigstore/gitsign)
[asdf:spencergilbert/asdf-gitsign](https://github.com/spencergilbert/asdf-gitsign) | linux, macos | | gitu | [ubi:altsem/gitu](https://github.com/altsem/gitu)
[cargo:gitu](https://crates.io/crates/gitu) | | | gitui | [aqua:extrawurst/gitui](https://github.com/extrawurst/gitui)
[asdf:looztra/asdf-gitui](https://github.com/looztra/asdf-gitui) | | | gitversion | [aqua:gittools/gitversion](https://github.com/gittools/gitversion)
[ubi:gittools/gitversion](https://github.com/gittools/gitversion) | | | glab | [ubi:gitlab-org/cli](https://gitlab.com/gitlab-org/cli)
[ubi:gitlab-org/cli](https://gitlab.com/gitlab-org/cli)
[asdf:mise-plugins/mise-glab](https://github.com/mise-plugins/mise-glab) | | | gleam | [aqua:gleam-lang/gleam](https://github.com/gleam-lang/gleam)
[asdf:asdf-community/asdf-gleam](https://github.com/asdf-community/asdf-gleam) | | | glen | [ubi:lingrino/glen](https://github.com/lingrino/glen)
[asdf:bradym/asdf-glen](https://github.com/bradym/asdf-glen) | | | glooctl | [ubi:solo-io/gloo](https://github.com/solo-io/gloo)
[asdf:halilkaya/asdf-glooctl](https://github.com/halilkaya/asdf-glooctl) | | | glow | [aqua:charmbracelet/glow](https://github.com/charmbracelet/glow)
[asdf:mise-plugins/asdf-glow](https://github.com/mise-plugins/asdf-glow) | | | go | [core:go](https://mise.jdx.dev/lang/go.html) | | | go-containerregistry | [aqua:google/go-containerregistry](https://github.com/google/go-containerregistry)
[asdf:dex4er/asdf-go-containerregistry](https://github.com/dex4er/asdf-go-containerregistry) | | | go-getter | [aqua:hashicorp/go-getter](https://github.com/hashicorp/go-getter)
[asdf:mise-plugins/mise-go-getter](https://github.com/mise-plugins/mise-go-getter) | | | go-jira | [aqua:go-jira/jira](https://github.com/go-jira/jira)
[asdf:dguihal/asdf-go-jira](https://github.com/dguihal/asdf-go-jira) | | | go-jsonnet | [aqua:google/go-jsonnet](https://github.com/google/go-jsonnet)
[asdf:https://gitlab.com/craigfurman/asdf-go-jsonnet](https://gitlab.com/craigfurman/asdf-go-jsonnet) | | | go-junit-report | [aqua:jstemmer/go-junit-report](https://github.com/jstemmer/go-junit-report)
[ubi:jstemmer/go-junit-report](https://github.com/jstemmer/go-junit-report)
[asdf:jwillker/asdf-go-junit-report](https://github.com/jwillker/asdf-go-junit-report) | | | go-sdk | [asdf:mise-plugins/mise-go-sdk](https://github.com/mise-plugins/mise-go-sdk) | | | go-swagger | [aqua:go-swagger/go-swagger](https://github.com/go-swagger/go-swagger)
[asdf:jfreeland/asdf-go-swagger](https://github.com/jfreeland/asdf-go-swagger) | linux, macos | | goconvey | [go:github.com/smartystreets/goconvey](https://pkg.go.dev/github.com/smartystreets/goconvey)
[asdf:mise-plugins/mise-goconvey](https://github.com/mise-plugins/mise-goconvey) | | | gocryptfs | [aqua:rfjakob/gocryptfs](https://github.com/rfjakob/gocryptfs)
[ubi:rfjakob/gocryptfs](https://github.com/rfjakob/gocryptfs) | | | gofumpt | [aqua:mvdan/gofumpt](https://github.com/mvdan/gofumpt)
[ubi:mvdan/gofumpt](https://github.com/mvdan/gofumpt)
[asdf:looztra/asdf-gofumpt](https://github.com/looztra/asdf-gofumpt) | | | gojq | [aqua:itchyny/gojq](https://github.com/itchyny/gojq)
[ubi:itchyny/gojq](https://github.com/itchyny/gojq)
[asdf:jimmidyson/asdf-gojq](https://github.com/jimmidyson/asdf-gojq)
[go:github.com/itchyny/gojq/cmd/gojq](https://pkg.go.dev/github.com/itchyny/gojq/cmd/gojq) | | | gokey | [aqua:cloudflare/gokey](https://github.com/cloudflare/gokey)
[ubi:cloudflare/gokey](https://github.com/cloudflare/gokey) | | | golangci-lint | [aqua:golangci/golangci-lint](https://github.com/golangci/golangci-lint)
[ubi:golangci/golangci-lint](https://github.com/golangci/golangci-lint)
[asdf:hypnoglow/asdf-golangci-lint](https://github.com/hypnoglow/asdf-golangci-lint) | | | golangci-lint-langserver | [aqua:nametake/golangci-lint-langserver](https://github.com/nametake/golangci-lint-langserver)
[ubi:nametake/golangci-lint-langserver](https://github.com/nametake/golangci-lint-langserver)
[go:github.com/nametake/golangci-lint-langserver](https://pkg.go.dev/github.com/nametake/golangci-lint-langserver) | | | golines | [aqua:segmentio/golines](https://github.com/segmentio/golines)
[ubi:segmentio/golines](https://github.com/segmentio/golines)
[go:github.com/segmentio/golines](https://pkg.go.dev/github.com/segmentio/golines) | | | gomigrate | [aqua:golang-migrate/migrate](https://github.com/golang-migrate/migrate)
[asdf:joschi/asdf-gomigrate](https://github.com/joschi/asdf-gomigrate) | | | gomplate | [aqua:hairyhenderson/gomplate](https://github.com/hairyhenderson/gomplate)
[asdf:sneakybeaky/asdf-gomplate](https://github.com/sneakybeaky/asdf-gomplate) | | | gopass | [aqua:gopasspw/gopass](https://github.com/gopasspw/gopass)
[asdf:trallnag/asdf-gopass](https://github.com/trallnag/asdf-gopass) | | | goreleaser | [aqua:goreleaser/goreleaser](https://github.com/goreleaser/goreleaser)
[ubi:goreleaser/goreleaser](https://github.com/goreleaser/goreleaser)
[asdf:kforsthoevel/asdf-goreleaser](https://github.com/kforsthoevel/asdf-goreleaser) | | | goss | [aqua:goss-org/goss](https://github.com/goss-org/goss)
[asdf:raimon49/asdf-goss](https://github.com/raimon49/asdf-goss) | | | gotestsum | [aqua:gotestyourself/gotestsum](https://github.com/gotestyourself/gotestsum)
[asdf:pmalek/mise-gotestsum](https://github.com/pmalek/mise-gotestsum) | | | graalvm | [asdf:mise-plugins/mise-graalvm](https://github.com/mise-plugins/mise-graalvm) | | | gradle | [aqua:gradle/gradle](https://github.com/gradle/gradle)
[vfox:mise-plugins/vfox-gradle](https://github.com/mise-plugins/vfox-gradle) | | | gradle-profiler | [asdf:mise-plugins/mise-gradle-profiler](https://github.com/mise-plugins/mise-gradle-profiler) | | | grails | [asdf:mise-plugins/mise-grails](https://github.com/mise-plugins/mise-grails) | | | grain | [ubi:grain-lang/grain](https://github.com/grain-lang/grain)
[asdf:mise-plugins/mise-grain](https://github.com/mise-plugins/mise-grain) | | | granted | [aqua:common-fate/granted](https://github.com/common-fate/granted)
[asdf:dex4er/asdf-granted](https://github.com/dex4er/asdf-granted) | | | graphite | [npm:@withgraphite/graphite-cli](https://www.npmjs.com/package/@withgraphite/graphite-cli) | | | grex | [aqua:pemistahl/grex](https://github.com/pemistahl/grex)
[asdf:ouest/asdf-grex](https://github.com/ouest/asdf-grex) | | | gron | [aqua:tomnomnom/gron](https://github.com/tomnomnom/gron)
[ubi:tomnomnom/gron](https://github.com/tomnomnom/gron) | | | groovy | [asdf:mise-plugins/mise-groovy](https://github.com/mise-plugins/mise-groovy)
[vfox:mise-plugins/vfox-groovy](https://github.com/mise-plugins/vfox-groovy) | | | grpc-health-probe | [aqua:grpc-ecosystem/grpc-health-probe](https://github.com/grpc-ecosystem/grpc-health-probe)
[asdf:zufardhiyaulhaq/asdf-grpc-health-probe](https://github.com/zufardhiyaulhaq/asdf-grpc-health-probe) | linux, macos | | grpcurl | [aqua:fullstorydev/grpcurl](https://github.com/fullstorydev/grpcurl)
[asdf:asdf-community/asdf-grpcurl](https://github.com/asdf-community/asdf-grpcurl) | | | grype | [aqua:anchore/grype](https://github.com/anchore/grype)
[ubi:anchore/grype](https://github.com/anchore/grype)
[asdf:poikilotherm/asdf-grype](https://github.com/poikilotherm/asdf-grype) | | | guile | [asdf:mise-plugins/mise-guile](https://github.com/mise-plugins/mise-guile) | | | gum | [aqua:charmbracelet/gum](https://github.com/charmbracelet/gum)
[asdf:lwiechec/asdf-gum](https://github.com/lwiechec/asdf-gum) | | | gup | [aqua:nao1215/gup](https://github.com/nao1215/gup) | | | gwvault | [aqua:GoodwayGroup/gwvault](https://github.com/GoodwayGroup/gwvault)
[asdf:GoodwayGroup/asdf-gwvault](https://github.com/GoodwayGroup/asdf-gwvault) | | | hadolint | [aqua:hadolint/hadolint](https://github.com/hadolint/hadolint)
[ubi:hadolint/hadolint](https://github.com/hadolint/hadolint)
[asdf:devlincashman/asdf-hadolint](https://github.com/devlincashman/asdf-hadolint) | | | hamler | [asdf:mise-plugins/mise-hamler](https://github.com/mise-plugins/mise-hamler) | | | harper-cli | [aqua:Automattic/harper/harper-cli](https://github.com/Automattic/harper) | | | harper-ls | [aqua:Automattic/harper/harper-ls](https://github.com/Automattic/harper) | | | has | [aqua:kdabir/has](https://github.com/kdabir/has)
[asdf:sylvainmetayer/asdf-has](https://github.com/sylvainmetayer/asdf-has) | linux, macos | | haskell | [asdf:mise-plugins/mise-haskell](https://github.com/mise-plugins/mise-haskell) | | | hasura-cli | [aqua:hasura/graphql-engine](https://github.com/hasura/graphql-engine)
[asdf:gurukulkarni/asdf-hasura](https://github.com/gurukulkarni/asdf-hasura) | | | hatch | [pipx:hatch](https://pypi.org/project/hatch) | | | haxe | [ubi:HaxeFoundation/haxe](https://github.com/HaxeFoundation/haxe)
[asdf:mise-plugins/mise-haxe](https://github.com/mise-plugins/mise-haxe) | | | hcl2json | [aqua:tmccombs/hcl2json](https://github.com/tmccombs/hcl2json)
[asdf:dex4er/asdf-hcl2json](https://github.com/dex4er/asdf-hcl2json) | | | hcloud | [aqua:hetznercloud/cli](https://github.com/hetznercloud/cli)
[asdf:chessmango/asdf-hcloud](https://github.com/chessmango/asdf-hcloud) | | | helix | [aqua:helix-editor/helix](https://github.com/helix-editor/helix)
[ubi:helix-editor/helix](https://github.com/helix-editor/helix) | | | helm | [aqua:helm/helm](https://github.com/helm/helm)
[asdf:Antiarchitect/asdf-helm](https://github.com/Antiarchitect/asdf-helm) | | | helm-cr | [aqua:helm/chart-releaser](https://github.com/helm/chart-releaser)
[asdf:Antiarchitect/asdf-helm-cr](https://github.com/Antiarchitect/asdf-helm-cr) | | | helm-ct | [aqua:helm/chart-testing](https://github.com/helm/chart-testing)
[asdf:tablexi/asdf-helm-ct](https://github.com/tablexi/asdf-helm-ct) | | | helm-diff | [ubi:databus23/helm-diff](https://github.com/databus23/helm-diff)
[asdf:mise-plugins/mise-helm-diff](https://github.com/mise-plugins/mise-helm-diff) | | | helm-docs | [aqua:norwoodj/helm-docs](https://github.com/norwoodj/helm-docs)
[asdf:sudermanjr/asdf-helm-docs](https://github.com/sudermanjr/asdf-helm-docs) | | | helmfile | [aqua:helmfile/helmfile](https://github.com/helmfile/helmfile)
[ubi:helmfile/helmfile](https://github.com/helmfile/helmfile)
[asdf:feniix/asdf-helmfile](https://github.com/feniix/asdf-helmfile) | | | helmsman | [ubi:Praqma/helmsman](https://github.com/Praqma/helmsman)
[asdf:luisdavim/asdf-helmsman](https://github.com/luisdavim/asdf-helmsman) | | | helmwave | [aqua:helmwave/helmwave](https://github.com/helmwave/helmwave)
[ubi:helmwave/helmwave](https://github.com/helmwave/helmwave) | | | heroku | [asdf:mise-plugins/mise-heroku-cli](https://github.com/mise-plugins/mise-heroku-cli) | | | hexyl | [aqua:sharkdp/hexyl](https://github.com/sharkdp/hexyl)
[ubi:sharkdp/hexyl](https://github.com/sharkdp/hexyl) | | | hey | [asdf:mise-plugins/mise-hey](https://github.com/mise-plugins/mise-hey) | | | hishtory | [ubi:ddworken/hishtory](https://github.com/ddworken/hishtory)
[asdf:asdf-community/asdf-hishtory](https://github.com/asdf-community/asdf-hishtory) | | | hivemind | [ubi:DarthSim/hivemind](https://github.com/DarthSim/hivemind)
[go:github.com/DarthSim/hivemind](https://pkg.go.dev/github.com/DarthSim/hivemind) | | | hk | [aqua:jdx/hk](https://github.com/jdx/hk)
[ubi:jdx/hk](https://github.com/jdx/hk) | | | hledger | [ubi:simonmichael/hledger](https://github.com/simonmichael/hledger)
[asdf:airtonix/asdf-hledger](https://github.com/airtonix/asdf-hledger) | | | hledger-flow | [ubi:apauley/hledger-flow](https://github.com/apauley/hledger-flow)
[asdf:airtonix/asdf-hledger-flow](https://github.com/airtonix/asdf-hledger-flow) | | | hls | [asdf:mise-plugins/mise-ghcup](https://github.com/mise-plugins/mise-ghcup) | | | hostctl | [aqua:guumaster/hostctl](https://github.com/guumaster/hostctl)
[asdf:svenluijten/asdf-hostctl](https://github.com/svenluijten/asdf-hostctl) | | | htmlq | [aqua:mgdm/htmlq](https://github.com/mgdm/htmlq)
[ubi:mgdm/htmlq](https://github.com/mgdm/htmlq) | | | httpie-go | [aqua:nojima/httpie-go](https://github.com/nojima/httpie-go)
[asdf:abatilo/asdf-httpie-go](https://github.com/abatilo/asdf-httpie-go) | linux, macos | | hub | [aqua:mislav/hub](https://github.com/mislav/hub)
[asdf:mise-plugins/asdf-hub](https://github.com/mise-plugins/asdf-hub) | | | hugo | [aqua:gohugoio/hugo](https://github.com/gohugoio/hugo)
[ubi:gohugoio/hugo](https://github.com/gohugoio/hugo)
[asdf:NeoHsu/asdf-hugo](https://github.com/NeoHsu/asdf-hugo)
[asdf:nklmilojevic/asdf-hugo](https://github.com/nklmilojevic/asdf-hugo) | | | hugo-extended | [aqua:gohugoio/hugo/hugo-extended](https://github.com/gohugoio/hugo) | | | hurl | [aqua:Orange-OpenSource/hurl](https://github.com/Orange-OpenSource/hurl)
[asdf:raimon49/asdf-hurl](https://github.com/raimon49/asdf-hurl) | | | hwatch | [aqua:blacknon/hwatch](https://github.com/blacknon/hwatch)
[ubi:blacknon/hwatch](https://github.com/blacknon/hwatch)
[asdf:chessmango/asdf-hwatch](https://github.com/chessmango/asdf-hwatch) | | | hygen | [ubi:jondot/hygen](https://github.com/jondot/hygen)
[asdf:brentjanderson/asdf-hygen](https://github.com/brentjanderson/asdf-hygen) | | | hyperfine | [aqua:sharkdp/hyperfine](https://github.com/sharkdp/hyperfine)
[ubi:sharkdp/hyperfine](https://github.com/sharkdp/hyperfine)
[asdf:volf52/asdf-hyperfine](https://github.com/volf52/asdf-hyperfine) | | | iam-policy-json-to-terraform | [aqua:flosell/iam-policy-json-to-terraform](https://github.com/flosell/iam-policy-json-to-terraform)
[asdf:carlduevel/asdf-iam-policy-json-to-terraform](https://github.com/carlduevel/asdf-iam-policy-json-to-terraform) | | | iamlive | [aqua:iann0036/iamlive](https://github.com/iann0036/iamlive)
[asdf:chessmango/asdf-iamlive](https://github.com/chessmango/asdf-iamlive) | | | ibmcloud | [asdf:mise-plugins/mise-ibmcloud](https://github.com/mise-plugins/mise-ibmcloud) | | | idris | [asdf:mise-plugins/mise-idris](https://github.com/mise-plugins/mise-idris) | | | idris2 | [asdf:mise-plugins/mise-idris2](https://github.com/mise-plugins/mise-idris2) | | | imagemagick | [asdf:mise-plugins/mise-imagemagick](https://github.com/mise-plugins/mise-imagemagick) | | | imgpkg | [aqua:carvel-dev/imgpkg](https://github.com/carvel-dev/imgpkg)
[asdf:vmware-tanzu/asdf-carvel](https://github.com/vmware-tanzu/asdf-carvel) | | | infracost | [aqua:infracost/infracost](https://github.com/infracost/infracost)
[asdf:dex4er/asdf-infracost](https://github.com/dex4er/asdf-infracost) | | | inlets | [aqua:inlets/inletsctl](https://github.com/inlets/inletsctl)
[asdf:nlamirault/asdf-inlets](https://github.com/nlamirault/asdf-inlets) | | | io | [asdf:mise-plugins/mise-io](https://github.com/mise-plugins/mise-io) | | | istioctl | [aqua:istio/istio/istioctl](https://github.com/istio/istio)
[asdf:virtualstaticvoid/asdf-istioctl](https://github.com/virtualstaticvoid/asdf-istioctl) | | | janet | [asdf:mise-plugins/mise-janet](https://github.com/mise-plugins/mise-janet) | | | java | [core:java](https://mise.jdx.dev/lang/java.html) | | | jbang | [asdf:mise-plugins/jbang-asdf](https://github.com/mise-plugins/jbang-asdf) | | | jc | [aqua:kellyjonbrazil/jc](https://github.com/kellyjonbrazil/jc)
[ubi:kellyjonbrazil/jc](https://github.com/kellyjonbrazil/jc)
[pipx:jc](https://pypi.org/project/jc) | | | jd | [aqua:josephburnett/jd](https://github.com/josephburnett/jd)
[ubi:josephburnett/jd](https://github.com/josephburnett/jd)
[go:github.com/josephburnett/jd](https://pkg.go.dev/github.com/josephburnett/jd) | | | jfrog-cli | [asdf:mise-plugins/mise-jfrog-cli](https://github.com/mise-plugins/mise-jfrog-cli) | | | jib | [asdf:mise-plugins/mise-jib](https://github.com/mise-plugins/mise-jib) | | | jiq | [aqua:fiatjaf/jiq](https://github.com/fiatjaf/jiq)
[asdf:chessmango/asdf-jiq](https://github.com/chessmango/asdf-jiq) | | | jj | [aqua:jj-vcs/jj](https://github.com/jj-vcs/jj)
[ubi:jj-vcs/jj](https://github.com/jj-vcs/jj) | | | jjui | [aqua:idursun/jjui](https://github.com/idursun/jjui)
[ubi:idursun/jjui](https://github.com/idursun/jjui) | | | jless | [aqua:PaulJuliusMartinez/jless](https://github.com/PaulJuliusMartinez/jless)
[asdf:jc00ke/asdf-jless](https://github.com/jc00ke/asdf-jless) | | | jmespath | [aqua:jmespath/jp](https://github.com/jmespath/jp)
[asdf:skyzyx/asdf-jmespath](https://github.com/skyzyx/asdf-jmespath) | | | jmeter | [asdf:mise-plugins/mise-jmeter](https://github.com/mise-plugins/mise-jmeter) | | | jnv | [aqua:ynqa/jnv](https://github.com/ynqa/jnv)
[asdf:raimon49/asdf-jnv](https://github.com/raimon49/asdf-jnv) | | | jq | [aqua:jqlang/jq](https://github.com/jqlang/jq)
[ubi:jqlang/jq](https://github.com/jqlang/jq)
[asdf:mise-plugins/asdf-jq](https://github.com/mise-plugins/asdf-jq) | | | jqp | [aqua:noahgorstein/jqp](https://github.com/noahgorstein/jqp)
[asdf:https://gitlab.com/wt0f/asdf-jqp](https://gitlab.com/wt0f/asdf-jqp) | | | jreleaser | [aqua:jreleaser/jreleaser](https://github.com/jreleaser/jreleaser)
[asdf:joschi/asdf-jreleaser](https://github.com/joschi/asdf-jreleaser) | | | json5 | [npm:json5](https://www.npmjs.com/package/json5) | | | jsonnet-bundler | [aqua:jsonnet-bundler/jsonnet-bundler](https://github.com/jsonnet-bundler/jsonnet-bundler)
[asdf:beardix/asdf-jb](https://github.com/beardix/asdf-jb) | | | jsonschema | [aqua:sourcemeta/jsonschema](https://github.com/sourcemeta/jsonschema)
[ubi:sourcemeta/jsonschema](https://github.com/sourcemeta/jsonschema) | | | julia | [asdf:mise-plugins/mise-julia](https://github.com/mise-plugins/mise-julia) | | | just | [aqua:casey/just](https://github.com/casey/just)
[ubi:casey/just](https://github.com/casey/just)
[asdf:olofvndrhr/asdf-just](https://github.com/olofvndrhr/asdf-just) | | | jwt | [aqua:mike-engel/jwt-cli](https://github.com/mike-engel/jwt-cli)
[ubi:mike-engel/jwt-cli](https://github.com/mike-engel/jwt-cli)
[cargo:jwt-cli](https://crates.io/crates/jwt-cli) | | | jwtui | [ubi:jwt-rs/jwt-ui](https://github.com/jwt-rs/jwt-ui)
[cargo:jwt-ui](https://crates.io/crates/jwt-ui) | | | jx | [aqua:jenkins-x/jx](https://github.com/jenkins-x/jx)
[ubi:jenkins-x/jx](https://github.com/jenkins-x/jx)
[asdf:vbehar/asdf-jx](https://github.com/vbehar/asdf-jx) | | | k0sctl | [aqua:k0sproject/k0sctl](https://github.com/k0sproject/k0sctl)
[ubi:k0sproject/k0sctl](https://github.com/k0sproject/k0sctl)
[asdf:Its-Alex/asdf-plugin-k0sctl](https://github.com/Its-Alex/asdf-plugin-k0sctl) | | | k2tf | [aqua:sl1pm4t/k2tf](https://github.com/sl1pm4t/k2tf)
[ubi:sl1pm4t/k2tf](https://github.com/sl1pm4t/k2tf)
[asdf:carlduevel/asdf-k2tf](https://github.com/carlduevel/asdf-k2tf) | | | k3d | [aqua:k3d-io/k3d](https://github.com/k3d-io/k3d)
[ubi:k3d-io/k3d](https://github.com/k3d-io/k3d)
[asdf:spencergilbert/asdf-k3d](https://github.com/spencergilbert/asdf-k3d) | | | k3kcli | [ubi:rancher/k3k](https://github.com/rancher/k3k)
[asdf:xanmanning/asdf-k3kcli](https://github.com/xanmanning/asdf-k3kcli) | | | k3s | [asdf:mise-plugins/mise-k3s](https://github.com/mise-plugins/mise-k3s) | | | k3sup | [aqua:alexellis/k3sup](https://github.com/alexellis/k3sup)
[asdf:cgroschupp/asdf-k3sup](https://github.com/cgroschupp/asdf-k3sup) | | | k6 | [aqua:grafana/k6](https://github.com/grafana/k6)
[ubi:grafana/k6](https://github.com/grafana/k6)
[asdf:gr1m0h/asdf-k6](https://github.com/gr1m0h/asdf-k6) | | | k9s | [aqua:derailed/k9s](https://github.com/derailed/k9s)
[ubi:derailed/k9s](https://github.com/derailed/k9s)
[asdf:looztra/asdf-k9s](https://github.com/looztra/asdf-k9s) | | | kafka | [asdf:mise-plugins/mise-kafka](https://github.com/mise-plugins/mise-kafka) | | | kafkactl | [aqua:deviceinsight/kafkactl](https://github.com/deviceinsight/kafkactl)
[asdf:anweber/asdf-kafkactl](https://github.com/anweber/asdf-kafkactl) | | | kapp | [aqua:carvel-dev/kapp](https://github.com/carvel-dev/kapp)
[asdf:vmware-tanzu/asdf-carvel](https://github.com/vmware-tanzu/asdf-carvel) | | | kbld | [aqua:carvel-dev/kbld](https://github.com/carvel-dev/kbld)
[asdf:vmware-tanzu/asdf-carvel](https://github.com/vmware-tanzu/asdf-carvel) | | | kcat | [asdf:mise-plugins/mise-kcat](https://github.com/mise-plugins/mise-kcat) | | | kcctl | [ubi:kcctl/kcctl](https://github.com/kcctl/kcctl)
[asdf:joschi/asdf-kcctl](https://github.com/joschi/asdf-kcctl) | | | kcl | [aqua:kcl-lang/cli](https://github.com/kcl-lang/cli)
[asdf:mise-plugins/mise-kcl](https://github.com/mise-plugins/mise-kcl) | | | kconf | [aqua:particledecay/kconf](https://github.com/particledecay/kconf)
[asdf:particledecay/asdf-kconf](https://github.com/particledecay/asdf-kconf) | | | ki | [aqua:Kotlin/kotlin-interactive-shell](https://github.com/Kotlin/kotlin-interactive-shell)
[ubi:Kotlin/kotlin-interactive-shell](https://github.com/Kotlin/kotlin-interactive-shell)
[asdf:comdotlinux/asdf-ki](https://github.com/comdotlinux/asdf-ki) | | | killport | [aqua:jkfran/killport](https://github.com/jkfran/killport)
[ubi:jkfran/killport](https://github.com/jkfran/killport) | | | kind | [aqua:kubernetes-sigs/kind](https://github.com/kubernetes-sigs/kind)
[ubi:kubernetes-sigs/kind](https://github.com/kubernetes-sigs/kind)
[asdf:johnlayton/asdf-kind](https://github.com/johnlayton/asdf-kind) | | | kiota | [aqua:microsoft/kiota](https://github.com/microsoft/kiota)
[asdf:asdf-community/asdf-kiota](https://github.com/asdf-community/asdf-kiota) | | | kn | [aqua:knative/client](https://github.com/knative/client)
[asdf:joke/asdf-kn](https://github.com/joke/asdf-kn) | | | ko | [aqua:ko-build/ko](https://github.com/ko-build/ko)
[asdf:zasdaym/asdf-ko](https://github.com/zasdaym/asdf-ko) | | | koka | [ubi:koka-lang/koka](https://github.com/koka-lang/koka)
[asdf:susurri/asdf-koka](https://github.com/susurri/asdf-koka) | | | kompose | [aqua:kubernetes/kompose](https://github.com/kubernetes/kompose)
[ubi:kubernetes/kompose](https://github.com/kubernetes/kompose)
[asdf:technikhil314/asdf-kompose](https://github.com/technikhil314/asdf-kompose) | | | kops | [aqua:kubernetes/kops](https://github.com/kubernetes/kops)
[asdf:Antiarchitect/asdf-kops](https://github.com/Antiarchitect/asdf-kops) | | | kotlin | [asdf:mise-plugins/mise-kotlin](https://github.com/mise-plugins/mise-kotlin)
[vfox:mise-plugins/vfox-kotlin](https://github.com/mise-plugins/vfox-kotlin) | | | kpack | [ubi:vmware-tanzu/kpack-cli](https://github.com/vmware-tanzu/kpack-cli)
[asdf:asdf-community/asdf-kpack-cli](https://github.com/asdf-community/asdf-kpack-cli) | | | kpt | [aqua:kptdev/kpt](https://github.com/kptdev/kpt)
[asdf:nlamirault/asdf-kpt](https://github.com/nlamirault/asdf-kpt) | linux, macos | | krab | [aqua:ohkrab/krab](https://github.com/ohkrab/krab)
[ubi:ohkrab/krab](https://github.com/ohkrab/krab)
[asdf:ohkrab/asdf-krab](https://github.com/ohkrab/asdf-krab) | | | krew | [aqua:kubernetes-sigs/krew](https://github.com/kubernetes-sigs/krew)
[asdf:bjw-s/asdf-krew](https://github.com/bjw-s/asdf-krew) | | | kscript | [ubi:kscripting/kscript](https://github.com/kscripting/kscript)
[asdf:edgelevel/asdf-kscript](https://github.com/edgelevel/asdf-kscript) | | | ksops | [aqua:viaduct-ai/kustomize-sops](https://github.com/viaduct-ai/kustomize-sops)
[ubi:viaduct-ai/kustomize-sops](https://github.com/viaduct-ai/kustomize-sops)
[asdf:janpieper/asdf-ksops](https://github.com/janpieper/asdf-ksops) | | | ktlint | [aqua:pinterest/ktlint](https://github.com/pinterest/ktlint)
[asdf:mise-plugins/mise-ktlint](https://github.com/mise-plugins/mise-ktlint) | | | kube-capacity | [aqua:robscott/kube-capacity](https://github.com/robscott/kube-capacity)
[asdf:looztra/asdf-kube-capacity](https://github.com/looztra/asdf-kube-capacity) | | | kube-code-generator | [asdf:mise-plugins/mise-kube-code-generator](https://github.com/mise-plugins/mise-kube-code-generator) | | | kube-controller-tools | [ubi:kubernetes-sigs/controller-tools](https://github.com/kubernetes-sigs/controller-tools)
[asdf:jimmidyson/asdf-kube-controller-tools](https://github.com/jimmidyson/asdf-kube-controller-tools) | | | kube-credential-cache | [aqua:ryodocx/kube-credential-cache](https://github.com/ryodocx/kube-credential-cache)
[asdf:ryodocx/kube-credential-cache](https://github.com/ryodocx/kube-credential-cache) | | | kube-linter | [aqua:stackrox/kube-linter](https://github.com/stackrox/kube-linter)
[asdf:devlincashman/asdf-kube-linter](https://github.com/devlincashman/asdf-kube-linter) | | | kube-score | [aqua:zegl/kube-score](https://github.com/zegl/kube-score)
[asdf:bageljp/asdf-kube-score](https://github.com/bageljp/asdf-kube-score) | | | kubebuilder | [aqua:kubernetes-sigs/kubebuilder](https://github.com/kubernetes-sigs/kubebuilder)
[asdf:virtualstaticvoid/asdf-kubebuilder](https://github.com/virtualstaticvoid/asdf-kubebuilder) | | | kubecm | [aqua:sunny0826/kubecm](https://github.com/sunny0826/kubecm)
[asdf:samhvw8/asdf-kubecm](https://github.com/samhvw8/asdf-kubecm) | | | kubecolor | [aqua:kubecolor/kubecolor](https://github.com/kubecolor/kubecolor)
[asdf:dex4er/asdf-kubecolor](https://github.com/dex4er/asdf-kubecolor) | | | kubeconform | [aqua:yannh/kubeconform](https://github.com/yannh/kubeconform)
[asdf:lirlia/asdf-kubeconform](https://github.com/lirlia/asdf-kubeconform) | | | kubectl | [aqua:kubernetes/kubectl](https://github.com/kubernetes/kubectl)
[asdf:asdf-community/asdf-kubectl](https://github.com/asdf-community/asdf-kubectl) | | | kubectl-convert | [aqua:kubernetes/kubernetes/kubectl-convert](https://github.com/kubernetes/kubernetes)
[asdf:iul1an/asdf-kubectl-convert](https://github.com/iul1an/asdf-kubectl-convert) | | | kubectl-kots | [aqua:replicatedhq/kots](https://github.com/replicatedhq/kots)
[asdf:ganta/asdf-kubectl-kots](https://github.com/ganta/asdf-kubectl-kots) | | | kubectl-kuttl | [aqua:kudobuilder/kuttl](https://github.com/kudobuilder/kuttl)
[asdf:jimmidyson/asdf-kuttl](https://github.com/jimmidyson/asdf-kuttl) | linux, macos | | kubectl-rolesum | [aqua:Ladicle/kubectl-rolesum](https://github.com/Ladicle/kubectl-rolesum)
[asdf:looztra/asdf-kubectl-bindrole](https://github.com/looztra/asdf-kubectl-bindrole) | | | kubectx | [aqua:ahmetb/kubectx](https://github.com/ahmetb/kubectx)
[asdf:https://gitlab.com/wt0f/asdf-kubectx](https://gitlab.com/wt0f/asdf-kubectx) | | | kubefedctl | [aqua:kubernetes-retired/kubefed](https://github.com/kubernetes-retired/kubefed)
[asdf:kvokka/asdf-kubefedctl](https://github.com/kvokka/asdf-kubefedctl) | | | kubefirst | [ubi:konstructio/kubefirst](https://github.com/konstructio/kubefirst)
[asdf:Claywd/asdf-kubefirst](https://github.com/Claywd/asdf-kubefirst) | | | kubelogin | [aqua:int128/kubelogin](https://github.com/int128/kubelogin) | | | kubemqctl | [aqua:kubemq-io/kubemqctl](https://github.com/kubemq-io/kubemqctl)
[asdf:johnlayton/asdf-kubemqctl](https://github.com/johnlayton/asdf-kubemqctl) | | | kubens | [aqua:ahmetb/kubectx/kubens](https://github.com/ahmetb/kubectx) | | | kubent | [aqua:doitintl/kube-no-trouble](https://github.com/doitintl/kube-no-trouble)
[asdf:virtualstaticvoid/asdf-kubent](https://github.com/virtualstaticvoid/asdf-kubent) | | | kubeone | [aqua:kubermatic/kubeone](https://github.com/kubermatic/kubeone)
[aqua:kubermatic/kubeone](https://github.com/kubermatic/kubeone) | | | kubergrunt | [aqua:gruntwork-io/kubergrunt](https://github.com/gruntwork-io/kubergrunt)
[asdf:NeoHsu/asdf-kubergrunt](https://github.com/NeoHsu/asdf-kubergrunt) | | | kubeseal | [aqua:bitnami-labs/sealed-secrets](https://github.com/bitnami-labs/sealed-secrets)
[asdf:stefansedich/asdf-kubeseal](https://github.com/stefansedich/asdf-kubeseal) | | | kubesec | [aqua:controlplaneio/kubesec](https://github.com/controlplaneio/kubesec)
[asdf:vitalis/asdf-kubesec](https://github.com/vitalis/asdf-kubesec) | | | kubeshark | [aqua:kubeshark/kubeshark](https://github.com/kubeshark/kubeshark)
[asdf:carnei-ro/asdf-kubeshark](https://github.com/carnei-ro/asdf-kubeshark) | | | kubespy | [aqua:pulumi/kubespy](https://github.com/pulumi/kubespy)
[asdf:jfreeland/asdf-kubespy](https://github.com/jfreeland/asdf-kubespy) | | | kubeval | [aqua:instrumenta/kubeval](https://github.com/instrumenta/kubeval)
[asdf:stefansedich/asdf-kubeval](https://github.com/stefansedich/asdf-kubeval) | | | kubevela | [aqua:kubevela/kubevela](https://github.com/kubevela/kubevela)
[asdf:gustavclausen/asdf-kubevela](https://github.com/gustavclausen/asdf-kubevela) | | | kubie | [aqua:sbstp/kubie](https://github.com/sbstp/kubie)
[asdf:johnhamelink/asdf-kubie](https://github.com/johnhamelink/asdf-kubie) | | | kustomize | [aqua:kubernetes-sigs/kustomize](https://github.com/kubernetes-sigs/kustomize)
[asdf:Banno/asdf-kustomize](https://github.com/Banno/asdf-kustomize) | | | kwokctl | [aqua:kubernetes-sigs/kwok/kwokctl](https://github.com/kubernetes-sigs/kwok) | | | kwt | [aqua:carvel-dev/kwt](https://github.com/carvel-dev/kwt)
[asdf:vmware-tanzu/asdf-carvel](https://github.com/vmware-tanzu/asdf-carvel) | | | kyverno | [aqua:kyverno/kyverno](https://github.com/kyverno/kyverno)
[asdf:https://github.com/hobaen/asdf-kyverno-cli.git](https://github.com/hobaen/asdf-kyverno-cli.git) | | | lab | [aqua:zaquestion/lab](https://github.com/zaquestion/lab)
[asdf:particledecay/asdf-lab](https://github.com/particledecay/asdf-lab) | | | lane | [ubi:CodeReaper/lane](https://github.com/CodeReaper/lane)
[asdf:CodeReaper/asdf-lane](https://github.com/CodeReaper/asdf-lane) | | | lazydocker | [aqua:jesseduffield/lazydocker](https://github.com/jesseduffield/lazydocker)
[ubi:jesseduffield/lazydocker](https://github.com/jesseduffield/lazydocker) | | | lazygit | [aqua:jesseduffield/lazygit](https://github.com/jesseduffield/lazygit)
[asdf:nklmilojevic/asdf-lazygit](https://github.com/nklmilojevic/asdf-lazygit) | | | lazyjournal | [aqua:Lifailon/lazyjournal](https://github.com/Lifailon/lazyjournal)
[ubi:Lifailon/lazyjournal](https://github.com/Lifailon/lazyjournal) | | | lean | [asdf:mise-plugins/mise-lean](https://github.com/mise-plugins/mise-lean) | | | lefthook | [aqua:evilmartians/lefthook](https://github.com/evilmartians/lefthook)
[ubi:evilmartians/lefthook](https://github.com/evilmartians/lefthook)
[npm:lefthook](https://www.npmjs.com/package/lefthook)
[asdf:jtzero/asdf-lefthook](https://github.com/jtzero/asdf-lefthook)
[go:github.com/evilmartians/lefthook](https://pkg.go.dev/github.com/evilmartians/lefthook) | | | leiningen | [asdf:mise-plugins/mise-lein](https://github.com/mise-plugins/mise-lein) | | | levant | [aqua:hashicorp/levant](https://github.com/hashicorp/levant)
[asdf:mise-plugins/mise-hashicorp](https://github.com/mise-plugins/mise-hashicorp) | | | lfe | [asdf:mise-plugins/mise-lfe](https://github.com/mise-plugins/mise-lfe) | | | libsql-server | [ubi:tursodatabase/libsql](https://github.com/tursodatabase/libsql)
[asdf:jonasb/asdf-libsql-server](https://github.com/jonasb/asdf-libsql-server) | | | license-plist | [aqua:mono0926/LicensePlist](https://github.com/mono0926/LicensePlist)
[ubi:mono0926/LicensePlist](https://github.com/mono0926/LicensePlist)
[asdf:MacPaw/asdf-license-plist](https://github.com/MacPaw/asdf-license-plist) | macos | | lima | [aqua:lima-vm/lima](https://github.com/lima-vm/lima)
[asdf:CrouchingMuppet/asdf-lima](https://github.com/CrouchingMuppet/asdf-lima) | | | linkerd | [aqua:linkerd/linkerd2](https://github.com/linkerd/linkerd2)
[asdf:kforsthoevel/asdf-linkerd](https://github.com/kforsthoevel/asdf-linkerd) | | | liqoctl | [aqua:liqotech/liqo](https://github.com/liqotech/liqo)
[asdf:pdemagny/asdf-liqoctl](https://github.com/pdemagny/asdf-liqoctl) | | | liquibase | [asdf:mise-plugins/mise-liquibase](https://github.com/mise-plugins/mise-liquibase) | | | litestream | [aqua:benbjohnson/litestream](https://github.com/benbjohnson/litestream)
[asdf:threkk/asdf-litestream](https://github.com/threkk/asdf-litestream) | | | llvm-objcopy | [asdf:mise-plugins/mise-llvm](https://github.com/mise-plugins/mise-llvm) | | | llvm-objdump | [asdf:mise-plugins/mise-llvm](https://github.com/mise-plugins/mise-llvm) | | | lnav | [aqua:tstack/lnav](https://github.com/tstack/lnav)
[ubi:tstack/lnav](https://github.com/tstack/lnav) | | | localstack | [ubi:localstack/localstack-cli](https://github.com/localstack/localstack-cli) | | | logtalk | [asdf:mise-plugins/mise-logtalk](https://github.com/mise-plugins/mise-logtalk) | | | loki-logcli | [aqua:grafana/loki/logcli](https://github.com/grafana/loki)
[asdf:comdotlinux/asdf-loki-logcli](https://github.com/comdotlinux/asdf-loki-logcli) | | | ls-lint | [aqua:loeffel-io/ls-lint](https://github.com/loeffel-io/ls-lint)
[ubi:loeffel-io/ls-lint](https://github.com/loeffel-io/ls-lint)
[npm:@ls-lint/ls-lint](https://www.npmjs.com/package/@ls-lint/ls-lint)
[asdf:Ameausoone/asdf-ls-lint](https://github.com/Ameausoone/asdf-ls-lint) | | | lsd | [aqua:lsd-rs/lsd](https://github.com/lsd-rs/lsd)
[asdf:mise-plugins/asdf-lsd](https://github.com/mise-plugins/asdf-lsd) | | | lua | [asdf:mise-plugins/mise-lua](https://github.com/mise-plugins/mise-lua) | | | lua-language-server | [aqua:LuaLS/lua-language-server](https://github.com/LuaLS/lua-language-server)
[asdf:bellini666/asdf-lua-language-server](https://github.com/bellini666/asdf-lua-language-server) | | | luajit | [asdf:mise-plugins/mise-luaJIT](https://github.com/mise-plugins/mise-luaJIT) | | | luau | [aqua:luau-lang/luau](https://github.com/luau-lang/luau) | | | lychee | [aqua:lycheeverse/lychee](https://github.com/lycheeverse/lychee)
[ubi:lycheeverse/lychee](https://github.com/lycheeverse/lychee)
[cargo:lychee](https://crates.io/crates/lychee) | | | maestro | [ubi:mobile-dev-inc/maestro](https://github.com/mobile-dev-inc/maestro)
[asdf:dotanuki-labs/asdf-maestro](https://github.com/dotanuki-labs/asdf-maestro) | | | mage | [aqua:magefile/mage](https://github.com/magefile/mage)
[asdf:mathew-fleisch/asdf-mage](https://github.com/mathew-fleisch/asdf-mage) | | | make | [asdf:mise-plugins/mise-make](https://github.com/mise-plugins/mise-make) | | | mani | [aqua:alajmo/mani](https://github.com/alajmo/mani)
[ubi:alajmo/mani](https://github.com/alajmo/mani)
[asdf:anweber/asdf-mani](https://github.com/anweber/asdf-mani) | | | mark | [ubi:kovetskiy/mark](https://github.com/kovetskiy/mark)
[asdf:jfreeland/asdf-mark](https://github.com/jfreeland/asdf-mark) | | | markdownlint-cli2 | [npm:markdownlint-cli2](https://www.npmjs.com/package/markdownlint-cli2)
[asdf:paulo-ferraz-oliveira/asdf-markdownlint-cli2](https://github.com/paulo-ferraz-oliveira/asdf-markdownlint-cli2) | | | marksman | [aqua:artempyanykh/marksman](https://github.com/artempyanykh/marksman) | | | marp-cli | [aqua:marp-team/marp-cli](https://github.com/marp-team/marp-cli)
[asdf:xataz/asdf-marp-cli](https://github.com/xataz/asdf-marp-cli) | | | mask | [aqua:jacobdeichert/mask](https://github.com/jacobdeichert/mask)
[asdf:aaaaninja/asdf-mask](https://github.com/aaaaninja/asdf-mask) | | | maven | [aqua:apache/maven](https://github.com/apache/maven)
[asdf:mise-plugins/mise-maven](https://github.com/mise-plugins/mise-maven)
[vfox:mise-plugins/vfox-maven](https://github.com/mise-plugins/vfox-maven) | | | mc | [asdf:mise-plugins/mise-mc](https://github.com/mise-plugins/mise-mc) | | | mdbook | [aqua:rust-lang/mdBook](https://github.com/rust-lang/mdBook)
[asdf:cipherstash/asdf-mdbook](https://github.com/cipherstash/asdf-mdbook) | | | mdbook-linkcheck | [ubi:Michael-F-Bryan/mdbook-linkcheck](https://github.com/Michael-F-Bryan/mdbook-linkcheck)
[asdf:mise-plugins/mise-mdbook-linkcheck](https://github.com/mise-plugins/mise-mdbook-linkcheck) | | | melange | [aqua:chainguard-dev/melange](https://github.com/chainguard-dev/melange)
[asdf:omissis/asdf-melange](https://github.com/omissis/asdf-melange) | linux, macos | | melt | [ubi:charmbracelet/melt](https://github.com/charmbracelet/melt)
[asdf:chessmango/asdf-melt](https://github.com/chessmango/asdf-melt) | | | memcached | [asdf:mise-plugins/mise-memcached](https://github.com/mise-plugins/mise-memcached) | | | mercury | [asdf:mise-plugins/mise-mercury](https://github.com/mise-plugins/mise-mercury) | | | meson | [asdf:mise-plugins/mise-meson](https://github.com/mise-plugins/mise-meson) | | | micronaut | [asdf:mise-plugins/mise-micronaut](https://github.com/mise-plugins/mise-micronaut) | | | mill | [asdf:mise-plugins/mise-mill](https://github.com/mise-plugins/mise-mill) | | | mimirtool | [aqua:grafana/mimir/mimirtool](https://github.com/grafana/mimir)
[asdf:asdf-community/asdf-mimirtool](https://github.com/asdf-community/asdf-mimirtool) | linux, macos | | minify | [aqua:tdewolff/minify](https://github.com/tdewolff/minify)
[asdf:axilleas/asdf-minify](https://github.com/axilleas/asdf-minify) | | | minikube | [aqua:kubernetes/minikube](https://github.com/kubernetes/minikube)
[asdf:alvarobp/asdf-minikube](https://github.com/alvarobp/asdf-minikube) | | | minio | [asdf:mise-plugins/mise-minio](https://github.com/mise-plugins/mise-minio) | | | minishift | [aqua:minishift/minishift](https://github.com/minishift/minishift)
[asdf:sqtran/asdf-minishift](https://github.com/sqtran/asdf-minishift) | | | minisign | [aqua:jedisct1/minisign](https://github.com/jedisct1/minisign) | | | mint | [ubi:mint-lang/mint](https://github.com/mint-lang/mint)
[asdf:mint-lang/asdf-mint](https://github.com/mint-lang/asdf-mint) | | | mirrord | [ubi:metalbear-co/mirrord](https://github.com/metalbear-co/mirrord)
[asdf:metalbear-co/asdf-mirrord](https://github.com/metalbear-co/asdf-mirrord) | | | mitmproxy | [asdf:mise-plugins/mise-mitmproxy](https://github.com/mise-plugins/mise-mitmproxy) | | | mkcert | [aqua:FiloSottile/mkcert](https://github.com/FiloSottile/mkcert)
[ubi:FiloSottile/mkcert](https://github.com/FiloSottile/mkcert)
[asdf:salasrod/asdf-mkcert](https://github.com/salasrod/asdf-mkcert) | | | mlton | [asdf:mise-plugins/mise-mlton](https://github.com/mise-plugins/mise-mlton) | | | mockery | [aqua:vektra/mockery](https://github.com/vektra/mockery)
[asdf:cabify/asdf-mockery](https://github.com/cabify/asdf-mockery) | | | mockolo | [ubi:uber/mockolo](https://github.com/uber/mockolo)
[asdf:mise-plugins/mise-mockolo](https://github.com/mise-plugins/mise-mockolo) | | | mold | [aqua:rui314/mold](https://github.com/rui314/mold)
[ubi:rui314/mold](https://github.com/rui314/mold) | | | monarch | [asdf:mise-plugins/mise-monarch](https://github.com/mise-plugins/mise-monarch) | | | mongodb | [asdf:mise-plugins/mise-mongodb](https://github.com/mise-plugins/mise-mongodb) | | | mongosh | [ubi:mongodb-js/mongosh](https://github.com/mongodb-js/mongosh)
[asdf:itspngu/asdf-mongosh](https://github.com/itspngu/asdf-mongosh) | | | mprocs | [aqua:pvolok/mprocs](https://github.com/pvolok/mprocs)
[ubi:pvolok/mprocs](https://github.com/pvolok/mprocs) | | | mssqldef | [aqua:sqldef/sqldef/mssqldef](https://github.com/sqldef/sqldef) | | | mutanus | [asdf:mise-plugins/mise-mutanus](https://github.com/mise-plugins/mise-mutanus) | | | mvnd | [aqua:apache/maven-mvnd](https://github.com/apache/maven-mvnd)
[asdf:joschi/asdf-mvnd](https://github.com/joschi/asdf-mvnd) | | | mysql | [asdf:mise-plugins/mise-mysql](https://github.com/mise-plugins/mise-mysql) | | | mysqldef | [aqua:sqldef/sqldef/mysqldef](https://github.com/sqldef/sqldef) | | | nancy | [aqua:sonatype-nexus-community/nancy](https://github.com/sonatype-nexus-community/nancy)
[asdf:iilyak/asdf-nancy](https://github.com/iilyak/asdf-nancy) | | | nano | [asdf:mise-plugins/mise-nano](https://github.com/mise-plugins/mise-nano) | | | nasm | [asdf:mise-plugins/mise-nasm](https://github.com/mise-plugins/mise-nasm) | | | navi | [aqua:denisidoro/navi](https://github.com/denisidoro/navi)
[ubi:denisidoro/navi](https://github.com/denisidoro/navi) | | | neko | [ubi:HaxeFoundation/neko](https://github.com/HaxeFoundation/neko)
[asdf:asdf-community/asdf-neko](https://github.com/asdf-community/asdf-neko) | | | neonctl | [aqua:neondatabase/neonctl](https://github.com/neondatabase/neonctl)
[ubi:neondatabase/neonctl](https://github.com/neondatabase/neonctl) | | | neovim | [aqua:neovim/neovim](https://github.com/neovim/neovim)
[asdf:richin13/asdf-neovim](https://github.com/richin13/asdf-neovim) | | | nerdctl | [aqua:containerd/nerdctl](https://github.com/containerd/nerdctl)
[asdf:dmpe/asdf-nerdctl](https://github.com/dmpe/asdf-nerdctl) | | | newrelic | [aqua:newrelic/newrelic-cli](https://github.com/newrelic/newrelic-cli)
[ubi:newrelic/newrelic-cli](https://github.com/newrelic/newrelic-cli)
[asdf:NeoHsu/asdf-newrelic-cli](https://github.com/NeoHsu/asdf-newrelic-cli) | | | nfpm | [aqua:goreleaser/nfpm](https://github.com/goreleaser/nfpm)
[ubi:goreleaser/nfpm](https://github.com/goreleaser/nfpm)
[asdf:ORCID/asdf-nfpm](https://github.com/ORCID/asdf-nfpm) | | | ni | [npm:@antfu/ni](https://www.npmjs.com/package/@antfu/ni) | | | nim | [asdf:mise-plugins/mise-nim](https://github.com/mise-plugins/mise-nim) | | | ninja | [aqua:ninja-build/ninja](https://github.com/ninja-build/ninja)
[asdf:asdf-community/asdf-ninja](https://github.com/asdf-community/asdf-ninja) | | | node | [core:node](https://mise.jdx.dev/lang/node.html) | | | nomad | [aqua:hashicorp/nomad](https://github.com/hashicorp/nomad)
[asdf:mise-plugins/mise-hashicorp](https://github.com/mise-plugins/mise-hashicorp) | | | nomad-pack | [asdf:mise-plugins/mise-hashicorp](https://github.com/mise-plugins/mise-hashicorp) | | | notation | [aqua:notaryproject/notation](https://github.com/notaryproject/notation)
[asdf:bodgit/asdf-notation](https://github.com/bodgit/asdf-notation) | | | nova | [aqua:FairwindsOps/nova](https://github.com/FairwindsOps/nova)
[asdf:elementalvoid/asdf-nova](https://github.com/elementalvoid/asdf-nova) | | | nsc | [ubi:nats-io/nsc](https://github.com/nats-io/nsc)
[asdf:dex4er/asdf-nsc](https://github.com/dex4er/asdf-nsc) | | | numbat | [aqua:sharkdp/numbat](https://github.com/sharkdp/numbat)
[ubi:sharkdp/numbat](https://github.com/sharkdp/numbat) | | | oapi-codegen | [go:github.com/oapi-codegen/oapi-codegen/v2/cmd/oapi-codegen](https://pkg.go.dev/github.com/oapi-codegen/oapi-codegen/v2/cmd/oapi-codegen)
[asdf:dylanrayboss/asdf-oapi-codegen](https://github.com/dylanrayboss/asdf-oapi-codegen) | | | oauth2c | [aqua:cloudentity/oauth2c](https://github.com/cloudentity/oauth2c)
[ubi:cloudentity/oauth2c](https://github.com/cloudentity/oauth2c) | | | oc | [asdf:mise-plugins/mise-oc](https://github.com/mise-plugins/mise-oc) | | | ocaml | [asdf:mise-plugins/mise-ocaml](https://github.com/mise-plugins/mise-ocaml) | | | oci | [asdf:mise-plugins/mise-oci](https://github.com/mise-plugins/mise-oci) | | | octosql | [ubi:cube2222/octosql](https://github.com/cube2222/octosql) | | | odin | [ubi:odin-lang/Odin](https://github.com/odin-lang/Odin)
[asdf:jtakakura/asdf-odin](https://github.com/jtakakura/asdf-odin) | | | odo | [aqua:redhat-developer/odo](https://github.com/redhat-developer/odo)
[asdf:rm3l/asdf-odo](https://github.com/rm3l/asdf-odo) | | | okta-aws | [aqua:okta/okta-aws-cli](https://github.com/okta/okta-aws-cli)
[asdf:bennythejudge/asdf-plugin-okta-aws-cli](https://github.com/bennythejudge/asdf-plugin-okta-aws-cli) | | | okteto | [aqua:okteto/okteto](https://github.com/okteto/okteto)
[asdf:BradenM/asdf-okteto](https://github.com/BradenM/asdf-okteto) | | | ollama | [aqua:ollama/ollama](https://github.com/ollama/ollama)
[asdf:virtualstaticvoid/asdf-ollama](https://github.com/virtualstaticvoid/asdf-ollama) | | | om | [aqua:pivotal-cf/om](https://github.com/pivotal-cf/om)
[asdf:mise-plugins/tanzu-plug-in-for-asdf](https://github.com/mise-plugins/tanzu-plug-in-for-asdf) | | | onyx | [ubi:onyx-lang/onyx](https://github.com/onyx-lang/onyx)
[asdf:jtakakura/asdf-onyx](https://github.com/jtakakura/asdf-onyx) | | | opa | [aqua:open-policy-agent/opa](https://github.com/open-policy-agent/opa)
[asdf:tochukwuvictor/asdf-opa](https://github.com/tochukwuvictor/asdf-opa) | | | opam | [ubi:ocaml/opam](https://github.com/ocaml/opam)
[asdf:asdf-community/asdf-opam](https://github.com/asdf-community/asdf-opam) | | | openbao | [ubi:openbao/openbao](https://github.com/openbao/openbao) | | | opencode | [aqua:sst/opencode](https://github.com/sst/opencode)
[ubi:sst/opencode](https://github.com/sst/opencode) | | | openfaas-cli | [aqua:openfaas/faas-cli](https://github.com/openfaas/faas-cli)
[asdf:zekker6/asdf-faas-cli](https://github.com/zekker6/asdf-faas-cli) | | | openresty | [asdf:mise-plugins/mise-openresty](https://github.com/mise-plugins/mise-openresty) | | | opensearch | [asdf:mise-plugins/mise-opensearch](https://github.com/mise-plugins/mise-opensearch) | | | opensearch-cli | [ubi:opensearch-project/opensearch-cli](https://github.com/opensearch-project/opensearch-cli)
[asdf:mise-plugins/mise-opensearch-cli](https://github.com/mise-plugins/mise-opensearch-cli) | | | openshift-install | [asdf:mise-plugins/mise-openshift-install](https://github.com/mise-plugins/mise-openshift-install) | | | opentofu | [aqua:opentofu/opentofu](https://github.com/opentofu/opentofu)
[ubi:opentofu/opentofu](https://github.com/opentofu/opentofu)
[asdf:virtualroot/asdf-opentofu](https://github.com/virtualroot/asdf-opentofu) | | | operator-sdk | [aqua:operator-framework/operator-sdk](https://github.com/operator-framework/operator-sdk)
[asdf:Medium/asdf-operator-sdk](https://github.com/Medium/asdf-operator-sdk) | | | opsgenie-lamp | [ubi:opsgenie/opsgenie-lamp](https://github.com/opsgenie/opsgenie-lamp)
[asdf:mise-plugins/mise-opsgenie-lamp](https://github.com/mise-plugins/mise-opsgenie-lamp) | | | oras | [aqua:oras-project/oras](https://github.com/oras-project/oras)
[asdf:bodgit/asdf-oras](https://github.com/bodgit/asdf-oras) | | | osqueryi | [asdf:mise-plugins/mise-osqueryi](https://github.com/mise-plugins/mise-osqueryi) | | | osv-scanner | [aqua:google/osv-scanner](https://github.com/google/osv-scanner) | | | overmind | [ubi:DarthSim/overmind](https://github.com/DarthSim/overmind)
[go:github.com/DarthSim/overmind/v2](https://pkg.go.dev/github.com/DarthSim/overmind/v2) | | | oxipng | [aqua:shssoichiro/oxipng](https://github.com/shssoichiro/oxipng) | | | oxker | [aqua:mrjackwills/oxker](https://github.com/mrjackwills/oxker)
[ubi:mrjackwills/oxker](https://github.com/mrjackwills/oxker)
[cargo:oxker](https://crates.io/crates/oxker) | | | oxlint | [aqua:oxc-project/oxc/oxlint](https://github.com/oxc-project/oxc)
[ubi:oxc-project/oxc](https://github.com/oxc-project/oxc)
[npm:oxlint](https://www.npmjs.com/package/oxlint) | | | pachctl | [aqua:pachyderm/pachyderm](https://github.com/pachyderm/pachyderm)
[asdf:abatilo/asdf-pachctl](https://github.com/abatilo/asdf-pachctl) | | | packer | [aqua:hashicorp/packer](https://github.com/hashicorp/packer)
[asdf:mise-plugins/mise-hashicorp](https://github.com/mise-plugins/mise-hashicorp) | | | pandoc | [ubi:jgm/pandoc](https://github.com/jgm/pandoc)
[asdf:Fbrisset/asdf-pandoc](https://github.com/Fbrisset/asdf-pandoc) | | | patat | [ubi:jaspervdj/patat](https://github.com/jaspervdj/patat)
[asdf:airtonix/asdf-patat](https://github.com/airtonix/asdf-patat) | | | pdm | [pipx:pdm](https://pypi.org/project/pdm)
[asdf:1oglop1/asdf-pdm](https://github.com/1oglop1/asdf-pdm) | | | peco | [aqua:peco/peco](https://github.com/peco/peco)
[asdf:asdf-community/asdf-peco](https://github.com/asdf-community/asdf-peco) | | | periphery | [aqua:peripheryapp/periphery](https://github.com/peripheryapp/periphery)
[asdf:mise-plugins/mise-periphery](https://github.com/mise-plugins/mise-periphery) | | | perl | [aqua:skaji/relocatable-perl](https://github.com/skaji/relocatable-perl)
[asdf:ouest/asdf-perl](https://github.com/ouest/asdf-perl) | | | php | [asdf:mise-plugins/asdf-php](https://github.com/mise-plugins/asdf-php)
[vfox:mise-plugins/vfox-php](https://github.com/mise-plugins/vfox-php) | | | pinact | [aqua:suzuki-shunsuke/pinact](https://github.com/suzuki-shunsuke/pinact)
[ubi:suzuki-shunsuke/pinact](https://github.com/suzuki-shunsuke/pinact) | | | pint | [aqua:cloudflare/pint](https://github.com/cloudflare/pint)
[asdf:sam-burrell/asdf-pint](https://github.com/sam-burrell/asdf-pint) | | | pipectl | [aqua:pipe-cd/pipecd/pipectl](https://github.com/pipe-cd/pipecd)
[asdf:pipe-cd/asdf-pipectl](https://github.com/pipe-cd/asdf-pipectl) | linux, macos | | pipelight | [asdf:mise-plugins/mise-pipelight](https://github.com/mise-plugins/mise-pipelight) | | | pipenv | [asdf:mise-plugins/mise-pipenv](https://github.com/mise-plugins/mise-pipenv) | | | pipx | [asdf:mise-plugins/mise-pipx](https://github.com/mise-plugins/mise-pipx) | | | pitchfork | [aqua:jdx/pitchfork](https://github.com/jdx/pitchfork)
[ubi:jdx/pitchfork](https://github.com/jdx/pitchfork) | | | pivnet | [aqua:pivotal-cf/pivnet-cli](https://github.com/pivotal-cf/pivnet-cli)
[asdf:mise-plugins/tanzu-plug-in-for-asdf](https://github.com/mise-plugins/tanzu-plug-in-for-asdf) | | | pixi | [ubi:prefix-dev/pixi](https://github.com/prefix-dev/pixi) | | | pkl | [aqua:apple/pkl](https://github.com/apple/pkl)
[ubi:apple/pkl](https://github.com/apple/pkl)
[asdf:mise-plugins/asdf-pkl](https://github.com/mise-plugins/asdf-pkl) | | | please | [aqua:thought-machine/please](https://github.com/thought-machine/please)
[asdf:asdf-community/asdf-please](https://github.com/asdf-community/asdf-please) | | | pluto | [aqua:FairwindsOps/pluto](https://github.com/FairwindsOps/pluto)
[ubi:FairwindsOps/pluto](https://github.com/FairwindsOps/pluto)
[asdf:FairwindsOps/asdf-pluto](https://github.com/FairwindsOps/asdf-pluto) | | | pnpm | [aqua:pnpm/pnpm](https://github.com/pnpm/pnpm)
[ubi:pnpm/pnpm](https://github.com/pnpm/pnpm)
[npm:pnpm](https://www.npmjs.com/package/pnpm)
[asdf:jonathanmorley/asdf-pnpm](https://github.com/jonathanmorley/asdf-pnpm) | | | podman | [ubi:containers/podman](https://github.com/containers/podman)
[asdf:tvon/asdf-podman](https://github.com/tvon/asdf-podman) | | | poetry | [asdf:mise-plugins/mise-poetry](https://github.com/mise-plugins/mise-poetry) | | | polaris | [aqua:FairwindsOps/polaris](https://github.com/FairwindsOps/polaris)
[asdf:particledecay/asdf-polaris](https://github.com/particledecay/asdf-polaris) | | | popeye | [aqua:derailed/popeye](https://github.com/derailed/popeye)
[asdf:nlamirault/asdf-popeye](https://github.com/nlamirault/asdf-popeye) | | | postgis | [asdf:mise-plugins/mise-postgis](https://github.com/mise-plugins/mise-postgis) | | | postgres | [asdf:mise-plugins/mise-postgres](https://github.com/mise-plugins/mise-postgres) | | | powerline-go | [aqua:justjanne/powerline-go](https://github.com/justjanne/powerline-go)
[ubi:justjanne/powerline-go](https://github.com/justjanne/powerline-go)
[asdf:dex4er/asdf-powerline-go](https://github.com/dex4er/asdf-powerline-go) | | | powerpipe | [aqua:turbot/powerpipe](https://github.com/turbot/powerpipe)
[asdf:jc00ke/asdf-powerpipe](https://github.com/jc00ke/asdf-powerpipe) | | | powershell-core | [aqua:PowerShell/PowerShell](https://github.com/PowerShell/PowerShell)
[asdf:daveneeley/asdf-powershell-core](https://github.com/daveneeley/asdf-powershell-core) | | | pre-commit | [aqua:pre-commit/pre-commit](https://github.com/pre-commit/pre-commit)
[ubi:pre-commit/pre-commit](https://github.com/pre-commit/pre-commit)
[asdf:jonathanmorley/asdf-pre-commit](https://github.com/jonathanmorley/asdf-pre-commit)
[pipx:pre-commit](https://pypi.org/project/pre-commit) | | | prettier | [npm:prettier](https://www.npmjs.com/package/prettier) | | | process-compose | [ubi:F1bonacc1/process-compose](https://github.com/F1bonacc1/process-compose) | | | promtool | [aqua:prometheus/prometheus](https://github.com/prometheus/prometheus)
[asdf:asdf-community/asdf-promtool](https://github.com/asdf-community/asdf-promtool) | | | protoc | [aqua:protocolbuffers/protobuf/protoc](https://github.com/protocolbuffers/protobuf)
[asdf:paxosglobal/asdf-protoc](https://github.com/paxosglobal/asdf-protoc) | | | protoc-gen-connect-go | [go:connectrpc.com/connect/cmd/protoc-gen-connect-go](https://pkg.go.dev/connectrpc.com/connect/cmd/protoc-gen-connect-go)
[asdf:dylanrayboss/asdf-protoc-gen-connect-go](https://github.com/dylanrayboss/asdf-protoc-gen-connect-go) | | | protoc-gen-go | [aqua:protocolbuffers/protobuf-go/protoc-gen-go](https://github.com/protocolbuffers/protobuf-go)
[asdf:pbr0ck3r/asdf-protoc-gen-go](https://github.com/pbr0ck3r/asdf-protoc-gen-go) | | | protoc-gen-go-grpc | [aqua:grpc/grpc-go/protoc-gen-go-grpc](https://github.com/grpc/grpc-go)
[asdf:pbr0ck3r/asdf-protoc-gen-go-grpc](https://github.com/pbr0ck3r/asdf-protoc-gen-go-grpc) | | | protoc-gen-grpc-web | [asdf:mise-plugins/mise-protoc-gen-grpc-web](https://github.com/mise-plugins/mise-protoc-gen-grpc-web) | | | protoc-gen-js | [ubi:protocolbuffers/protobuf-javascript](https://github.com/protocolbuffers/protobuf-javascript)
[asdf:pbr0ck3r/asdf-protoc-gen-js](https://github.com/pbr0ck3r/asdf-protoc-gen-js) | | | protoc-gen-validate | [aqua:bufbuild/protoc-gen-validate](https://github.com/bufbuild/protoc-gen-validate)
[go:github.com/envoyproxy/protoc-gen-validate](https://pkg.go.dev/github.com/envoyproxy/protoc-gen-validate) | | | protolint | [aqua:yoheimuta/protolint](https://github.com/yoheimuta/protolint)
[asdf:spencergilbert/asdf-protolint](https://github.com/spencergilbert/asdf-protolint) | | | protonge | [asdf:mise-plugins/mise-protonge](https://github.com/mise-plugins/mise-protonge) | | | psc-package | [ubi:purescript/psc-package](https://github.com/purescript/psc-package)
[asdf:nsaunders/asdf-psc-package](https://github.com/nsaunders/asdf-psc-package) | | | psqldef | [aqua:sqldef/sqldef/psqldef](https://github.com/sqldef/sqldef) | | | pulumi | [aqua:pulumi/pulumi](https://github.com/pulumi/pulumi)
[asdf:canha/asdf-pulumi](https://github.com/canha/asdf-pulumi) | | | purerl | [ubi:purerl/purerl](https://github.com/purerl/purerl)
[asdf:GoNZooo/asdf-purerl](https://github.com/GoNZooo/asdf-purerl) | | | purescript | [ubi:purescript/purescript](https://github.com/purescript/purescript)
[asdf:jrrom/asdf-purescript](https://github.com/jrrom/asdf-purescript) | | | purty | [asdf:mise-plugins/mise-purty](https://github.com/mise-plugins/mise-purty) | | | python | [core:python](https://mise.jdx.dev/lang/python.html) | | | qdns | [ubi:natesales/q](https://github.com/natesales/q)
[asdf:moritz-makandra/asdf-plugin-qdns](https://github.com/moritz-makandra/asdf-plugin-qdns) | | | qsv | [ubi:dathere/qsv](https://github.com/dathere/qsv)
[asdf:vjda/asdf-qsv](https://github.com/vjda/asdf-qsv) | | | quarkus | [asdf:mise-plugins/mise-quarkus](https://github.com/mise-plugins/mise-quarkus) | | | r | [asdf:mise-plugins/mise-r](https://github.com/mise-plugins/mise-r) | | | rabbitmq | [asdf:mise-plugins/asdf-rabbitmq](https://github.com/mise-plugins/asdf-rabbitmq) | | | racket | [asdf:mise-plugins/mise-racket](https://github.com/mise-plugins/mise-racket) | | | railway | [ubi:railwayapp/cli](https://github.com/railwayapp/cli) | | | raku | [asdf:mise-plugins/mise-raku](https://github.com/mise-plugins/mise-raku) | | | rancher | [aqua:rancher/cli](https://github.com/rancher/cli)
[asdf:abinet/asdf-rancher](https://github.com/abinet/asdf-rancher) | | | rbac-lookup | [aqua:FairwindsOps/rbac-lookup](https://github.com/FairwindsOps/rbac-lookup)
[asdf:looztra/asdf-rbac-lookup](https://github.com/looztra/asdf-rbac-lookup) | | | rclone | [aqua:rclone/rclone](https://github.com/rclone/rclone)
[ubi:rclone/rclone](https://github.com/rclone/rclone)
[asdf:johnlayton/asdf-rclone](https://github.com/johnlayton/asdf-rclone) | | | rebar | [asdf:mise-plugins/mise-rebar](https://github.com/mise-plugins/mise-rebar) | | | reckoner | [ubi:FairwindsOps/reckoner](https://github.com/FairwindsOps/reckoner)
[asdf:FairwindsOps/asdf-reckoner](https://github.com/FairwindsOps/asdf-reckoner) | | | redis | [asdf:mise-plugins/mise-redis](https://github.com/mise-plugins/mise-redis) | | | redis-cli | [asdf:mise-plugins/mise-redis-cli](https://github.com/mise-plugins/mise-redis-cli) | | | redo | [aqua:barthr/redo](https://github.com/barthr/redo)
[ubi:barthr/redo](https://github.com/barthr/redo)
[asdf:chessmango/asdf-redo](https://github.com/chessmango/asdf-redo) | | | reg | [aqua:genuinetools/reg](https://github.com/genuinetools/reg)
[asdf:looztra/asdf-reg](https://github.com/looztra/asdf-reg) | | | regal | [aqua:StyraInc/regal](https://github.com/StyraInc/regal)
[asdf:mise-plugins/mise-regal](https://github.com/mise-plugins/mise-regal) | | | regctl | [aqua:regclient/regclient/regctl](https://github.com/regclient/regclient)
[asdf:ORCID/asdf-regctl](https://github.com/ORCID/asdf-regctl) | | | regsync | [aqua:regclient/regclient/regsync](https://github.com/regclient/regclient)
[asdf:rsrchboy/asdf-regsync](https://github.com/rsrchboy/asdf-regsync) | | | restic | [aqua:restic/restic](https://github.com/restic/restic)
[asdf:xataz/asdf-restic](https://github.com/xataz/asdf-restic) | | | restish | [ubi:danielgtaylor/restish](https://github.com/danielgtaylor/restish)
[go:github.com/danielgtaylor/restish](https://pkg.go.dev/github.com/danielgtaylor/restish) | | | resvg | [aqua:linebender/resvg](https://github.com/linebender/resvg) | | | revive | [aqua:mgechev/revive](https://github.com/mgechev/revive)
[asdf:bjw-s/asdf-revive](https://github.com/bjw-s/asdf-revive) | | | richgo | [aqua:kyoh86/richgo](https://github.com/kyoh86/richgo)
[asdf:paxosglobal/asdf-richgo](https://github.com/paxosglobal/asdf-richgo) | | | ripgrep | [aqua:BurntSushi/ripgrep](https://github.com/BurntSushi/ripgrep)
[ubi:BurntSushi/ripgrep](https://github.com/BurntSushi/ripgrep)
[asdf:https://gitlab.com/wt0f/asdf-ripgrep](https://gitlab.com/wt0f/asdf-ripgrep)
[cargo:ripgrep](https://crates.io/crates/ripgrep) | | | ripgrep-all | [aqua:phiresky/ripgrep-all](https://github.com/phiresky/ripgrep-all)
[ubi:phiresky/ripgrep-all](https://github.com/phiresky/ripgrep-all)
[cargo:ripgrep\_all](https://crates.io/crates/ripgrep_all) | | | ripsecrets | [aqua:sirwart/ripsecrets](https://github.com/sirwart/ripsecrets)
[asdf:https://github.com/boris-smidt-klarrio/asdf-ripsecrets](https://github.com/boris-smidt-klarrio/asdf-ripsecrets) | | | rke | [aqua:rancher/rke](https://github.com/rancher/rke)
[asdf:particledecay/asdf-rke](https://github.com/particledecay/asdf-rke) | | | rlwrap | [asdf:mise-plugins/mise-rlwrap](https://github.com/mise-plugins/mise-rlwrap) | | | ruby | [core:ruby](https://mise.jdx.dev/lang/ruby.html) | | | ruff | [aqua:astral-sh/ruff](https://github.com/astral-sh/ruff)
[ubi:astral-sh/ruff](https://github.com/astral-sh/ruff)
[asdf:simhem/asdf-ruff](https://github.com/simhem/asdf-ruff) | | | rust | [core:rust](https://mise.jdx.dev/lang/rust.html)
[asdf:code-lever/asdf-rust](https://github.com/code-lever/asdf-rust) | | | rust-analyzer | [aqua:rust-lang/rust-analyzer](https://github.com/rust-lang/rust-analyzer)
[asdf:Xyven1/asdf-rust-analyzer](https://github.com/Xyven1/asdf-rust-analyzer) | | | rustic | [aqua:rustic-rs/rustic](https://github.com/rustic-rs/rustic)
[ubi:rustic-rs/rustic](https://github.com/rustic-rs/rustic) | | | rye | [aqua:astral-sh/rye](https://github.com/astral-sh/rye)
[asdf:Azuki-bar/asdf-rye](https://github.com/Azuki-bar/asdf-rye) | | | saml2aws | [aqua:Versent/saml2aws](https://github.com/Versent/saml2aws)
[asdf:elementalvoid/asdf-saml2aws](https://github.com/elementalvoid/asdf-saml2aws) | | | sampler | [aqua:sqshq/sampler](https://github.com/sqshq/sampler)
[ubi:sqshq/sampler](https://github.com/sqshq/sampler) | | | sbcl | [asdf:mise-plugins/mise-sbcl](https://github.com/mise-plugins/mise-sbcl) | | | sbt | [asdf:mise-plugins/mise-sbt](https://github.com/mise-plugins/mise-sbt) | | | scala | [asdf:mise-plugins/mise-scala](https://github.com/mise-plugins/mise-scala)
[vfox:mise-plugins/vfox-scala](https://github.com/mise-plugins/vfox-scala) | | | scala-cli | [ubi:VirtusLab/scala-cli](https://github.com/VirtusLab/scala-cli)
[asdf:mise-plugins/mise-scala-cli](https://github.com/mise-plugins/mise-scala-cli) | | | scaleway | [aqua:scaleway/scaleway-cli](https://github.com/scaleway/scaleway-cli)
[asdf:albarralnunez/asdf-plugin-scaleway-cli](https://github.com/albarralnunez/asdf-plugin-scaleway-cli) | | | scalingo-cli | [aqua:Scalingo/cli](https://github.com/Scalingo/cli)
[asdf:brandon-welsch/asdf-scalingo-cli](https://github.com/brandon-welsch/asdf-scalingo-cli) | | | scarb | [ubi:software-mansion/scarb](https://github.com/software-mansion/scarb)
[asdf:software-mansion/asdf-scarb](https://github.com/software-mansion/asdf-scarb) | | | sccache | [aqua:mozilla/sccache](https://github.com/mozilla/sccache)
[ubi:mozilla/sccache](https://github.com/mozilla/sccache)
[asdf:emersonmx/asdf-sccache](https://github.com/emersonmx/asdf-sccache) | | | schemacrawler | [asdf:mise-plugins/mise-schemacrawler](https://github.com/mise-plugins/mise-schemacrawler) | | | scie-pants | [ubi:pantsbuild/scie-pants](https://github.com/pantsbuild/scie-pants)
[asdf:robzr/asdf-scie-pants](https://github.com/robzr/asdf-scie-pants) | | | scorecard | [aqua:ossf/scorecard](https://github.com/ossf/scorecard) | | | sd | [aqua:chmln/sd](https://github.com/chmln/sd)
[ubi:chmln/sd](https://github.com/chmln/sd)
[cargo:sd](https://crates.io/crates/sd) | | | seed7 | [asdf:mise-plugins/mise-seed7](https://github.com/mise-plugins/mise-seed7) | | | semgrep | [pipx:semgrep](https://pypi.org/project/semgrep)
[asdf:mise-plugins/mise-semgrep](https://github.com/mise-plugins/mise-semgrep) | | | semtag | [asdf:mise-plugins/mise-semtag](https://github.com/mise-plugins/mise-semtag) | | | semver | [aqua:fsaintjacques/semver-tool](https://github.com/fsaintjacques/semver-tool)
[asdf:mathew-fleisch/asdf-semver](https://github.com/mathew-fleisch/asdf-semver) | | | sentinel | [asdf:mise-plugins/mise-hashicorp](https://github.com/mise-plugins/mise-hashicorp) | | | sentry | [aqua:getsentry/sentry-cli](https://github.com/getsentry/sentry-cli)
[ubi:getsentry/sentry-cli](https://github.com/getsentry/sentry-cli) | | | serf | [asdf:mise-plugins/mise-hashicorp](https://github.com/mise-plugins/mise-hashicorp) | | | serverless | [asdf:mise-plugins/mise-serverless](https://github.com/mise-plugins/mise-serverless) | | | setup-envtest | [asdf:mise-plugins/mise-setup-envtest](https://github.com/mise-plugins/mise-setup-envtest) | | | shell2http | [aqua:msoap/shell2http](https://github.com/msoap/shell2http)
[asdf:ORCID/asdf-shell2http](https://github.com/ORCID/asdf-shell2http) | | | shellcheck | [aqua:koalaman/shellcheck](https://github.com/koalaman/shellcheck)
[ubi:koalaman/shellcheck](https://github.com/koalaman/shellcheck)
[asdf:luizm/asdf-shellcheck](https://github.com/luizm/asdf-shellcheck) | linux, macos | | shellspec | [aqua:shellspec/shellspec](https://github.com/shellspec/shellspec)
[asdf:poikilotherm/asdf-shellspec](https://github.com/poikilotherm/asdf-shellspec) | | | shfmt | [aqua:mvdan/sh](https://github.com/mvdan/sh)
[ubi:mvdan/sh](https://github.com/mvdan/sh)
[asdf:luizm/asdf-shfmt](https://github.com/luizm/asdf-shfmt)
[go:mvdan.cc/sh/v3/cmd/shfmt](https://pkg.go.dev/mvdan.cc/sh/v3/cmd/shfmt) | linux, macos | | shorebird | [asdf:mise-plugins/mise-shorebird](https://github.com/mise-plugins/mise-shorebird) | | | signadot | [ubi:signadot/cli](https://github.com/signadot/cli) | | | sinker | [aqua:plexsystems/sinker](https://github.com/plexsystems/sinker)
[asdf:elementalvoid/asdf-sinker](https://github.com/elementalvoid/asdf-sinker) | | | skaffold | [aqua:GoogleContainerTools/skaffold](https://github.com/GoogleContainerTools/skaffold)
[asdf:nklmilojevic/asdf-skaffold](https://github.com/nklmilojevic/asdf-skaffold) | | | skate | [aqua:charmbracelet/skate](https://github.com/charmbracelet/skate)
[asdf:chessmango/asdf-skate](https://github.com/chessmango/asdf-skate) | | | skeema | [aqua:skeema/skeema](https://github.com/skeema/skeema)
[ubi:skeema/skeema](https://github.com/skeema/skeema) | | | sloth | [aqua:slok/sloth](https://github.com/slok/sloth)
[asdf:slok/asdf-sloth](https://github.com/slok/asdf-sloth) | | | slsa-verifier | [ubi:slsa-framework/slsa-verifier](https://github.com/slsa-framework/slsa-verifier) | | | smithy | [asdf:mise-plugins/mise-smithy](https://github.com/mise-plugins/mise-smithy) | | | smlnj | [asdf:mise-plugins/mise-smlnj](https://github.com/mise-plugins/mise-smlnj) | | | snyk | [aqua:snyk/cli](https://github.com/snyk/cli)
[asdf:nirfuchs/asdf-snyk](https://github.com/nirfuchs/asdf-snyk) | | | soft-serve | [ubi:charmbracelet/soft-serve](https://github.com/charmbracelet/soft-serve)
[asdf:chessmango/asdf-soft-serve](https://github.com/chessmango/asdf-soft-serve) | | | solidity | [ubi:ethereum/solidity](https://github.com/ethereum/solidity)
[asdf:diegodorado/asdf-solidity](https://github.com/diegodorado/asdf-solidity) | | | sonobuoy | [ubi:vmware-tanzu/sonobuoy](https://github.com/vmware-tanzu/sonobuoy)
[asdf:Nick-Triller/asdf-sonobuoy](https://github.com/Nick-Triller/asdf-sonobuoy) | | | sops | [aqua:getsops/sops](https://github.com/getsops/sops)
[ubi:getsops/sops](https://github.com/getsops/sops)
[asdf:mise-plugins/mise-sops](https://github.com/mise-plugins/mise-sops) | | | sopstool | [aqua:ibotta/sopstool](https://github.com/ibotta/sopstool)
[asdf:elementalvoid/asdf-sopstool](https://github.com/elementalvoid/asdf-sopstool) | | | soracom | [ubi:soracom/soracom-cli](https://github.com/soracom/soracom-cli)
[asdf:gr1m0h/asdf-soracom](https://github.com/gr1m0h/asdf-soracom) | | | sourcery | [asdf:mise-plugins/mise-sourcery](https://github.com/mise-plugins/mise-sourcery) | | | spacectl | [aqua:spacelift-io/spacectl](https://github.com/spacelift-io/spacectl)
[asdf:bodgit/asdf-spacectl](https://github.com/bodgit/asdf-spacectl) | | | spago | [ubi:purescript/spago](https://github.com/purescript/spago)
[asdf:jrrom/asdf-spago](https://github.com/jrrom/asdf-spago) | | | spark | [aqua:apache/spark](https://github.com/apache/spark)
[asdf:mise-plugins/mise-spark](https://github.com/mise-plugins/mise-spark) | | | specstory | [aqua:specstoryai/getspecstory](https://github.com/specstoryai/getspecstory)
[ubi:specstoryai/getspecstory](https://github.com/specstoryai/getspecstory) | linux, macos | | spectral | [aqua:stoplightio/spectral](https://github.com/stoplightio/spectral)
[asdf:vbyrd/asdf-spectral](https://github.com/vbyrd/asdf-spectral) | | | spin | [aqua:spinnaker/spin](https://github.com/spinnaker/spin)
[asdf:pavloos/asdf-spin](https://github.com/pavloos/asdf-spin) | | | spring-boot | [asdf:mise-plugins/mise-spring-boot](https://github.com/mise-plugins/mise-spring-boot) | | | spruce | [aqua:geofffranks/spruce](https://github.com/geofffranks/spruce)
[asdf:woneill/asdf-spruce](https://github.com/woneill/asdf-spruce) | | | sqlite | [asdf:mise-plugins/mise-sqlite](https://github.com/mise-plugins/mise-sqlite) | | | sqlite3def | [aqua:sqldef/sqldef/sqlite3def](https://github.com/sqldef/sqldef) | | | sshi | [aqua:aakso/ssh-inscribe/sshi](https://github.com/aakso/ssh-inscribe) | | | sshuttle | [asdf:mise-plugins/mise-sshuttle](https://github.com/mise-plugins/mise-sshuttle) | | | sst | [ubi:sst/sst](https://github.com/sst/sst) | | | stack | [aqua:commercialhaskell/stack](https://github.com/commercialhaskell/stack)
[asdf:mise-plugins/mise-ghcup](https://github.com/mise-plugins/mise-ghcup) | | | starboard | [aqua:aquasecurity/starboard](https://github.com/aquasecurity/starboard)
[asdf:zufardhiyaulhaq/asdf-starboard](https://github.com/zufardhiyaulhaq/asdf-starboard) | | | starknet-foundry | [ubi:foundry-rs/starknet-foundry](https://github.com/foundry-rs/starknet-foundry) | | | starknet-foundry-sncast | [ubi:foundry-rs/starknet-foundry](https://github.com/foundry-rs/starknet-foundry) | | | starship | [aqua:starship/starship](https://github.com/starship/starship)
[ubi:starship/starship](https://github.com/starship/starship)
[asdf:gr1m0h/asdf-starship](https://github.com/gr1m0h/asdf-starship) | | | staticcheck | [aqua:dominikh/go-tools/staticcheck](https://github.com/dominikh/go-tools)
[asdf:pbr0ck3r/asdf-staticcheck](https://github.com/pbr0ck3r/asdf-staticcheck) | | | steampipe | [aqua:turbot/steampipe](https://github.com/turbot/steampipe)
[asdf:carnei-ro/asdf-steampipe](https://github.com/carnei-ro/asdf-steampipe) | | | step | [aqua:smallstep/cli](https://github.com/smallstep/cli)
[asdf:log2/asdf-step](https://github.com/log2/asdf-step) | | | stern | [aqua:stern/stern](https://github.com/stern/stern)
[asdf:looztra/asdf-stern](https://github.com/looztra/asdf-stern) | | | stripe | [aqua:stripe/stripe-cli](https://github.com/stripe/stripe-cli)
[asdf:offbyone/asdf-stripe](https://github.com/offbyone/asdf-stripe) | | | stylua | [aqua:JohnnyMorganz/StyLua](https://github.com/JohnnyMorganz/StyLua)
[asdf:jc00ke/asdf-stylua](https://github.com/jc00ke/asdf-stylua) | | | sui | [ubi:MystenLabs/sui](https://github.com/MystenLabs/sui)
[asdf:placeholder-soft/asdf-sui](https://github.com/placeholder-soft/asdf-sui) | | | superfile | [aqua:yorukot/superfile](https://github.com/yorukot/superfile) | | | sver | [aqua:mitoma/sver](https://github.com/mitoma/sver)
[asdf:robzr/asdf-sver](https://github.com/robzr/asdf-sver) | | | svu | [aqua:caarlos0/svu](https://github.com/caarlos0/svu)
[asdf:asdf-community/asdf-svu](https://github.com/asdf-community/asdf-svu) | | | swag | [aqua:swaggo/swag](https://github.com/swaggo/swag)
[asdf:behoof4mind/asdf-swag](https://github.com/behoof4mind/asdf-swag) | | | swift | [core:swift](https://mise.jdx.dev/lang/swift.html) | linux, macos | | swift-package-list | [asdf:mise-plugins/mise-swift-package-list](https://github.com/mise-plugins/mise-swift-package-list) | | | swiftformat | [asdf:mise-plugins/mise-swiftformat](https://github.com/mise-plugins/mise-swiftformat) | | | swiftgen | [asdf:mise-plugins/mise-swiftgen](https://github.com/mise-plugins/mise-swiftgen) | | | swiftlint | [aqua:realm/SwiftLint](https://github.com/realm/SwiftLint)
[asdf:mise-plugins/mise-swiftlint](https://github.com/mise-plugins/mise-swiftlint) | | | swiprolog | [asdf:mise-plugins/mise-swiprolog](https://github.com/mise-plugins/mise-swiprolog) | | | syft | [aqua:anchore/syft](https://github.com/anchore/syft)
[asdf:davidgp1701/asdf-syft](https://github.com/davidgp1701/asdf-syft) | | | tailpipe | [aqua:turbot/tailpipe](https://github.com/turbot/tailpipe) | | | talhelper | [aqua:budimanjojo/talhelper](https://github.com/budimanjojo/talhelper)
[asdf:bjw-s/asdf-talhelper](https://github.com/bjw-s/asdf-talhelper) | | | talosctl | [aqua:siderolabs/talos](https://github.com/siderolabs/talos)
[ubi:siderolabs/talos](https://github.com/siderolabs/talos) | | | tanka | [aqua:grafana/tanka](https://github.com/grafana/tanka)
[asdf:trotttrotttrott/asdf-tanka](https://github.com/trotttrotttrott/asdf-tanka) | | | tanzu | [asdf:mise-plugins/tanzu-plug-in-for-asdf](https://github.com/mise-plugins/tanzu-plug-in-for-asdf) | | | taplo | [aqua:tamasfe/taplo](https://github.com/tamasfe/taplo)
[ubi:tamasfe/taplo](https://github.com/tamasfe/taplo)
[cargo:taplo-cli](https://crates.io/crates/taplo-cli) | | | task | [aqua:go-task/task](https://github.com/go-task/task)
[ubi:go-task/task](https://github.com/go-task/task)
[asdf:particledecay/asdf-task](https://github.com/particledecay/asdf-task) | | | tctl | [aqua:temporalio/tctl](https://github.com/temporalio/tctl)
[asdf:eko/asdf-tctl](https://github.com/eko/asdf-tctl) | | | tekton | [aqua:tektoncd/cli](https://github.com/tektoncd/cli)
[asdf:johnhamelink/asdf-tekton-cli](https://github.com/johnhamelink/asdf-tekton-cli) | | | teleport-community | [asdf:mise-plugins/mise-teleport-community](https://github.com/mise-plugins/mise-teleport-community) | | | teleport-ent | [asdf:mise-plugins/mise-teleport-ent](https://github.com/mise-plugins/mise-teleport-ent) | | | telepresence | [aqua:telepresenceio/telepresence](https://github.com/telepresenceio/telepresence)
[asdf:pirackr/asdf-telepresence](https://github.com/pirackr/asdf-telepresence) | | | television | [aqua:alexpasmantier/television](https://github.com/alexpasmantier/television) | | | teller | [aqua:tellerops/teller](https://github.com/tellerops/teller)
[asdf:pdemagny/asdf-teller](https://github.com/pdemagny/asdf-teller) | | | temporal | [aqua:temporalio/temporal](https://github.com/temporalio/temporal)
[asdf:asdf-community/asdf-temporal](https://github.com/asdf-community/asdf-temporal) | | | terradozer | [aqua:jckuester/terradozer](https://github.com/jckuester/terradozer)
[asdf:chessmango/asdf-terradozer](https://github.com/chessmango/asdf-terradozer) | | | terraform | [aqua:hashicorp/terraform](https://github.com/hashicorp/terraform)
[asdf:mise-plugins/mise-hashicorp](https://github.com/mise-plugins/mise-hashicorp)
[vfox:mise-plugins/vfox-terraform](https://github.com/mise-plugins/vfox-terraform) | | | terraform-docs | [aqua:terraform-docs/terraform-docs](https://github.com/terraform-docs/terraform-docs)
[asdf:looztra/asdf-terraform-docs](https://github.com/looztra/asdf-terraform-docs) | | | terraform-ls | [aqua:hashicorp/terraform-ls](https://github.com/hashicorp/terraform-ls)
[asdf:mise-plugins/mise-hashicorp](https://github.com/mise-plugins/mise-hashicorp) | | | terraform-lsp | [aqua:juliosueiras/terraform-lsp](https://github.com/juliosueiras/terraform-lsp)
[asdf:bartlomiejdanek/asdf-terraform-lsp](https://github.com/bartlomiejdanek/asdf-terraform-lsp) | | | terraform-validator | [aqua:thazelart/terraform-validator](https://github.com/thazelart/terraform-validator)
[asdf:looztra/asdf-terraform-validator](https://github.com/looztra/asdf-terraform-validator) | | | terraformer | [aqua:GoogleCloudPlatform/terraformer](https://github.com/GoogleCloudPlatform/terraformer)
[asdf:gr1m0h/asdf-terraformer](https://github.com/gr1m0h/asdf-terraformer) | | | terragrunt | [aqua:gruntwork-io/terragrunt](https://github.com/gruntwork-io/terragrunt)
[asdf:gruntwork-io/asdf-terragrunt](https://github.com/gruntwork-io/asdf-terragrunt) | | | terramate | [aqua:terramate-io/terramate](https://github.com/terramate-io/terramate)
[asdf:martinlindner/asdf-terramate](https://github.com/martinlindner/asdf-terramate) | | | terrascan | [aqua:tenable/terrascan](https://github.com/tenable/terrascan)
[asdf:hpdobrica/asdf-terrascan](https://github.com/hpdobrica/asdf-terrascan) | | | tf-summarize | [aqua:dineshba/tf-summarize](https://github.com/dineshba/tf-summarize)
[asdf:adamcrews/asdf-tf-summarize](https://github.com/adamcrews/asdf-tf-summarize) | | | tfc-agent | [asdf:mise-plugins/mise-hashicorp](https://github.com/mise-plugins/mise-hashicorp) | | | tfctl | [aqua:flux-iac/tofu-controller/tfctl](https://github.com/flux-iac/tofu-controller)
[asdf:deas/asdf-tfctl](https://github.com/deas/asdf-tfctl) | | | tfenv | [aqua:tfutils/tfenv](https://github.com/tfutils/tfenv)
[asdf:carlduevel/asdf-tfenv](https://github.com/carlduevel/asdf-tfenv) | | | tflint | [aqua:terraform-linters/tflint](https://github.com/terraform-linters/tflint)
[ubi:terraform-linters/tflint](https://github.com/terraform-linters/tflint)
[asdf:skyzyx/asdf-tflint](https://github.com/skyzyx/asdf-tflint) | | | tfmigrate | [aqua:minamijoyo/tfmigrate](https://github.com/minamijoyo/tfmigrate)
[asdf:dex4er/asdf-tfmigrate](https://github.com/dex4er/asdf-tfmigrate) | | | tfnotify | [aqua:mercari/tfnotify](https://github.com/mercari/tfnotify)
[asdf:jnavarrof/asdf-tfnotify](https://github.com/jnavarrof/asdf-tfnotify) | | | tfsec | [aqua:aquasecurity/tfsec](https://github.com/aquasecurity/tfsec)
[asdf:woneill/asdf-tfsec](https://github.com/woneill/asdf-tfsec) | | | tfstate-lookup | [aqua:fujiwara/tfstate-lookup](https://github.com/fujiwara/tfstate-lookup)
[asdf:carnei-ro/asdf-tfstate-lookup](https://github.com/carnei-ro/asdf-tfstate-lookup) | | | tfswitch | [ubi:warrensbox/terraform-switcher](https://github.com/warrensbox/terraform-switcher)
[asdf:iul1an/asdf-tfswitch](https://github.com/iul1an/asdf-tfswitch) | | | tfupdate | [aqua:minamijoyo/tfupdate](https://github.com/minamijoyo/tfupdate)
[asdf:yuokada/asdf-tfupdate](https://github.com/yuokada/asdf-tfupdate) | | | thrift | [asdf:mise-plugins/mise-thrift](https://github.com/mise-plugins/mise-thrift) | | | tilt | [aqua:tilt-dev/tilt](https://github.com/tilt-dev/tilt)
[asdf:eaceaser/asdf-tilt](https://github.com/eaceaser/asdf-tilt) | | | timoni | [aqua:stefanprodan/timoni](https://github.com/stefanprodan/timoni)
[asdf:Smana/asdf-timoni](https://github.com/Smana/asdf-timoni) | | | tiny | [asdf:mise-plugins/mise-tiny](https://github.com/mise-plugins/mise-tiny) | | | tinytex | [asdf:mise-plugins/mise-tinytex](https://github.com/mise-plugins/mise-tinytex) | | | titan | [ubi:titan-data/titan](https://github.com/titan-data/titan)
[asdf:gabitchov/asdf-titan](https://github.com/gabitchov/asdf-titan) | | | tlrc | [aqua:tldr-pages/tlrc](https://github.com/tldr-pages/tlrc)
[ubi:tldr-pages/tlrc](https://github.com/tldr-pages/tlrc)
[cargo:tlrc](https://crates.io/crates/tlrc) | | | tmux | [asdf:mise-plugins/mise-tmux](https://github.com/mise-plugins/mise-tmux) | | | tokei | [aqua:XAMPPRocky/tokei](https://github.com/XAMPPRocky/tokei)
[ubi:XAMPPRocky/tokei](https://github.com/XAMPPRocky/tokei)
[asdf:gasuketsu/asdf-tokei](https://github.com/gasuketsu/asdf-tokei) | | | tomcat | [asdf:mise-plugins/mise-tomcat](https://github.com/mise-plugins/mise-tomcat) | | | tonnage | [ubi:elementalvoid/tonnage](https://github.com/elementalvoid/tonnage)
[asdf:elementalvoid/asdf-tonnage](https://github.com/elementalvoid/asdf-tonnage) | | | traefik | [ubi:traefik/traefik](https://github.com/traefik/traefik)
[asdf:Dabolus/asdf-traefik](https://github.com/Dabolus/asdf-traefik) | | | transifex | [ubi:transifex/cli](https://github.com/transifex/cli)
[asdf:ORCID/asdf-transifex](https://github.com/ORCID/asdf-transifex) | | | trdsql | [aqua:noborus/trdsql](https://github.com/noborus/trdsql)
[asdf:johnlayton/asdf-trdsql](https://github.com/johnlayton/asdf-trdsql) | | | tree-sitter | [aqua:tree-sitter/tree-sitter](https://github.com/tree-sitter/tree-sitter)
[asdf:ivanvc/asdf-tree-sitter](https://github.com/ivanvc/asdf-tree-sitter) | | | tridentctl | [aqua:NetApp/trident/tridentctl](https://github.com/NetApp/trident)
[asdf:asdf-community/asdf-tridentctl](https://github.com/asdf-community/asdf-tridentctl) | | | trivy | [aqua:aquasecurity/trivy](https://github.com/aquasecurity/trivy)
[asdf:zufardhiyaulhaq/asdf-trivy](https://github.com/zufardhiyaulhaq/asdf-trivy) | | | trunk | [npm:@trunkio/launcher](https://www.npmjs.com/package/@trunkio/launcher) | | | trzsz-ssh | [aqua:trzsz/trzsz-ssh](https://github.com/trzsz/trzsz-ssh)
[ubi:trzsz/trzsz-ssh](https://github.com/trzsz/trzsz-ssh)
[go:github.com/trzsz/trzsz-ssh/cmd/tssh](https://pkg.go.dev/github.com/trzsz/trzsz-ssh/cmd/tssh) | | | tsuru | [ubi:tsuru/tsuru-client](https://github.com/tsuru/tsuru-client)
[asdf:virtualstaticvoid/asdf-tsuru](https://github.com/virtualstaticvoid/asdf-tsuru) | | | ttyd | [aqua:tsl0922/ttyd](https://github.com/tsl0922/ttyd)
[asdf:ivanvc/asdf-ttyd](https://github.com/ivanvc/asdf-ttyd) | | | tuist | [asdf:mise-plugins/mise-tuist](https://github.com/mise-plugins/mise-tuist) | macos | | tusd | [ubi:tus/tusd](https://github.com/tus/tusd) | | | typos | [aqua:crate-ci/typos](https://github.com/crate-ci/typos)
[ubi:crate-ci/typos](https://github.com/crate-ci/typos)
[asdf:aschiavon91/asdf-typos](https://github.com/aschiavon91/asdf-typos)
[cargo:typos-cli](https://crates.io/crates/typos-cli) | | | typst | [aqua:typst/typst](https://github.com/typst/typst)
[ubi:typst/typst](https://github.com/typst/typst)
[asdf:stephane-klein/asdf-typst](https://github.com/stephane-klein/asdf-typst)
[cargo:typst-cli](https://crates.io/crates/typst-cli) | | | typstyle | [aqua:Enter-tainer/typstyle](https://github.com/Enter-tainer/typstyle)
[ubi:Enter-tainer/typstyle](https://github.com/Enter-tainer/typstyle)
[cargo:typstyle](https://crates.io/crates/typstyle) | | | uaa | [aqua:cloudfoundry/uaa-cli](https://github.com/cloudfoundry/uaa-cli)
[ubi:cloudfoundry/uaa-cli](https://github.com/cloudfoundry/uaa-cli)
[asdf:mise-plugins/tanzu-plug-in-for-asdf](https://github.com/mise-plugins/tanzu-plug-in-for-asdf) | | | ubi | [aqua:houseabsolute/ubi](https://github.com/houseabsolute/ubi)
[ubi:houseabsolute/ubi](https://github.com/houseabsolute/ubi) | | | unison | [ubi:unisonweb/unison](https://github.com/unisonweb/unison)
[asdf:susurri/asdf-unison](https://github.com/susurri/asdf-unison) | | | upctl | [aqua:UpCloudLtd/upcloud-cli](https://github.com/UpCloudLtd/upcloud-cli) | | | updatecli | [aqua:updatecli/updatecli](https://github.com/updatecli/updatecli)
[asdf:updatecli/asdf-updatecli](https://github.com/updatecli/asdf-updatecli) | | | upt | [ubi:sigoden/upt](https://github.com/sigoden/upt)
[asdf:ORCID/asdf-upt](https://github.com/ORCID/asdf-upt) | | | upx | [aqua:upx/upx](https://github.com/upx/upx)
[asdf:jimmidyson/asdf-upx](https://github.com/jimmidyson/asdf-upx) | | | usage | [aqua:jdx/usage](https://github.com/jdx/usage)
[ubi:jdx/usage](https://github.com/jdx/usage)
[asdf:jdx/mise-usage](https://github.com/jdx/mise-usage)
[cargo:usage-cli](https://crates.io/crates/usage-cli) | linux, macos | | usql | [aqua:xo/usql](https://github.com/xo/usql)
[asdf:itspngu/asdf-usql](https://github.com/itspngu/asdf-usql) | | | uv | [aqua:astral-sh/uv](https://github.com/astral-sh/uv)
[ubi:astral-sh/uv](https://github.com/astral-sh/uv)
[asdf:asdf-community/asdf-uv](https://github.com/asdf-community/asdf-uv)
[pipx:uv](https://pypi.org/project/uv) | | | v | [asdf:mise-plugins/mise-v](https://github.com/mise-plugins/mise-v) | | | vacuum | [aqua:daveshanley/vacuum](https://github.com/daveshanley/vacuum) | | | vale | [aqua:errata-ai/vale](https://github.com/errata-ai/vale)
[asdf:pdemagny/asdf-vale](https://github.com/pdemagny/asdf-vale) | | | vals | [aqua:helmfile/vals](https://github.com/helmfile/vals)
[asdf:dex4er/asdf-vals](https://github.com/dex4er/asdf-vals) | | | vault | [aqua:hashicorp/vault](https://github.com/hashicorp/vault)
[asdf:mise-plugins/mise-hashicorp](https://github.com/mise-plugins/mise-hashicorp) | | | vcluster | [aqua:loft-sh/vcluster](https://github.com/loft-sh/vcluster)
[asdf:https://gitlab.com/wt0f/asdf-vcluster](https://gitlab.com/wt0f/asdf-vcluster) | | | velad | [ubi:kubevela/velad](https://github.com/kubevela/velad)
[asdf:mise-plugins/mise-velad](https://github.com/mise-plugins/mise-velad) | | | velero | [aqua:vmware-tanzu/velero](https://github.com/vmware-tanzu/velero)
[asdf:looztra/asdf-velero](https://github.com/looztra/asdf-velero) | | | vendir | [aqua:carvel-dev/vendir](https://github.com/carvel-dev/vendir)
[asdf:vmware-tanzu/asdf-carvel](https://github.com/vmware-tanzu/asdf-carvel) | | | venom | [aqua:ovh/venom](https://github.com/ovh/venom)
[asdf:aabouzaid/asdf-venom](https://github.com/aabouzaid/asdf-venom) | | | vfox | [aqua:version-fox/vfox](https://github.com/version-fox/vfox)
[ubi:version-fox/vfox](https://github.com/version-fox/vfox) | | | vhs | [aqua:charmbracelet/vhs](https://github.com/charmbracelet/vhs)
[asdf:chessmango/asdf-vhs](https://github.com/chessmango/asdf-vhs) | | | victoria-metrics | [aqua:VictoriaMetrics/VictoriaMetrics/victoria-metrics](https://github.com/VictoriaMetrics/VictoriaMetrics) | | | viddy | [aqua:sachaos/viddy](https://github.com/sachaos/viddy)
[asdf:ryodocx/asdf-viddy](https://github.com/ryodocx/asdf-viddy) | | | vim | [asdf:mise-plugins/mise-vim](https://github.com/mise-plugins/mise-vim) | | | virtualos | [asdf:mise-plugins/mise-virtualos](https://github.com/mise-plugins/mise-virtualos) | | | vivid | [aqua:sharkdp/vivid](https://github.com/sharkdp/vivid)
[ubi:sharkdp/vivid](https://github.com/sharkdp/vivid) | | | vlang | [vfox:mise-plugins/vfox-vlang](https://github.com/mise-plugins/vfox-vlang) | | | vlt | [asdf:mise-plugins/mise-hashicorp](https://github.com/mise-plugins/mise-hashicorp) | | | vultr | [ubi:vultr/vultr-cli](https://github.com/vultr/vultr-cli)
[asdf:ikuradon/asdf-vultr-cli](https://github.com/ikuradon/asdf-vultr-cli) | | | wait-for-gh-rate-limit | [ubi:jdx/wait-for-gh-rate-limit](https://github.com/jdx/wait-for-gh-rate-limit) | | | wash | [aqua:wasmCloud/wasmCloud/wash](https://github.com/wasmCloud/wasmCloud) | | | wasi-sdk | [asdf:mise-plugins/mise-wasi-sdk](https://github.com/mise-plugins/mise-wasi-sdk) | | | wasm3 | [asdf:mise-plugins/mise-wasm3](https://github.com/mise-plugins/mise-wasm3) | | | wasm4 | [aqua:aduros/wasm4](https://github.com/aduros/wasm4)
[ubi:aduros/wasm4](https://github.com/aduros/wasm4)
[asdf:jtakakura/asdf-wasm4](https://github.com/jtakakura/asdf-wasm4) | | | wasmer | [aqua:wasmerio/wasmer](https://github.com/wasmerio/wasmer)
[asdf:tachyonicbytes/asdf-wasmer](https://github.com/tachyonicbytes/asdf-wasmer) | | | wasmtime | [aqua:bytecodealliance/wasmtime](https://github.com/bytecodealliance/wasmtime)
[asdf:tachyonicbytes/asdf-wasmtime](https://github.com/tachyonicbytes/asdf-wasmtime) | | | watchexec | [aqua:watchexec/watchexec](https://github.com/watchexec/watchexec)
[ubi:watchexec/watchexec](https://github.com/watchexec/watchexec)
[asdf:nyrst/asdf-watchexec](https://github.com/nyrst/asdf-watchexec)
[cargo:watchexec-cli](https://crates.io/crates/watchexec-cli) | | | waypoint | [aqua:hashicorp/waypoint](https://github.com/hashicorp/waypoint)
[asdf:mise-plugins/mise-hashicorp](https://github.com/mise-plugins/mise-hashicorp) | | | weave-gitops | [ubi:weaveworks/weave-gitops](https://github.com/weaveworks/weave-gitops)
[asdf:deas/asdf-weave-gitops](https://github.com/deas/asdf-weave-gitops) | | | websocat | [aqua:vi/websocat](https://github.com/vi/websocat)
[asdf:bdellegrazie/asdf-websocat](https://github.com/bdellegrazie/asdf-websocat) | | | wren | [aqua:wren-lang/wren-cli](https://github.com/wren-lang/wren-cli)
[ubi:wren-lang/wren-cli](https://github.com/wren-lang/wren-cli)
[asdf:jtakakura/asdf-wren-cli](https://github.com/jtakakura/asdf-wren-cli) | | | wrk | [asdf:mise-plugins/mise-wrk](https://github.com/mise-plugins/mise-wrk) | | | wtfutil | [aqua:wtfutil/wtf](https://github.com/wtfutil/wtf)
[asdf:NeoHsu/asdf-wtfutil](https://github.com/NeoHsu/asdf-wtfutil) | | | xc | [aqua:joerdav/xc](https://github.com/joerdav/xc)
[asdf:airtonix/asdf-xc](https://github.com/airtonix/asdf-xc) | | | xcbeautify | [aqua:cpisciotta/xcbeautify](https://github.com/cpisciotta/xcbeautify)
[ubi:cpisciotta/xcbeautify](https://github.com/cpisciotta/xcbeautify)
[asdf:mise-plugins/asdf-xcbeautify](https://github.com/mise-plugins/asdf-xcbeautify) | | | xchtmlreport | [asdf:mise-plugins/mise-xchtmlreport](https://github.com/mise-plugins/mise-xchtmlreport) | | | xcodegen | [asdf:mise-plugins/mise-xcodegen](https://github.com/mise-plugins/mise-xcodegen) | | | xcodes | [aqua:XcodesOrg/xcodes](https://github.com/XcodesOrg/xcodes) | macos | | xcresultparser | [asdf:mise-plugins/mise-xcresultparser](https://github.com/mise-plugins/mise-xcresultparser) | | | xh | [aqua:ducaale/xh](https://github.com/ducaale/xh)
[ubi:ducaale/xh](https://github.com/ducaale/xh)
[asdf:NeoHsu/asdf-xh](https://github.com/NeoHsu/asdf-xh)
[cargo:xh](https://crates.io/crates/xh) | | | yadm | [asdf:mise-plugins/mise-yadm](https://github.com/mise-plugins/mise-yadm) | | | yamlfmt | [aqua:google/yamlfmt](https://github.com/google/yamlfmt)
[ubi:google/yamlfmt](https://github.com/google/yamlfmt)
[asdf:mise-plugins/asdf-yamlfmt](https://github.com/mise-plugins/asdf-yamlfmt)
[go:github.com/google/yamlfmt/cmd/yamlfmt](https://pkg.go.dev/github.com/google/yamlfmt/cmd/yamlfmt) | | | yamllint | [pipx:yamllint](https://pypi.org/project/yamllint)
[asdf:ericcornelissen/asdf-yamllint](https://github.com/ericcornelissen/asdf-yamllint) | | | yamlscript | [aqua:yaml/yamlscript](https://github.com/yaml/yamlscript)
[ubi:yaml/yamlscript](https://github.com/yaml/yamlscript)
[asdf:mise-plugins/mise-yamlscript](https://github.com/mise-plugins/mise-yamlscript) | | | yarn | [aqua:yarnpkg/berry](https://github.com/yarnpkg/berry)
[npm:@yarnpkg/cli-dist](https://www.npmjs.com/package/@yarnpkg/cli-dist)
[asdf:mise-plugins/mise-yarn](https://github.com/mise-plugins/mise-yarn) | | | yay | [asdf:mise-plugins/mise-yay](https://github.com/mise-plugins/mise-yay) | | | yazi | [aqua:sxyazi/yazi](https://github.com/sxyazi/yazi) | | | yj | [aqua:sclevine/yj](https://github.com/sclevine/yj)
[ubi:sclevine/yj](https://github.com/sclevine/yj)
[asdf:ryodocx/asdf-yj](https://github.com/ryodocx/asdf-yj) | | | yor | [aqua:bridgecrewio/yor](https://github.com/bridgecrewio/yor)
[asdf:ordinaryexperts/asdf-yor](https://github.com/ordinaryexperts/asdf-yor) | | | youtube-dl | [aqua:ytdl-org/ytdl-nightly](https://github.com/ytdl-org/ytdl-nightly)
[ubi:ytdl-org/ytdl-nightly](https://github.com/ytdl-org/ytdl-nightly)
[asdf:mise-plugins/mise-youtube-dl](https://github.com/mise-plugins/mise-youtube-dl) | | | yq | [aqua:mikefarah/yq](https://github.com/mikefarah/yq)
[ubi:mikefarah/yq](https://github.com/mikefarah/yq)
[asdf:sudermanjr/asdf-yq](https://github.com/sudermanjr/asdf-yq)
[go:github.com/mikefarah/yq/v4](https://pkg.go.dev/github.com/mikefarah/yq/v4) | | | yt-dlp | [ubi:yt-dlp/yt-dlp](https://github.com/yt-dlp/yt-dlp)
[asdf:duhow/asdf-yt-dlp](https://github.com/duhow/asdf-yt-dlp) | | | ytt | [aqua:carvel-dev/ytt](https://github.com/carvel-dev/ytt)
[asdf:vmware-tanzu/asdf-carvel](https://github.com/vmware-tanzu/asdf-carvel) | | | zbctl | [asdf:mise-plugins/mise-zbctl](https://github.com/mise-plugins/mise-zbctl) | | | zellij | [aqua:zellij-org/zellij](https://github.com/zellij-org/zellij)
[ubi:zellij-org/zellij](https://github.com/zellij-org/zellij)
[asdf:chessmango/asdf-zellij](https://github.com/chessmango/asdf-zellij) | | | zephyr | [aqua:MaybeJustJames/zephyr](https://github.com/MaybeJustJames/zephyr)
[ubi:MaybeJustJames/zephyr](https://github.com/MaybeJustJames/zephyr)
[asdf:nsaunders/asdf-zephyr](https://github.com/nsaunders/asdf-zephyr) | | | zig | [core:zig](https://mise.jdx.dev/lang/zig.html) | | | zigmod | [ubi:nektro/zigmod](https://github.com/nektro/zigmod)
[asdf:mise-plugins/asdf-zigmod](https://github.com/mise-plugins/asdf-zigmod) | | | zizmor | [aqua:zizmorcore/zizmor](https://github.com/zizmorcore/zizmor)
[ubi:zizmorcore/zizmor](https://github.com/zizmorcore/zizmor)
[cargo:zizmor](https://crates.io/crates/zizmor) | | | zls | [aqua:zigtools/zls](https://github.com/zigtools/zls)
[ubi:zigtools/zls](https://github.com/zigtools/zls) | | | zola | [aqua:getzola/zola](https://github.com/getzola/zola)
[ubi:getzola/zola](https://github.com/getzola/zola)
[asdf:salasrod/asdf-zola](https://github.com/salasrod/asdf-zola) | | | zoxide | [aqua:ajeetdsouza/zoxide](https://github.com/ajeetdsouza/zoxide)
[ubi:ajeetdsouza/zoxide](https://github.com/ajeetdsouza/zoxide)
[asdf:nyrst/asdf-zoxide](https://github.com/nyrst/asdf-zoxide) | | | zprint | [asdf:mise-plugins/mise-zprint](https://github.com/mise-plugins/mise-zprint) | | <|firecrawl-page-5-lllmstxt|> ## Mise Configuration Guide [Skip to content](https://mise.jdx.dev/configuration.html#VPContent) On this page # Configuration [​](https://mise.jdx.dev/configuration.html\#configuration) ## `mise.toml` [​](https://mise.jdx.dev/configuration.html\#mise-toml) `mise.toml` is the config file for mise. They can be at any of the following file paths (in order of precedence, top overrides configuration of lower paths): - `mise.local.toml` \- used for local config, this should not be committed to source control - `mise.toml` - `mise/config.toml` - `.config/mise.toml` \- use this in order to group config files into a common directory - `.config/mise/config.toml` - `.config/mise/conf.d/*.toml` \- all files in this directory will be loaded in alphabetical order TIP Run [`mise cfg`](https://mise.jdx.dev/cli/config.html) to figure out what order mise is loading files on your particular setup. This is often a lot easier than figuring out mise's rules. Notes: - Paths which start with `mise` can be dotfiles, e.g.: `.mise.toml` or `.mise/config.toml`. - This list doesn't include [Configuration Environments](https://mise.jdx.dev/configuration/environments.html) which allow for environment-specific config files like `mise.development.toml`β€”set with `MISE_ENV=development`. - See [`LOCAL_CONFIG_FILENAMES` in `src/config/mod.rs`](https://github.com/jdx/mise/blob/main/src/config/mod.rs) for the actual code for these paths and their precedence. Some legacy paths are not listed here for brevity. ## Configuration Hierarchy [​](https://mise.jdx.dev/configuration.html\#configuration-hierarchy) mise uses a sophisticated hierarchical configuration system that merges settings from multiple sources. Understanding this hierarchy helps you organize your development environments effectively. ### How Configuration Merging Works [​](https://mise.jdx.dev/configuration.html\#how-configuration-merging-works) These files recurse upwards, so if you have a `~/src/work/myproj/mise.toml` file, what is defined there will override anything set in `~/src/work/mise.toml` or `~/.config/mise.toml`. The config contents are merged together. ### Configuration Resolution Process [​](https://mise.jdx.dev/configuration.html\#configuration-resolution-process) When mise needs configuration, it follows this process: 1. **Walks up the directory tree** from your current location to the root 2. **Collects all config files** it finds along the way 3. **Merges them in order** with more specific (closer to your current directory) settings overriding broader ones 4. **Applies environment-specific configs** like `mise.dev.toml` if `MISE_ENV` is set ### Visual Configuration Hierarchy [​](https://mise.jdx.dev/configuration.html\#visual-configuration-hierarchy) ``` / β”œβ”€β”€ etc/mise/config.toml # System-wide config (highest precedence) └── home/user/ β”œβ”€β”€ .config/mise/config.toml # Global user config └── work/ β”œβ”€β”€ mise.toml # Work-wide settings └── myproject/ β”œβ”€β”€ mise.local.toml # Local overrides (git-ignored) β”œβ”€β”€ mise.toml # Project config └── backend/ └── mise.toml # Service-specific config (lowest precedence) ``` ### Merge Behavior by Section [​](https://mise.jdx.dev/configuration.html\#merge-behavior-by-section) Different configuration sections merge in different ways: **Tools** ( `[tools]`): Additive with overrides toml ``` # Global: node@18, python@3.11 # Project: node@20, go@1.21 # Result: node@20, python@3.11, go@1.21 ``` **Environment Variables** ( `[env]`): Additive with overrides toml ``` # Global: NODE_ENV=development # Project: NODE_ENV=production, API_URL=localhost # Result: NODE_ENV=production, API_URL=localhost ``` **Tasks** ( `[tasks]`): Completely replaced per task toml ``` # Global: [tasks.test] = "npm test" # Project: [tasks.test] = "yarn test" # Result: "yarn test" (completely replaces global) ``` **Settings** ( `[settings]`): Additive with overrides toml ``` # Global: experimental = true # Project: jobs = 4 # Result: experimental = true, jobs = 4 ``` TIP Run `mise config` to see what files mise has loaded in order of precedence. Here is what a `mise.toml` looks like: toml ``` [env] NODE_ENV = 'production' [tools] terraform = '1.0.0' erlang = '24.0' [tasks.build] run = 'echo "running build tasks"' ``` `mise.toml` files are hierarchical. The configuration in a file in the current directory will override conflicting configuration in parent directories. For example, if `~/src/myproj/mise.toml` defines the following: toml ``` [tools] node = '20' python = '3.10' ``` And `~/src/myproj/backend/mise.toml` defines: toml ``` [tools] node = '18' ruby = '3.1' ``` Then when inside of `~/src/myproj/backend`, `node` will be `18`, `python` will be `3.10`, and `ruby` will be `3.1`. You can check the active versions with `mise ls --current`. You can also have environment specific config files like `.mise.production.toml`, see [Configuration Environments](https://mise.jdx.dev/configuration/environments.html) for more details. ### `[tools]` \- Dev tools [​](https://mise.jdx.dev/configuration.html\#tools-dev-tools) See [Tools](https://mise.jdx.dev/dev-tools/). ### `[env]` \- Arbitrary Environment Variables [​](https://mise.jdx.dev/configuration.html\#env-arbitrary-environment-variables) See [environments](https://mise.jdx.dev/environments/). ### `[tasks.*]` \- Run files or shell scripts [​](https://mise.jdx.dev/configuration.html\#tasks-run-files-or-shell-scripts) See [Tasks](https://mise.jdx.dev/tasks/). ### `[settings]` \- Mise Settings [​](https://mise.jdx.dev/configuration.html\#settings-mise-settings) See [Settings](https://mise.jdx.dev/configuration/settings.html) for the full list of settings. ### `[plugins]` \- Specify Custom Plugin Repository URLs [​](https://mise.jdx.dev/configuration.html\#plugins-specify-custom-plugin-repository-urls) Use `[plugins]` to add/modify plugin shortnames. Note that this will only modify _new_ plugin installations. Existing plugins can use any URL. toml ``` [plugins] elixir = "https://github.com/my-org/mise-elixir.git" node = "https://github.com/my-org/mise-node.git#DEADBEEF" # supports specific gitref ``` If you simply want to install a plugin from a specific URL once, it's better to use `mise plugin install plugin `. Add this section to `mise.toml` if you want to share the plugin location/revision with other developers in your project. This is similar to [`MISE_SHORTHANDS`](https://github.com/jdx/mise#mise_shorthands_fileconfigmiseshorthandstoml) but doesn't require a separate file. ### `[alias]` \- Tool version aliases [​](https://mise.jdx.dev/configuration.html\#alias-tool-version-aliases) The following makes `mise install node@my_custom_node` install node-20.x this can also be specified in a [plugin](https://mise.jdx.dev/dev-tools/aliases.html). note adding an alias will also add a symlink, in this case: sh ``` ~/.local/share/mise/installs/node/20 -> ./20.x.x ``` toml ``` my_custom_node = '20' ``` ### Minimum mise version [​](https://mise.jdx.dev/configuration.html\#minimum-mise-version) Specify the minimum supported version of mise required for the configuration file. If the configuration file specifies a version of mise that is higher than the currently installed version, mise will error out. toml ``` min_version = '2024.11.1' ``` ### `mise.toml` schema [​](https://mise.jdx.dev/configuration.html\#mise-toml-schema) - You can find the JSON schema for `mise.toml` in [schema/mise.json](https://github.com/jdx/mise/blob/main/schema/mise.json) or at [https://mise.jdx.dev/schema/mise.json](https://mise.jdx.dev/schema/mise.json). - Some editors can load it automatically to provide autocompletion and validation for when editing a `mise.toml` file ( [VSCode](https://code.visualstudio.com/docs/languages/json#_json-schemas-and-settings), [IntelliJ](https://www.jetbrains.com/help/idea/json.html#ws_json_using_schemas), [neovim](https://github.com/b0o/SchemaStore.nvim), etc.). It is also available in the [JSON schema store](https://www.schemastore.org/json/). - Note that for `included tasks` (see [task configuration](https://mise.jdx.dev/tasks/task-configuration.html), there is another schema: [https://mise.jdx.dev/schema/mise-task.json](https://mise.jdx.dev/schema/mise-task.json)) ## Global config: `~/.config/mise/config.toml` [​](https://mise.jdx.dev/configuration.html\#global-config-config-mise-config-toml) mise can be configured in `~/.config/mise/config.toml`. It's like local `mise.toml` files except that it is used for all directories. ~/.config/mise/config.toml toml ``` [tools] # global tool versions go here # you can set these with `mise use -g` node = 'lts' python = ['3.10', '3.11'] [settings] # tools can read the versions files used by other version managers # for example, .nvmrc in the case of node's nvm idiomatic_version_file_enable_tools = ['node'] # configure `mise install` to always keep the downloaded archive always_keep_download = false # deleted after install by default always_keep_install = false # deleted on failure by default # configure how frequently (in minutes) to fetch updated plugin repository changes # this is updated whenever a new runtime is installed # (note: this isn't currently implemented but there are plans to add it: https://github.com/jdx/mise/issues/128) plugin_autoupdate_last_check_duration = '1 week' # set to 0 to disable updates # config files with these prefixes will be trusted by default trusted_config_paths = [\ '~/work/my-trusted-projects',\ ] verbose = false # set to true to see full installation output, see `MISE_VERBOSE` http_timeout = "30s" # set the timeout for http requests as duration string, see `MISE_HTTP_TIMEOUT` jobs = 4 # number of plugins or runtimes to install in parallel. The default is `4`. raw = false # set to true to directly pipe plugins to stdin/stdout/stderr yes = false # set to true to automatically answer yes to all prompts not_found_auto_install = true # see MISE_NOT_FOUND_AUTO_INSTALL task_output = "prefix" # see Tasks Runner for more information paranoid = false # see MISE_PARANOID shorthands_file = '~/.config/mise/shorthands.toml' # path to the shorthands file, see `MISE_SHORTHANDS_FILE` disable_default_shorthands = false # disable the default shorthands, see `MISE_DISABLE_DEFAULT_SHORTHANDS` disable_tools = ['node'] # disable specific tools, generally used to turn off core tools env_file = '.env' # load env vars from a dotenv file, see `MISE_ENV_FILE` experimental = true # enable experimental features # configure messages displayed when entering directories with config files status = { missing_tools = "if_other_versions_installed", show_env = false, show_tools = false } # "_" is a special key for information you'd like to put into mise.toml that mise will never parse [_] foo = "bar" ``` ## System config: `/etc/mise/config.toml` [​](https://mise.jdx.dev/configuration.html\#system-config-etc-mise-config-toml) Similar to `~/.config/mise/config.toml` but for all users on the system. This is useful for setting defaults for all users. ## `.tool-versions` [​](https://mise.jdx.dev/configuration.html\#tool-versions) The `.tool-versions` file is asdf's config file and it can be used in mise just like `mise.toml`. It isn't as flexible so it's recommended to use `mise.toml` instead. It can be useful if you already have a lot of `.tool-versions` files or work on a team that uses asdf. Here is an example with all the supported syntax: text ``` node 20.0.0 # comments are allowed ruby 3 # can be fuzzy version shellcheck latest # also supports "latest" jq 1.6 erlang ref:master # compile from vcs ref go prefix:1.19 # uses the latest 1.19.x versionβ€”needed in case "1.19" is an exact match shfmt path:./shfmt # use a custom runtime node lts # use lts version of node (not supported by all plugins) node sub-2:lts # install 2 versions behind the latest lts (e.g.: 18 if lts is 20) python sub-0.1:latest # install python-3.10 if the latest is 3.11 ``` See [the asdf docs](https://asdf-vm.com/manage/configuration.html#tool-versions) for more info on this file format. ## Scopes [​](https://mise.jdx.dev/configuration.html\#scopes) Both `mise.toml` and `.tool-versions` support "scopes" which modify the behavior of the version: - `ref:` \- compile from a vcs (usually git) ref - `prefix:` \- use the latest version that matches the prefix. Useful for Go since `1.20` would only match `1.20` exactly but `prefix:1.20` will match `1.20.1` and `1.20.2` etc. - `path:` \- use a custom compiled version at the given path. One use-case is to re-use Homebrew tools (e.g.: `path:/opt/homebrew/opt/node@20`). - `sub-:` \- subtracts PARTIAL\_VERSION from ORIG\_VERSION. This can be used to express something like "2 versions behind lts" such as `sub-2:lts`. Or 1 minor version behind the latest version: `sub-0.1:latest`. ## Idiomatic version files [​](https://mise.jdx.dev/configuration.html\#idiomatic-version-files) mise supports "idiomatic version files" just like asdf. They're language-specific files like `.node-version` and `.python-version`. These are ideal for setting the runtime version of a project without forcing other developers to use a specific tool like mise or asdf. They support aliases, which means you can have an `.nvmrc` file with `lts/hydrogen` and it will work in mise and nvm. Here are some of the supported idiomatic version files: | Plugin | Idiomatic Files | | --- | --- | | crystal | `.crystal-version` | | elixir | `.exenv-version` | | go | `.go-version` | | java | `.java-version`, `.sdkmanrc` | | node | `.nvmrc`, `.node-version` | | packer | `.packer-version` | | python | `.python-version`, `.python-versions` | | ruby | `.ruby-version`, `Gemfile` | | terragrunt | `.terragrunt-version` | | terraform | `.terraform-version`, `main.tf` | | yarn | `.yvmrc` | In mise, these are enabled by default. However, in 2025.10.0 they will default to disabled (see [https://github.com/jdx/mise/discussions/4345](https://github.com/jdx/mise/discussions/4345)). - `mise settings add idiomatic_version_file_enable_tools python` for a specific tool such as Python ( [docs](https://mise.jdx.dev/configuration/settings.html#idiomatic_version_file_enable_tools)) There is a performance cost to having these when they're parsed as it's performed by the plugin in `bin/parse-version-file`. However, these are [cached](https://mise.jdx.dev/cache-behavior.html) so it's not a huge deal. You may not even notice. INFO asdf called these "legacy version files". I think this was a bad name since it implies that they shouldn't be usedβ€”which is definitely not the case IMO. I prefer the term "idiomatic" version files since they are version files not specific to asdf/mise and can be used by other tools. ( `.nvmrc` being a notable exception, which is tied to a specific tool.) ## Settings [​](https://mise.jdx.dev/configuration.html\#settings) See [Settings](https://mise.jdx.dev/configuration/settings.html) for the full list of settings. ## Tasks [​](https://mise.jdx.dev/configuration.html\#tasks) See [Tasks](https://mise.jdx.dev/tasks/) for the full list of configuration options. ## Environment variables [​](https://mise.jdx.dev/configuration.html\#environment-variables) TIP Normally environment variables in mise are used to set [settings](https://mise.jdx.dev/configuration/settings.html) so most environment variables are in that doc. The following are environment variables that are not settings. A setting in mise is generally something that can be configured either as an environment variable or set in a config file. mise can also be configured via environment variables. The following options are available: ### `MISE_DATA_DIR` [​](https://mise.jdx.dev/configuration.html\#mise-data-dir) Default: `~/.local/share/mise` or `$XDG_DATA_HOME/mise` This is the directory where mise stores plugins and tool installs. These are not supposed to be shared across machines. ### `MISE_CACHE_DIR` [​](https://mise.jdx.dev/configuration.html\#mise-cache-dir) Default (Linux): `~/.cache/mise` or `$XDG_CACHE_HOME/mise` Default (macOS): `~/Library/Caches/mise` or `$XDG_CACHE_HOME/mise` This is the directory where mise stores internal cache. This is not supposed to be shared across machines. It may be deleted at any time mise is not running. ### `MISE_TMP_DIR` [​](https://mise.jdx.dev/configuration.html\#mise-tmp-dir) Default: [`std::env::temp_dir()`](https://doc.rust-lang.org/std/env/fn.temp_dir.html) implementation in rust This is used for temporary storage such as when installing tools. ### `MISE_SYSTEM_DIR` [​](https://mise.jdx.dev/configuration.html\#mise-system-dir) Default: `/etc/mise` This is the directory where mise stores system-wide configuration. ### `MISE_GLOBAL_CONFIG_FILE` [​](https://mise.jdx.dev/configuration.html\#mise-global-config-file) Default: `$MISE_CONFIG_DIR/config.toml` (Usually ~/.config/mise/config.toml) This is the path to the config file. ### `MISE_GLOBAL_CONFIG_ROOT` [​](https://mise.jdx.dev/configuration.html\#mise-global-config-root) Default: `$HOME` This is the path which is used as `{{config_root}}` for the global config file. ### `MISE_ENV_FILE` [​](https://mise.jdx.dev/configuration.html\#mise-env-file) Set to a filename to read from env from a dotenv file. e.g.: `MISE_ENV_FILE=.env`. Uses [dotenvy](https://crates.io/crates/dotenvy) under the hood. ### `MISE_${PLUGIN}_VERSION` [​](https://mise.jdx.dev/configuration.html\#mise-plugin-version) Set the version for a runtime. For example, `MISE_NODE_VERSION=20` will use [node@20.x](mailto:node@20.x) regardless of what is set in `mise.toml`/ `.tool-versions`. ### `MISE_TRUSTED_CONFIG_PATHS` [​](https://mise.jdx.dev/configuration.html\#mise-trusted-config-paths) This is a list of paths that mise will automatically mark as trusted. They can be separated with `:`. ### `MISE_LOG_LEVEL=trace|debug|info|warn|error` [​](https://mise.jdx.dev/configuration.html\#mise-log-level-trace-debug-info-warn-error) These change the verbosity of mise. You can also use `MISE_DEBUG=1`, `MISE_TRACE=1`, and `MISE_QUIET=1` as well as `--log-level=trace|debug|info|warn|error`. ### `MISE_LOG_FILE=~/mise.log` [​](https://mise.jdx.dev/configuration.html\#mise-log-file-mise-log) Output logs to a file. ### `MISE_LOG_FILE_LEVEL=trace|debug|info|warn|error` [​](https://mise.jdx.dev/configuration.html\#mise-log-file-level-trace-debug-info-warn-error) Same as `MISE_LOG_LEVEL` but for the log _file_ output level. This is useful if you want to store the logs but not have them litter your display. ### `MISE_LOG_HTTP=1` [​](https://mise.jdx.dev/configuration.html\#mise-log-http-1) Display HTTP requests/responses in the logs. ### `MISE_QUIET=1` [​](https://mise.jdx.dev/configuration.html\#mise-quiet-1) Equivalent to `MISE_LOG_LEVEL=warn`. ### `MISE_HTTP_TIMEOUT` [​](https://mise.jdx.dev/configuration.html\#mise-http-timeout) Set the timeout for http requests in seconds. The default is `30`. ### `MISE_RAW=1` [​](https://mise.jdx.dev/configuration.html\#mise-raw-1) Set to "1" to directly pipe plugin scripts to stdin/stdout/stderr. By default stdin is disabled because when installing a bunch of plugins in parallel you won't see the prompt. Use this if a plugin accepts input or otherwise does not seem to be installing correctly. Sets `MISE_JOBS=1` because only 1 plugin script can be executed at a time. ### `MISE_FISH_AUTO_ACTIVATE=1` [​](https://mise.jdx.dev/configuration.html\#mise-fish-auto-activate-1) Configures the vendor\_conf.d script for fish shell to automatically activate. This file is automatically used in homebrew and potentially other installs to automatically activate mise without configuring. Defaults to enabled, set to "0" to disable. <|firecrawl-page-6-lllmstxt|> ## 404 Error - Not Found # Error 404 ### Object not found This object does not exist or is not publicly accessible at this URL. Check the URL of the object that you're looking for or contact the owner to enable Public access. Is this your bucket? Learn how to enable [Public Access](https://developers.cloudflare.com/r2/data-access/public-buckets/) <|firecrawl-page-7-lllmstxt|> ## Page Not Found # Error 404 ### Object not found This object does not exist or is not publicly accessible at this URL. Check the URL of the object that you're looking for or contact the owner to enable Public access. Is this your bucket? Learn how to enable [Public Access](https://developers.cloudflare.com/r2/data-access/public-buckets/) <|firecrawl-page-8-lllmstxt|> ## Pipx Backend Overview [Skip to content](https://mise.jdx.dev/dev-tools/backends/pipx.html#VPContent) On this page # pipx Backend [​](https://mise.jdx.dev/dev-tools/backends/pipx.html\#pipx-backend) pipx is a tool for running Python CLIs in isolated virtualenvs. This is necessary for Python CLIs because it prevents conflicting dependencies between CLIs or between a CLI and Python projects. In essence, this backend lets you add Python CLIs to mise. To be clear, pipx is not pip and it's not used to manage Python dependencies generally. mise is a tool manager, not a dependency manager like pip, uv, or poetry. You can, however, use mise to install said package managers. You'd want to use the pipx backend to install a CLI like "black", not a library like "NumPy" or "requests". Somewhat confusingly, the pipx backend will actually default to using [`uvx`](https://docs.astral.sh/uv/guides/tools/) (the equivalent of pipx for uv) if uv is installed. This should just mean that it installs much faster, but see below to disable or configure since occasionally tools don't work with uvx. The pipx backend supports the following sources: - PyPI - Git - GitHub - Http The code for this is inside of the mise repository at [`./src/backend/pipx.rs`](https://github.com/jdx/mise/blob/main/src/backend/pipx.rs). ## Dependencies [​](https://mise.jdx.dev/dev-tools/backends/pipx.html\#dependencies) This relies on having `pipx` installed. You can install it with or without mise. Here is how to install `pipx` with mise: sh ``` mise use -g python pip install --user pipx ``` [Other installation instructions](https://pipx.pypa.io/latest/installation/) ## Usage [​](https://mise.jdx.dev/dev-tools/backends/pipx.html\#usage) The following installs the latest version of [black](https://github.com/psf/black) and sets it as the active version on PATH: sh ``` $ mise use -g pipx:psf/black $ black --version black, 24.3.0 ``` The version will be set in `~/.config/mise/config.toml` with the following format: toml ``` [tools] "pipx:psf/black" = "latest" ``` ## Python upgrades [​](https://mise.jdx.dev/dev-tools/backends/pipx.html\#python-upgrades) If the python version used by a pipx package changes, (by mise or system python), you may need to reinstall the package. This can be done with: sh ``` mise install -f pipx:psf/black ``` Or you can reinstall all pipx packages with: sh ``` mise install -f "pipx:*" ``` mise _should_ do this automatically when using `mise up python`. ### Supported Pipx Syntax [​](https://mise.jdx.dev/dev-tools/backends/pipx.html\#supported-pipx-syntax) | Description | Usage | | --- | --- | | PyPI shorthand latest version | `pipx:black` | | PyPI shorthand for specific version | `pipx:black@24.3.0` | | GitHub shorthand for latest version | `pipx:psf/black` | | GitHub shorthand for specific version | `pipx:psf/black@24.3.0` | | Git syntax for latest version | `pipx:git+https://github.com/psf/black.git` | | Git syntax for a branch | `pipx:git+https://github.com/psf/black.git@main` | | Https with zipfile | `pipx:https://github.com/psf/black/archive/18.9b0.zip` | Other syntax may work but is unsupported and untested. ## Settings [​](https://mise.jdx.dev/dev-tools/backends/pipx.html\#settings) Set these with `mise settings set [VARIABLE] [VALUE]` or by setting the environment variable listed. ### `pipx.registry_url` - Type: `string` - Env: `MISE_PIPX_REGISTRY_URL` - Default: `https://pypi.org/pypi/{}/json` URL to use for pipx registry. This is used to fetch the latest version of a package from the pypi registry. The default is `https://pypi.org/pypi/{}/json` which is the JSON endpoint for the pypi registry. You can also use the HTML endpoint by setting this to `https://pypi.org/simple/{}/`. ### `pipx.uvx` - Type: `Bool` - Env: `MISE_PIPX_UVX` - Default: `true` If true, mise will use `uvx` instead of `pipx` if [`uv`](https://docs.astral.sh/uv/) is installed and on PATH. This makes installing CLIs _much_ faster by using `uv` as the package manager. You can install it with mise: ```sh mise use -g uv ``` ## Tool Options [​](https://mise.jdx.dev/dev-tools/backends/pipx.html\#tool-options) The following [tool-options](https://mise.jdx.dev/dev-tools/#tool-options) are available for the `pipx` backendβ€”these go in `[tools]` in `mise.toml`. ### `extras` [​](https://mise.jdx.dev/dev-tools/backends/pipx.html\#extras) Install additional components. toml ``` [tools] "pipx:harlequin" = { version = "latest", extras = "postgres,s3" } ``` ### `pipx_args` [​](https://mise.jdx.dev/dev-tools/backends/pipx.html\#pipx-args) Additional arguments to pass to `pipx` when installing the package. toml ``` [tools] "pipx:black" = { version = "latest", pipx_args = "--preinstall" } ``` ### `uvx` [​](https://mise.jdx.dev/dev-tools/backends/pipx.html\#uvx) Set to `false` to always disable uv for this tool. toml ``` [tools] "pipx:ansible" = { version = "latest", uvx = "false", pipx_args = "--include-deps" } ``` ### `uvx_args` [​](https://mise.jdx.dev/dev-tools/backends/pipx.html\#uvx-args) Additional arguments to pass to `uvx` when installing the package. toml ``` [tools] "pipx:ansible-core" = { version = "latest", uvx_args = "--with ansible" } ``` <|firecrawl-page-9-lllmstxt|> ## Mise Documentation Site [Skip to content](https://mise.jdx.dev/README.html#VPContent) Return to top # mise-docs [​](https://mise.jdx.dev/README.html\#mise-docs) This repository contains the documentation website for the runtime executor [mise](https://github.com/jdx/mise). The website is powered by [VitePress](https://vitepress.dev/). <|firecrawl-page-10-lllmstxt|> ## About mise Development Tool [Skip to content](https://mise.jdx.dev/about.html#VPContent) On this page # About [​](https://mise.jdx.dev/about.html\#about) `mise` (pronounced "meez") or "mise-en-place" is a development environment setup tool. The name refers to a French culinary phrase that roughly translates to "setup" or "put in place". The idea is that before one begins cooking, they should have all their utensils and ingredients ready to go in their place. `mise` does the same for your projects. Using its `mise.toml` config file, you'll have a consistent way to setup and interact with your projects no matter what language they're written in. Its functionality is grouped into 3 categories described below. `mise` installs and manages dev tools/runtimes like node, python, or terraform both simplifying installing these tools and allowing you to specify which version of these tools to use in different projects. `mise` supports [hundreds](https://mise.jdx.dev/plugins.html) of dev tools. `mise` manages environment variables letting you specify configuration like `AWS_ACCESS_KEY_ID` that may differ between projects. It can also be used to automatically activate a [Python virtualenv](https://mise.jdx.dev/lang/python.html) when entering projects too. `mise` is a task runner that can be used to share common tasks within a project among developers and make things like running tasks on file changes easy. ## Contact [​](https://mise.jdx.dev/about.html\#contact) `mise` was initially created by [Jeff Dickey](https://jdx.dev/). The goal is to make local development of software easy and consistent across languages. Jeff has spent many years building dev tools and thinking about the problems that `mise` addresses. This project is simply a labor of love. Jeff created it because he wanted to make your life as a developer easier. We hope you find it useful. Feedback is a massive driver for us. If you have anything positive or negative to say-even if it's just to say hi-please reach out to me either on [Twitter](https://twitter.com/jdxcode), [Mastodon](https://fosstodon.org/@jdx), [Discord](https://discord.gg/UBa7pJUN7Z), or `jdx at this domain`. <|firecrawl-page-11-lllmstxt|> ## Mise Architecture Overview [Skip to content](https://mise.jdx.dev/architecture.html#VPContent) Return to top # mise Architecture [​](https://mise.jdx.dev/architecture.html\#mise-architecture) This document provides a comprehensive overview of mise's architecture, designed primarily for contributors and those interested in understanding how mise works internally. For practical development guidance, see the [Contributing Guide](https://mise.jdx.dev/contributing.html). ## System Overview [​](https://mise.jdx.dev/architecture.html\#system-overview) mise is a Rust-based tool with a modular architecture centered around three core concepts: 1. **Tool Version Management** \- Installing and managing different versions of [development tools](https://mise.jdx.dev/dev-tools/) 2. **Environment Management** \- Setting up [environment variables](https://mise.jdx.dev/environments/) and project contexts 3. **Task Running** \- Executing [project tasks](https://mise.jdx.dev/tasks/) with dependency management These three pillars work together to provide a unified development environment management experience. ## Core Architecture Components [​](https://mise.jdx.dev/architecture.html\#core-architecture-components) ### Command Layer ( [`src/cli/`](https://github.com/jdx/mise/tree/main/src/cli/)) [​](https://mise.jdx.dev/architecture.html\#command-layer-src-cli) The CLI layer provides the user interface and delegates to core functionality: - **Modular Commands**: Each command is a separate module ( [`install.rs`](https://github.com/jdx/mise/blob/main/src/cli/install.rs), [`use.rs`](https://github.com/jdx/mise/blob/main/src/cli/use.rs), [`run.rs`](https://github.com/jdx/mise/blob/main/src/cli/run.rs), etc.) - **Argument Parsing**: Leverages [`clap`](https://clap.rs/) for robust CLI parsing and validation - **Async Command Execution**: All commands support concurrent operations - **Unified Error Handling**: Consistent error reporting across all commands **Key Commands Architecture:** - [`install`](https://mise.jdx.dev/cli/install.html) \- Tool installation coordination - [`use`](https://mise.jdx.dev/cli/use.html) \- Tool activation and configuration management - [`run`](https://mise.jdx.dev/cli/run.html) \- Task execution with dependency resolution - [`env`](https://mise.jdx.dev/cli/env.html) \- Environment variable management - [`shell`](https://mise.jdx.dev/cli/shell.html) \- Shell integration and activation ### Backend System ( [`src/backend/`](https://github.com/jdx/mise/tree/main/src/backend/)) [​](https://mise.jdx.dev/architecture.html\#backend-system-src-backend) The backend system is mise's core abstraction for tool management, implementing a trait-based architecture: rust ``` pub trait Backend: Debug + Send + Sync { async fn list_remote_versions(&self) -> Result>; async fn install_version(&self, ctx: &InstallContext, tv: &ToolVersion) -> Result<()>; async fn uninstall_version(&self, tv: &ToolVersion) -> Result<()>; // ... additional methods for lifecycle management } ``` **Backend Categories:** - **Core Backends**: Native Rust implementations for maximum performance - **Language Package Managers**: npm, pipx, cargo, gem, go modules - **Universal Installers**: ubi (GitHub releases), aqua (comprehensive package management) - **Plugin Systems**: [backend plugins](https://mise.jdx.dev/backend-plugin-development.html) (enhanced methods), [tool plugins](https://mise.jdx.dev/tool-plugin-development.html) (hook-based), [asdf plugins](https://mise.jdx.dev/asdf-legacy-plugins.html) (legacy) For guidance on implementing new backends, see the [Contributing Guide](https://mise.jdx.dev/contributing.html#adding-backends). For detailed backend system design, see [Backend Architecture](https://mise.jdx.dev/dev-tools/backend_architecture.html). ### Configuration System ( [`src/config/`](https://github.com/jdx/mise/tree/main/src/config/)) [​](https://mise.jdx.dev/architecture.html\#configuration-system-src-config) A hierarchical configuration system that merges settings from multiple config files: **Config Trait Architecture:** rust ``` pub trait ConfigFile: Debug + Send + Sync { fn get_path(&self) -> &Path; fn to_tool_request_set(&self) -> Result; fn env_entries(&self) -> Result>; fn tasks(&self) -> Vec<&Task>; // ... additional configuration methods } ``` **Concrete Implementations:** - `MiseToml` \- Primary configuration format with full feature support - `ToolVersions` \- asdf compatibility layer - `IdiomaticVersion` \- Language-specific version files ( `.node-version`, etc.) **Configuration Hierarchy:** See [Configuration Documentation](https://mise.jdx.dev/configuration.html) for the complete hierarchy and precedence rules. ### Toolset Management ( [`src/toolset/`](https://github.com/jdx/mise/tree/main/src/toolset/)) [​](https://mise.jdx.dev/architecture.html\#toolset-management-src-toolset) Coordinates tool resolution, installation, and environment setup: **Core Components:** - `Toolset` \- Immutable collection of resolved tools for a context - `ToolVersion` \- Represents a specific, resolved tool version (e.g., `node@latest` becomes `node@18.17.0`) - `ToolRequest` \- User's tool specification (e.g., `node@18`, `python@latest`) - `ToolsetBuilder` \- Constructs toolsets from configuration with dependency resolution **Tool Resolution Pipeline:** 1. **Configuration Parsing**: Extract tool requirements from config files 2. **Version Resolution**: Resolve version specifications ( `latest`, `~1.2.0`, etc.) to concrete versions 3. **Backend Selection**: Choose appropriate backend for each tool 4. **Dependency Analysis**: Resolve tool dependencies (e.g., npm requires Node.js) 5. **Installation Coordination**: Install missing tools in dependency order 6. **Environment Configuration**: Set up PATH and environment variables ### Task System ( [`src/task/`](https://github.com/jdx/mise/tree/main/src/task/)) [​](https://mise.jdx.dev/architecture.html\#task-system-src-task) Sophisticated task execution with dependency graph management: **Architecture Components:** - `Task` \- Task definition with metadata, dependencies, and execution configuration - `Deps` \- Dependency graph manager using `petgraph` for DAG operations - `TaskFileProvider` \- Discovers tasks from files and configuration - Parallel execution engine with configurable concurrency **Task Discovery:** 1. [File-based tasks](https://mise.jdx.dev/tasks/file-tasks.html) from configured directories 2. [TOML-defined tasks](https://mise.jdx.dev/tasks/toml-tasks.html) in configuration files 3. Inherited tasks from parent directories **Dependency Resolution:** - Uses directed acyclic graph (DAG) for dependency modeling - Supports multiple dependency types: `depends`, `depends_post`, `wait_for` - Parallel execution within dependency constraints - Circular dependency detection and prevention See the [Task Documentation](https://mise.jdx.dev/tasks/) for complete usage details and configuration options, and [Task Architecture](https://mise.jdx.dev/tasks/architecture.html) for detailed system design. ### Plugin System ( [`src/plugins/`](https://github.com/jdx/mise/tree/main/src/plugins/)) [​](https://mise.jdx.dev/architecture.html\#plugin-system-src-plugins) Extensibility layer supporting multiple plugin architectures: **Plugin Trait:** rust ``` pub trait Plugin: Debug + Send { fn name(&self) -> &str; fn path(&self) -> PathBuf; async fn install(&self, config: &Arc, pr: &Box) -> Result<()>; async fn update(&self, pr: &Box, gitref: Option) -> Result<()>; // ... lifecycle management methods } ``` **Plugin Types:** - **Backend Plugins**: Enhanced plugins with backend methods for managing multiple tools - **Tool Plugins**: Hook-based plugins using the traditional vfox format - **asdf Plugins**: Legacy plugins compatible with the asdf plugin ecosystem (Linux/macOS only) For complete plugin documentation, see [Plugin Guide](https://mise.jdx.dev/plugins.html). ### Shell Integration ( [`src/shell/`](https://github.com/jdx/mise/tree/main/src/shell/)) [​](https://mise.jdx.dev/architecture.html\#shell-integration-src-shell) Shell-specific code generation that abstracts commands like `mise env` and contains all shell differences in one place: **Shell Trait:** rust ``` pub trait Shell { fn activate(&self, opts: ActivateOptions) -> String; fn set_env(&self, k: &str, v: &str) -> String; fn unset_env(&self, k: &str) -> String; // ... shell-specific methods } ``` **Supported Shells:** See [`mise activate`](https://mise.jdx.dev/cli/activate.html) documentation for the complete list **Shell Abstractions:** Environment variable setting, PATH modification, command execution ### Environment Management ( [`src/env*.rs`](https://github.com/jdx/mise/tree/main/src/)) [​](https://mise.jdx.dev/architecture.html\#environment-management-src-env-rs) Helpers for working with environment variables: - `EnvDiff` \- Tracks and applies environment changes - `EnvDirective` \- Configuration-based environment variable management - `PathEnv` \- Intelligent PATH manipulation with precedence rules - Context-aware resolution with inheritance For environment setup and configuration, see [Environment Documentation](https://mise.jdx.dev/environments/). ### Caching System ( [`src/cache.rs`](https://github.com/jdx/mise/blob/main/src/cache.rs)) [​](https://mise.jdx.dev/architecture.html\#caching-system-src-cache-rs) Generic caching backed by files, using msgpack serialization with zstd compression: - `CacheManager` \- Generic caching with TTL support - Data serialized with msgpack and compressed with zstd for efficient storage - Automatic cache invalidation based on file timestamps - Per-backend cache isolation for data integrity ## Test Architecture [​](https://mise.jdx.dev/architecture.html\#test-architecture) mise employs a multi-layered testing strategy that combines different testing approaches for thorough validation across its complex feature set. **Testing Strategy Overview:** 1. **Unit Tests** \- Rust `#[test]` functions embedded in source files 2. **End-to-End (E2E) Tests** \- Bash-based integration tests with complete environment isolation 3. **Snapshot Tests** \- Using `insta` crate for complex output validation Testing Philosophy **Most tests in mise are end-to-end tests, and this is generally the preferred approach** for new functionality. E2E tests provide thorough validation of real-world usage scenarios and catch integration issues that unit tests might miss. However, **E2E tests can be challenging to run locally** due to environment dependencies and setup complexity. For development and CI purposes, it's often easier to run tests on GitHub Actions where the environment is consistent and properly configured. See the [Contributing Guide](https://mise.jdx.dev/contributing.html#testing) for detailed testing setup and guidelines. ### Unit Tests ( [`src/` modules](https://github.com/jdx/mise/tree/main/src/)) [​](https://mise.jdx.dev/architecture.html\#unit-tests-src-modules) **Structure and Characteristics:** - **Location**: Embedded within source files using `mod tests` blocks - **Test Runner**: Standard Rust `cargo test` - **Dependencies**: `pretty_assertions`, `insta`, `test-log`, `ctor` - **Coverage**: ~50+ test modules covering all major functionality rust ``` mod tests { use insta::assert_snapshot; use pretty_assertions::assert_eq; use crate::config::Config; use super::*; #[tokio::test] async fn test_hash_to_str() { let _config = Config::get().await.unwrap(); assert_eq!(hash_to_str(&"foo"), "e1b19adfb2e348a2"); } } ``` **Test Environment Setup:** - **Global Setup**: Uses `ctor::ctor` in [`src/test.rs`](https://github.com/jdx/mise/blob/main/src/test.rs) for test environment initialization - **Isolated Environment**: Each test gets a clean environment with custom `HOME`, cache, and config directories - **Async Support**: Extensive use of `#[tokio::test]` for async testing ### End-to-End Tests ( [`e2e/`](https://github.com/jdx/mise/tree/main/e2e/)) [​](https://mise.jdx.dev/architecture.html\#end-to-end-tests-e2e) **Architecture:** ``` e2e/ β”œβ”€β”€ run_test # Single test executor with environment isolation β”œβ”€β”€ run_all_tests # Test orchestrator with parallel execution β”œβ”€β”€ assert.sh # Rich assertion library β”œβ”€β”€ cli/ # CLI command tests β”‚ β”œβ”€β”€ test_use # Testing tool activation and configuration β”‚ β”œβ”€β”€ test_install # Testing tool installation β”‚ β”œβ”€β”€ test_upgrade # Testing tool upgrades β”‚ β”œβ”€β”€ test_uninstall # Testing tool removal β”‚ └── test_version # Testing version commands β”œβ”€β”€ backend/ # Backend-specific tests β”‚ β”œβ”€β”€ test_aqua # Testing aqua package manager β”‚ β”œβ”€β”€ test_asdf # Testing asdf plugin compatibility β”‚ └── test_npm # Testing npm backend β”œβ”€β”€ tasks/ # Task system tests β”‚ β”œβ”€β”€ test_task_deps # Testing task dependencies β”‚ β”œβ”€β”€ test_task_run_depends # Testing task execution order β”‚ β”œβ”€β”€ test_task_ls # Testing task listing β”‚ └── test_task_info # Testing task metadata β”œβ”€β”€ config/ # Configuration tests β”‚ β”œβ”€β”€ test_config_ls # Testing configuration listing β”‚ └── test_config_set # Testing configuration updates └── [other domains]/ # Additional test categories ``` **Environment Isolation System:** Each test runs in complete isolation with temporary directories: bash ``` setup_isolated_env() { TEST_ISOLATED_DIR="$(mktemp --tmpdir --directory "$(basename "$TEST").XXXXXX")" TEST_HOME="$TEST_ISOLATED_DIR/home" MISE_DATA_DIR="$TEST_HOME/.local/share/mise" MISE_CACHE_DIR="$TEST_HOME/.cache/mise" # ... complete environment isolation } ``` **Rich Assertion Framework:** The [`assert.sh`](https://github.com/jdx/mise/blob/main/e2e/assert.sh) provides rich test utilities: bash ``` # Basic assertions assert "command" "expected_output" assert_contains "command" "substring" assert_fail "command" "error_message" # JSON testing assert_json "command" '{"key": "value"}' assert_json_partial_object "command" "field1,field2" '{"field1": "value1"}' # File system assertions assert_directory_exists "path" assert_directory_empty "path" ``` **Test Categories:** - **CLI Tests**: Validate all command-line interfaces and argument parsing - **Backend Tests**: Test tool installation, version resolution, and backend integration - **Task Tests**: Validate task execution, dependency resolution, and parallel execution - **Configuration Tests**: Test configuration parsing, hierarchy, and environment variable handling ### Windows Testing [​](https://mise.jdx.dev/architecture.html\#windows-testing) **Windows-Specific Tests ( [`e2e-win/`](https://github.com/jdx/mise/tree/main/e2e-win/)):** - **Language**: PowerShell scripts ( `.ps1`) - **Focus**: Windows-specific functionality and cross-platform compatibility - **Coverage**: Core tools like Go, Java, Node.js, Python, Rust powershell ``` Describe "go" { It "installs go" { mise install go@latest go version | Should -Match "go version" } } ``` ### Snapshot Testing ( [`src/snapshots/`](https://github.com/jdx/mise/tree/main/src/snapshots/)) [​](https://mise.jdx.dev/architecture.html\#snapshot-testing-src-snapshots) **Implementation:** - **Crate**: Uses `insta` for snapshot testing with 11 snapshot files - **Format**: Stores expected outputs as `.snap` files - **Coverage**: Complex outputs like directory listings, configuration parsing, environment diffs rust ``` #[tokio::test] async fn test_parse() { let diff = DirenvDiff::parse(input).unwrap(); assert_snapshot!(diff); // Creates/validates snapshot } ``` ### Test Infrastructure Features [​](https://mise.jdx.dev/architecture.html\#test-infrastructure-features) **Performance and Utility Tests ( [`xtasks/test/`](https://github.com/jdx/mise/tree/main/xtasks/test/)):** - **Performance Testing**: `perf` script for benchmarking - **Coverage Testing**: `coverage` script for test coverage analysis - **E2E Runner**: `e2e` script with filtering capabilities **Test Data Management ( [`test/`](https://github.com/jdx/mise/tree/main/test/)):** ``` test/ β”œβ”€β”€ fixtures/ # Sample configuration files β”œβ”€β”€ config/ # Test-specific configs β”œβ”€β”€ data/ # Test plugins and mock data └── state/ # Test state directory ``` **Test Execution Modes:** - **Fast Tests**: Regular tests that run in CI - **Slow Tests**: Marked with `_slow` suffix, skipped unless `TEST_ALL=1` - **Tranche Support**: Tests can be split across parallel runners using `TEST_TRANCHE_COUNT` **Developer Experience Features:** - **Environment Safety**: Complete isolation prevents tests from affecting user's actual mise installation - **Parallel Execution**: E2E tests support parallel execution with proper isolation - **Rich Reporting**: Detailed test timing, environment preservation on failure for debugging - **Cross-Platform Validation**: Automated testing on multiple operating systems **Running Tests:** bash ``` # Run all unit tests cargo test # Run all E2E tests ./e2e/run_all_tests # Run specific E2E test ./e2e/run_test test_install # Run with coverage ./xtasks/test/coverage # Performance testing ./xtasks/test/perf ``` For complete development setup and testing procedures, see the [Contributing Guide](https://mise.jdx.dev/contributing.html). This robust test architecture ensures mise's reliability across its complex feature set, including tool management, environment configuration, task execution, and multi-platform support. ## Related Architecture Documentation [​](https://mise.jdx.dev/architecture.html\#related-architecture-documentation) For deeper understanding of specific subsystems: - **[Task Architecture](https://mise.jdx.dev/tasks/architecture.html)** \- Detailed design of the task dependency system, parallel execution engine, and task discovery mechanisms - **[Backend Architecture](https://mise.jdx.dev/dev-tools/backend_architecture.html)** \- In-depth guide to backend types, the trait system, and how different installation methods work <|firecrawl-page-12-lllmstxt|> ## Legacy asdf Plugins Overview [Skip to content](https://mise.jdx.dev/asdf-legacy-plugins.html#VPContent) Return to top # asdf (Legacy) Plugins [​](https://mise.jdx.dev/asdf-legacy-plugins.html\#asdf-legacy-plugins) mise maintains compatibility with the asdf plugin ecosystem through its asdf backend. These plugins are considered legacy because they have limitations compared to mise's modern plugin system. ## What are asdf (Legacy) Plugins? [​](https://mise.jdx.dev/asdf-legacy-plugins.html\#what-are-asdf-legacy-plugins) asdf plugins are shell script-based plugins that follow the asdf plugin specification. They were the original way to extend tool management in the asdf ecosystem and are now supported by mise for backward compatibility. ## Limitations [​](https://mise.jdx.dev/asdf-legacy-plugins.html\#limitations) asdf plugins have several limitations compared to mise's modern plugin system: - **Platform Support**: Only work on Linux and macOS (no Windows support) - **Performance**: Shell script execution is slower than mise's native backends - **Features**: Limited compared to modern backends like aqua, ubi, or tool/backend plugins - **Maintenance**: Harder to maintain and debug - **Security**: Less secure than sandboxed modern backends ## When to Use asdf (Legacy) Plugins [​](https://mise.jdx.dev/asdf-legacy-plugins.html\#when-to-use-asdf-legacy-plugins) Only use asdf plugins when: - The tool is not available through modern backends (aqua, ubi, etc.) - You need compatibility with existing asdf workflows - The tool requires complex shell-based installation logic that can't be handled by modern backends **For new tools, consider these alternatives first:** 1. [aqua backend](https://mise.jdx.dev/dev-tools/backends/aqua.html) \- Preferred for GitHub releases 2. [ubi backend](https://mise.jdx.dev/dev-tools/backends/ubi.html) \- Simple GitHub/GitLab releases 3. [Language package managers](https://mise.jdx.dev/dev-tools/backends/) \- npm, pipx, cargo, gem, etc. 4. [backend plugins](https://mise.jdx.dev/backend-plugin-development.html) \- Enhanced plugins with backend methods 5. [tool plugins](https://mise.jdx.dev/tool-plugin-development.html) \- Hook-based cross-platform plugins ## Installing asdf (Legacy) Plugins [​](https://mise.jdx.dev/asdf-legacy-plugins.html\#installing-asdf-legacy-plugins) ### From the Registry [​](https://mise.jdx.dev/asdf-legacy-plugins.html\#from-the-registry) Most popular asdf plugins are available through mise's registry: bash ``` # Install from registry shorthand mise use postgres@15 # This is equivalent to mise use asdf:mise-plugins/mise-postgres@15 ``` ### From Git Repository [​](https://mise.jdx.dev/asdf-legacy-plugins.html\#from-git-repository) bash ``` # Install plugin directly from repository mise plugin install # Example: PostgreSQL plugin mise plugin install postgres https://github.com/mise-plugins/mise-postgres ``` ### Manual Installation [​](https://mise.jdx.dev/asdf-legacy-plugins.html\#manual-installation) bash ``` # Add plugin manually mise plugin add postgres https://github.com/mise-plugins/mise-postgres # Install tool version mise install postgres@15.0.0 # Use the tool mise use postgres@15.0.0 ``` ## Plugin Structure [​](https://mise.jdx.dev/asdf-legacy-plugins.html\#plugin-structure) asdf plugins follow this directory structure: ``` plugin-name/ β”œβ”€β”€ bin/ β”‚ β”œβ”€β”€ list-all # List all available versions β”‚ β”œβ”€β”€ download # Download source code/binary β”‚ β”œβ”€β”€ install # Install the tool β”‚ β”œβ”€β”€ latest-stable # Get latest stable version [optional] β”‚ β”œβ”€β”€ help.overview # Plugin description [optional] β”‚ β”œβ”€β”€ help.deps # Plugin dependencies [optional] β”‚ β”œβ”€β”€ help.config # Plugin configuration [optional] β”‚ β”œβ”€β”€ help.links # Plugin links [optional] β”‚ β”œβ”€β”€ list-legacy-filenames # Legacy version files [optional] β”‚ β”œβ”€β”€ parse-legacy-file # Parse legacy version files [optional] β”‚ β”œβ”€β”€ post-plugin-add # Post plugin addition hook [optional] β”‚ β”œβ”€β”€ post-plugin-update # Post plugin update hook [optional] β”‚ β”œβ”€β”€ pre-plugin-remove # Pre plugin removal hook [optional] β”‚ └── exec-env # Set execution environment [optional] β”œβ”€β”€ lib/ # Shared library code [optional] └── README.md ``` ## Required Scripts [​](https://mise.jdx.dev/asdf-legacy-plugins.html\#required-scripts) ### bin/list-all [​](https://mise.jdx.dev/asdf-legacy-plugins.html\#bin-list-all) Lists all available versions of the tool: bash ``` #!/usr/bin/env bash # List all available versions curl -s https://api.github.com/repos/owner/repo/releases | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/' | sort -V ``` ### bin/download [​](https://mise.jdx.dev/asdf-legacy-plugins.html\#bin-download) Downloads the tool source/binary: bash ``` #!/usr/bin/env bash set -e # Input variables from mise # ASDF_INSTALL_TYPE (version or ref) # ASDF_INSTALL_VERSION (version number or git ref) # ASDF_INSTALL_PATH (where to install) # ASDF_DOWNLOAD_PATH (where to download) version="$ASDF_INSTALL_VERSION" download_path="$ASDF_DOWNLOAD_PATH" # Download logic here curl -Lo "$download_path/archive.tar.gz" \ "https://github.com/owner/repo/archive/v${version}.tar.gz" ``` ### bin/install [​](https://mise.jdx.dev/asdf-legacy-plugins.html\#bin-install) Installs the tool: bash ``` #!/usr/bin/env bash set -e # Input variables from mise # ASDF_INSTALL_TYPE (version or ref) # ASDF_INSTALL_VERSION (version number or git ref) # ASDF_INSTALL_PATH (where to install) # ASDF_DOWNLOAD_PATH (where source is downloaded) install_path="$ASDF_INSTALL_PATH" download_path="$ASDF_DOWNLOAD_PATH" # Extract and install cd "$download_path" tar -xzf archive.tar.gz --strip-components=1 make install PREFIX="$install_path" ``` ## Optional Scripts [​](https://mise.jdx.dev/asdf-legacy-plugins.html\#optional-scripts) ### bin/exec-env [​](https://mise.jdx.dev/asdf-legacy-plugins.html\#bin-exec-env) Set environment variables when executing tools: bash ``` #!/usr/bin/env bash # Set environment variables export TOOL_HOME="$ASDF_INSTALL_PATH" export PATH="$ASDF_INSTALL_PATH/bin:$PATH" ``` ### bin/latest-stable [​](https://mise.jdx.dev/asdf-legacy-plugins.html\#bin-latest-stable) Get the latest stable version: bash ``` #!/usr/bin/env bash curl -s https://api.github.com/repos/owner/repo/releases/latest | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/' ``` ### bin/list-legacy-filenames [​](https://mise.jdx.dev/asdf-legacy-plugins.html\#bin-list-legacy-filenames) List legacy version file names: bash ``` #!/usr/bin/env bash echo ".tool-version" echo ".tool-versions" ``` ### bin/parse-legacy-file [​](https://mise.jdx.dev/asdf-legacy-plugins.html\#bin-parse-legacy-file) Parse legacy version files: bash ``` #!/usr/bin/env bash cat "$1" | head -n 1 ``` ## Environment Variables [​](https://mise.jdx.dev/asdf-legacy-plugins.html\#environment-variables) asdf plugins have access to these environment variables: - `ASDF_INSTALL_TYPE` \- `version` or `ref` - `ASDF_INSTALL_VERSION` \- Version number or git ref - `ASDF_INSTALL_PATH` \- Installation directory - `ASDF_DOWNLOAD_PATH` \- Download directory - `ASDF_PLUGIN_PATH` \- Plugin directory - `ASDF_PLUGIN_PREV_REF` \- Previous git ref (for updates) - `ASDF_PLUGIN_POST_REF` \- New git ref (for updates) - `ASDF_CMD_FILE` \- Path to executable being run ## Best Practices [​](https://mise.jdx.dev/asdf-legacy-plugins.html\#best-practices) ### Error Handling [​](https://mise.jdx.dev/asdf-legacy-plugins.html\#error-handling) bash ``` #!/usr/bin/env bash set -euo pipefail # Exit on error, undefined vars, pipe failures # Check dependencies command -v curl >/dev/null 2>&1 || { echo "Error: curl is required" >&2 exit 1 } ``` ### Cross-Platform Compatibility [​](https://mise.jdx.dev/asdf-legacy-plugins.html\#cross-platform-compatibility) bash ``` #!/usr/bin/env bash # Detect platform case "$(uname -s)" in Darwin*) platform="darwin" ;; Linux*) platform="linux" ;; *) echo "Unsupported platform" >&2; exit 1 ;; esac case "$(uname -m)" in x86_64) arch="amd64" ;; arm64) arch="arm64" ;; *) echo "Unsupported architecture" >&2; exit 1 ;; esac ``` ### Version Parsing [​](https://mise.jdx.dev/asdf-legacy-plugins.html\#version-parsing) bash ``` #!/usr/bin/env bash # Parse semantic version parse_version() { local version="$1" # Remove 'v' prefix if present version="${version#v}" echo "$version" } ``` ## Testing Plugins [​](https://mise.jdx.dev/asdf-legacy-plugins.html\#testing-plugins) ### Local Development [​](https://mise.jdx.dev/asdf-legacy-plugins.html\#local-development) bash ``` # Link plugin for development mise plugin add my-plugin /path/to/local/plugin # Test basic functionality mise list-all my-plugin mise install my-plugin@1.0.0 mise which my-plugin ``` ### Debugging [​](https://mise.jdx.dev/asdf-legacy-plugins.html\#debugging) bash ``` # Enable debug mode export MISE_DEBUG=1 # Or use --verbose flag mise install --verbose my-plugin@1.0.0 ``` ## Example Plugin [​](https://mise.jdx.dev/asdf-legacy-plugins.html\#example-plugin) Here's a minimal example for a fictional tool: bash ``` #!/usr/bin/env bash # bin/list-all curl -s "https://api.github.com/repos/example/tool/releases" | grep '"tag_name":' | sed -E 's/.*"v([^"]+)".*/\1/' | sort -V ``` bash ``` #!/usr/bin/env bash # bin/download set -e version="$ASDF_INSTALL_VERSION" platform=$(uname -s | tr '[:upper:]' '[:lower:]') arch=$(uname -m) url="https://github.com/example/tool/releases/download/v${version}/tool-${platform}-${arch}.tar.gz" curl -fSL "$url" -o "$ASDF_DOWNLOAD_PATH/tool.tar.gz" ``` bash ``` #!/usr/bin/env bash # bin/install set -e cd "$ASDF_DOWNLOAD_PATH" tar -xzf tool.tar.gz cp tool "$ASDF_INSTALL_PATH/bin/" chmod +x "$ASDF_INSTALL_PATH/bin/tool" ``` ## Migration Path [​](https://mise.jdx.dev/asdf-legacy-plugins.html\#migration-path) Consider migrating from asdf plugins to modern alternatives: 1. **Check if tool is available in [aqua registry](https://aquaproj.github.io/aqua-registry/)** 2. **Use [ubi backend](https://mise.jdx.dev/dev-tools/backends/ubi.html) for simple GitHub releases** 3. **Create a [mise plugin](https://mise.jdx.dev/tool-plugin-development.html) for complex tools** 4. **Use language-specific package managers** (npm, pipx, cargo, gem) ## Community Resources [​](https://mise.jdx.dev/asdf-legacy-plugins.html\#community-resources) - **[asdf Plugin List](https://github.com/asdf-vm/asdf-plugins)** \- Official asdf plugin registry - **[mise-plugins Organization](https://github.com/mise-plugins)** \- Community-maintained plugins - **[Plugin Template](https://github.com/asdf-vm/asdf-plugin-template)** \- Template for creating new plugins ## Security Considerations [​](https://mise.jdx.dev/asdf-legacy-plugins.html\#security-considerations) asdf plugins execute arbitrary shell scripts, which poses security risks: - **Only install plugins from trusted sources** - **Review plugin code before installation** - **Avoid plugins with complex installation scripts when possible** - **Consider using modern backends for better security** ## Next Steps [​](https://mise.jdx.dev/asdf-legacy-plugins.html\#next-steps) - [Explore modern backends](https://mise.jdx.dev/dev-tools/backends/) for better alternatives - [Learn about backend plugins](https://mise.jdx.dev/backend-plugin-development.html) for enhanced functionality - [Learn about tool plugins](https://mise.jdx.dev/tool-plugin-development.html) for cross-platform support - [Check the registry](https://mise.jdx.dev/registry.html) for available tools <|firecrawl-page-13-lllmstxt|> ## Backend Plugin Development [Skip to content](https://mise.jdx.dev/backend-plugin-development.html#VPContent) Return to top # Backend Plugin Development [​](https://mise.jdx.dev/backend-plugin-development.html\#backend-plugin-development) Backend plugins in mise use enhanced backend methods to manage multiple tools using the `plugin:tool` format. These plugins are perfect for package managers, tool families, and custom installations that need to manage multiple related tools. ## What are Backend Plugins? [​](https://mise.jdx.dev/backend-plugin-development.html\#what-are-backend-plugins) Backend plugins extend the standard vfox plugin system with enhanced backend methods. They support: - **Multiple Tools**: One plugin can manage multiple tools. For example, `vfox-npm` is the plugin which could install different types of tools like `prettier`, `eslint`, and other npm packages - **Cross-Platform Support**: Works on Windows, macOS, and Linux - **Flexible Architecture**: Modern plugin system with dedicated backend methods for enhanced functionality ## Plugin Architecture [​](https://mise.jdx.dev/backend-plugin-development.html\#plugin-architecture) Backend plugins are generally a git repository but can also be a directory (via `mise link`). They use three main backend methods implemented as individual files: - `hooks/backend_list_versions.lua` \- Lists available versions for a tool - `hooks/backend_install.lua` \- Installs a specific version of a tool - `hooks/backend_exec_env.lua` \- Sets up environment variables for a tool ## Backend Methods [​](https://mise.jdx.dev/backend-plugin-development.html\#backend-methods) ### BackendListVersions [​](https://mise.jdx.dev/backend-plugin-development.html\#backendlistversions) Lists available versions for a tool: lua ``` function PLUGIN:BackendListVersions(ctx) local tool = ctx.tool local versions = {} -- Your logic to fetch versions for the tool -- Example: query an API, parse a registry, etc. return {versions = versions} end ``` ### BackendInstall [​](https://mise.jdx.dev/backend-plugin-development.html\#backendinstall) Installs a specific version of a tool: lua ``` function PLUGIN:BackendInstall(ctx) local tool = ctx.tool local version = ctx.version local install_path = ctx.install_path -- Your logic to install the tool -- Example: download files, extract archives, etc. return {} end ``` ### BackendExecEnv [​](https://mise.jdx.dev/backend-plugin-development.html\#backendexecenv) Sets up environment variables for a tool: lua ``` function PLUGIN:BackendExecEnv(ctx) local install_path = ctx.install_path -- Your logic to set up environment variables -- Example: add bin directories to PATH return { env_vars = { {key = "PATH", value = install_path .. "/bin"} } } end ``` ## Creating a Backend Plugin [​](https://mise.jdx.dev/backend-plugin-development.html\#creating-a-backend-plugin) ### 1\. Plugin Structure [​](https://mise.jdx.dev/backend-plugin-development.html\#_1-plugin-structure) Create a directory with this structure: ``` vfox-npm/ β”œβ”€β”€ metadata.lua # Plugin metadata β”œβ”€β”€ hooks/ β”‚ β”œβ”€β”€ backend_list_versions.lua # BackendListVersions hook β”‚ β”œβ”€β”€ backend_install.lua # BackendInstall hook β”‚ └── backend_exec_env.lua # BackendExecEnv hook └── Injection.lua # Runtime injection (auto-generated) ``` ### 2\. Basic metadata.lua [​](https://mise.jdx.dev/backend-plugin-development.html\#_2-basic-metadata-lua) lua ``` PLUGIN = { name = "vfox-npm", version = "1.0.0", description = "Backend plugin for npm packages", author = "Your Name" } ``` ## Real-World Example: vfox-npm [​](https://mise.jdx.dev/backend-plugin-development.html\#real-world-example-vfox-npm) Here's the complete implementation of the vfox-npm plugin that manages npm packages: ### metadata.lua [​](https://mise.jdx.dev/backend-plugin-development.html\#metadata-lua) lua ``` PLUGIN = { name = "vfox-npm", version = "1.0.0", description = "Backend plugin for npm packages", author = "jdx" } ``` ### hooks/backend\_list\_versions.lua [​](https://mise.jdx.dev/backend-plugin-development.html\#hooks-backend-list-versions-lua) lua ``` function PLUGIN:BackendListVersions(ctx) local cmd = require("cmd") local json = require("json") local result = cmd.exec("npm view " .. ctx.tool .. " versions --json") local versions = json.decode(result) return {versions = versions} end ``` ### hooks/backend\_install.lua [​](https://mise.jdx.dev/backend-plugin-development.html\#hooks-backend-install-lua) lua ``` function PLUGIN:BackendInstall(ctx) local tool = ctx.tool local version = ctx.version local install_path = ctx.install_path -- Install the package directly using npm install local cmd = require("cmd") local npm_cmd = "npm install " .. tool .. "@" .. version .. " --no-package-lock --no-save --silent" local result = cmd.exec(npm_cmd, {cwd = install_path}) -- If we get here, the command succeeded return {} end ``` ### hooks/backend\_exec\_env.lua [​](https://mise.jdx.dev/backend-plugin-development.html\#hooks-backend-exec-env-lua) lua ``` function PLUGIN:BackendExecEnv(ctx) local file = require("file") return { env_vars = { {key = "PATH", value = file.join_path(ctx.install_path, "node_modules", ".bin")} } } end ``` ## Usage Example [​](https://mise.jdx.dev/backend-plugin-development.html\#usage-example) The plugin name doesn't have to match the repository name. The backend prefix will match whatever name the backend plugin was installed as. bash ``` # Install the plugin mise plugin install vfox-npm https://github.com/jdx/vfox-npm # List available versions mise ls-remote vfox-npm:prettier # Install a specific version mise install vfox-npm:prettier@3.0.0 # Use in a project mise use vfox-npm:prettier@latest # Execute the tool mise exec -- prettier --help ``` > **Tip**: This naming flexibility could potentially be used to have a very complex plugin backend that would behave differently based on what it was named. For example, you could install the same plugin with different names to configure different behaviors or access different tool registries. ## Context Variables [​](https://mise.jdx.dev/backend-plugin-development.html\#context-variables) Backend plugins receive context through the `ctx` parameter passed to each hook function: ### BackendListVersions Context [​](https://mise.jdx.dev/backend-plugin-development.html\#backendlistversions-context) | Variable | Description | Example | | --- | --- | --- | | `ctx.tool` | The tool name | `"prettier"` | ### BackendInstall and BackendExecEnv Context [​](https://mise.jdx.dev/backend-plugin-development.html\#backendinstall-and-backendexecenv-context) | Variable | Description | Example | | --- | --- | --- | | `ctx.tool` | The tool name | `"prettier"` | | `ctx.version` | The requested version | `"3.0.0"` | | `ctx.install_path` | Installation directory | `"/home/user/.local/share/mise/installs/vfox-npm/prettier/3.0.0"` | ## Testing Your Plugin [​](https://mise.jdx.dev/backend-plugin-development.html\#testing-your-plugin) ### Local Development [​](https://mise.jdx.dev/backend-plugin-development.html\#local-development) bash ``` # Link your plugin for development mise plugin link my-plugin /path/to/my-plugin # Test listing versions mise ls-remote my-plugin:some-tool # Test installation mise use my-plugin:some-tool@1.0.0 # Test execution mise exec -- some-tool --version ``` ### Debug Mode [​](https://mise.jdx.dev/backend-plugin-development.html\#debug-mode) Use debug mode to see detailed plugin execution: bash ``` mise --debug install my-plugin:some-tool@1.0.0 ``` ## Best Practices [​](https://mise.jdx.dev/backend-plugin-development.html\#best-practices) ### Error Handling [​](https://mise.jdx.dev/backend-plugin-development.html\#error-handling) Provide more meaningful error messages: lua ``` function PLUGIN:BackendListVersions(ctx) local tool = ctx.tool -- Validate tool name if not tool or tool == "" then error("Tool name cannot be empty") end -- Execute command with error checking local cmd = require("cmd") local result = cmd.exec("npm view " .. tool .. " versions --json 2>/dev/null") if not result or result:match("npm ERR!") then error("Failed to fetch versions for " .. tool .. ": " .. (result or "no output")) end -- Parse JSON response local json = require("json") local success, npm_versions = pcall(json.decode, result) if not success or not npm_versions then error("Failed to parse versions for " .. tool) end -- Return versions or error if none found local versions = {} if type(npm_versions) == "table" then for i = #npm_versions, 1, -1 do table.insert(versions, npm_versions[i]) end end if #versions == 0 then error("No versions found for " .. tool) end return {versions = versions} end ``` ### Regex Parsing [​](https://mise.jdx.dev/backend-plugin-development.html\#regex-parsing) Parse versions with regex: lua ``` local function parse_version(version_string) -- Remove prefixes like 'v' or 'release-' return version_string:gsub("^v", ""):gsub("^release%-", "") end ``` ### Path Handling [​](https://mise.jdx.dev/backend-plugin-development.html\#path-handling) Use cross-platform path handling: lua ``` local function join_path(...) local sep = package.config:sub(1,1) -- Get OS path separator return table.concat({...}, sep) end local bin_path = join_path(install_path, "bin") ``` ### Cross-Platform Commands [​](https://mise.jdx.dev/backend-plugin-development.html\#cross-platform-commands) Handle different operating systems: lua ``` local function create_dir(path) local cmd = RUNTIME.osType == "Windows" and "mkdir" or "mkdir -p" os.execute(cmd .. " " .. path) end ``` ## Advanced Features [​](https://mise.jdx.dev/backend-plugin-development.html\#advanced-features) ### Conditional Installation [​](https://mise.jdx.dev/backend-plugin-development.html\#conditional-installation) Different installation logic based on tool or version: lua ``` function PLUGIN:BackendInstall(ctx) local tool = ctx.tool local version = ctx.version local install_path = ctx.install_path -- Create install directory os.execute("mkdir -p " .. install_path) if tool == "special-tool" then -- Special installation logic local cmd = require("cmd") local npm_cmd = "cd " .. install_path .. " && npm install " .. tool .. "@" .. version .. " --no-package-lock --no-save --silent 2>/dev/null" local result = cmd.exec(npm_cmd) if result:match("npm ERR!") then error("Failed to install " .. tool .. "@" .. version) end else -- Default installation logic local cmd = require("cmd") local npm_cmd = "cd " .. install_path .. " && npm install " .. tool .. "@" .. version .. " --no-package-lock --no-save --silent 2>/dev/null" local result = cmd.exec(npm_cmd) if result:match("npm ERR!") then error("Failed to install " .. tool .. "@" .. version) end end return {} end ``` ### Environment Detection [​](https://mise.jdx.dev/backend-plugin-development.html\#environment-detection) vfox automatically injects runtime information into your plugin: lua ``` function PLUGIN:BackendInstall(ctx) -- Platform-specific installation using injected RUNTIME object if RUNTIME.osType == "Darwin" then -- macOS installation logic elseif RUNTIME.osType == "Linux" then -- Linux installation logic elseif RUNTIME.osType == "Windows" then -- Windows installation logic end return {} end ``` The `RUNTIME` object provides: - `RUNTIME.osType`: Operating system type (Windows, Linux, Darwin) - `RUNTIME.archType`: Architecture (amd64, arm64, etc.) - `RUNTIME.version`: vfox runtime version - `RUNTIME.pluginDirPath`: Plugin directory path ### Multiple Environment Variables [​](https://mise.jdx.dev/backend-plugin-development.html\#multiple-environment-variables) Set multiple environment variables: lua ``` function PLUGIN:BackendExecEnv(ctx) -- Add node_modules/.bin to PATH for npm-installed binaries local bin_path = ctx.install_path .. "/node_modules/.bin" return { env_vars = { {key = "PATH", value = bin_path}, {key = ctx.tool:upper() .. "_HOME", value = ctx.install_path}, {key = ctx.tool:upper() .. "_VERSION", value = ctx.version} } } end ``` ## Performance Optimization [​](https://mise.jdx.dev/backend-plugin-development.html\#performance-optimization) ### Caching [​](https://mise.jdx.dev/backend-plugin-development.html\#caching) TODO: We need caching support for [Shared Lua modules](https://mise.jdx.dev/plugin-lua-modules.html). ## Next Steps [​](https://mise.jdx.dev/backend-plugin-development.html\#next-steps) - [Learn about Tool Plugin Development](https://mise.jdx.dev/tool-plugin-development.html) - [Explore available Lua modules](https://mise.jdx.dev/plugin-lua-modules.html) - [Publishing your plugin](https://mise.jdx.dev/plugin-publishing.html) - [View the vfox-npm plugin source](https://github.com/jdx/vfox-npm) <|firecrawl-page-14-lllmstxt|> ## Cache Behavior Overview [Skip to content](https://mise.jdx.dev/cache-behavior.html#VPContent) Return to top # Cache Behavior [​](https://mise.jdx.dev/cache-behavior.html\#cache-behavior) mise makes use of caching in many places in order to be efficient. The details about how long to keep cache for should eventually all be configurable. There may be gaps in the current behavior where things are hardcoded, but I'm happy to add more settings to cover whatever config is needed. Below I explain the behavior it uses around caching. If you're seeing behavior where things don't appear to be updating, this is a good place to start. ## Plugin/Runtime Cache [​](https://mise.jdx.dev/cache-behavior.html\#plugin-runtime-cache) Each plugin has a cache that's stored in `~/$MISE_CACHE_DIR/`. It stores the list of versions available for that plugin ( `mise ls-remote `), the idiomatic filenames (see below), the list of aliases, the bin directories within each runtime installation, and the result of running `exec-env` after the runtime was installed. Remote versions are updated daily by default. The file is zlib messagepack, if you want to view it you can run the following (requires [msgpack-cli](https://github.com/msgpack/msgpack-cli)). sh ``` cat ~/$MISE_CACHE_DIR/node/remote_versions.msgpack.z | perl -e 'use Compress::Raw::Zlib;my $d=new Compress::Raw::Zlib::Inflate();my $o;undef $/;$d->inflate(<>,$o);print $o;' | msgpack-cli decode ``` Note that the caching of `exec-env` may be problematic if the script isn't simply exporting static values. The vast majority of `exec-env` scripts only export static values, but if you're working with a plugin that has a dynamic `exec-env` submit a ticket and we can try to figure out what to do. Caching `exec-env` massively improved the performance of mise since it requires calling bash every time mise is initialized. Ideally, we can keep this behavior. ## Cache auto-pruning [​](https://mise.jdx.dev/cache-behavior.html\#cache-auto-pruning) mise will automatically delete old files in its cache directory (configured with [`cache_prune_age`](https://mise.jdx.dev/configuration/settings.html#cache_prune_age)). Much of the contents are also ignored by mise if they are >24 hours old or a few days. For this reason, it's likely wasteful to store this directory in CI jobs. <|firecrawl-page-15-lllmstxt|> ## Mise CLI Activation [Skip to content](https://mise.jdx.dev/cli/activate.html#VPContent) Return to top # `mise activate` [​](https://mise.jdx.dev/cli/activate.html\#mise-activate) - **Usage**: `mise activate [FLAGS] [SHELL_TYPE]` - **Source code**: [`src/cli/activate.rs`](https://github.com/jdx/mise/blob/main/src/cli/activate.rs) Initializes mise in the current shell session This should go into your shell's rc file or login shell. Otherwise, it will only take effect in the current session. (e.g. ~/.zshrc, ~/.zprofile, ~/.zshenv, ~/.bashrc, ~/.bash\_profile, ~/.profile, ~/.config/fish/config.fish, or $PROFILE for powershell) Typically, this can be added with something like the following: ``` echo 'eval "$(mise activate zsh)"' >> ~/.zshrc ``` However, this requires that "mise" is in your PATH. If it is not, you need to specify the full path like this: ``` echo 'eval "$(/path/to/mise activate zsh)"' >> ~/.zshrc ``` Customize status output with `status` settings. ## Arguments [​](https://mise.jdx.dev/cli/activate.html\#arguments) ### `[SHELL_TYPE]` [​](https://mise.jdx.dev/cli/activate.html\#shell-type) Shell type to generate the script for **Choices:** - `bash` - `elvish` - `fish` - `nu` - `xonsh` - `zsh` - `pwsh` ## Flags [​](https://mise.jdx.dev/cli/activate.html\#flags) ### `--shims` [​](https://mise.jdx.dev/cli/activate.html\#shims) Use shims instead of modifying PATH Effectively the same as: ``` PATH="$HOME/.local/share/mise/shims:$PATH" ``` `mise activate --shims` does not support all the features of `mise activate`. See [https://mise.jdx.dev/dev-tools/shims.html#shims-vs-path](https://mise.jdx.dev/dev-tools/shims.html#shims-vs-path) for more information ### `-q --quiet` [​](https://mise.jdx.dev/cli/activate.html\#q-quiet) Suppress non-error messages ### `--no-hook-env` [​](https://mise.jdx.dev/cli/activate.html\#no-hook-env) Do not automatically call hook-env This can be helpful for debugging mise. If you run `eval "$(mise activate --no-hook-env)"`, then you can call `mise hook-env` manually which will output the env vars to stdout without actually modifying the environment. That way you can do things like `mise hook-env --trace` to get more information or just see the values that hook-env is outputting. Examples: ``` eval "$(mise activate bash)" eval "$(mise activate zsh)" mise activate fish | source execx($(mise activate xonsh)) (&mise activate pwsh) | Out-String | Invoke-Expression ``` <|firecrawl-page-16-lllmstxt|> ## Manage Version Aliases [Skip to content](https://mise.jdx.dev/cli/alias.html#VPContent) Return to top # `mise alias` [​](https://mise.jdx.dev/cli/alias.html\#mise-alias) - **Usage**: `mise alias [-p --plugin ] [--no-header] ` - **Aliases**: `a` - **Source code**: [`src/cli/alias/mod.rs`](https://github.com/jdx/mise/blob/main/src/cli/alias/mod.rs) Manage version aliases. ## Flags [​](https://mise.jdx.dev/cli/alias.html\#flags) ### `-p --plugin ` [​](https://mise.jdx.dev/cli/alias.html\#p-plugin-plugin) filter aliases by plugin ### `--no-header` [​](https://mise.jdx.dev/cli/alias.html\#no-header) Don't show table header ## Subcommands [​](https://mise.jdx.dev/cli/alias.html\#subcommands) - [`mise alias get `](https://mise.jdx.dev/cli/alias/get.html) - [`mise alias ls [--no-header] [TOOL]`](https://mise.jdx.dev/cli/alias/ls.html) - [`mise alias set …`](https://mise.jdx.dev/cli/alias/set.html) - [`mise alias unset `](https://mise.jdx.dev/cli/alias/unset.html) <|firecrawl-page-17-lllmstxt|> ## Show Plugin Alias [Skip to content](https://mise.jdx.dev/cli/alias/get.html#VPContent) Return to top # `mise alias get` [​](https://mise.jdx.dev/cli/alias/get.html\#mise-alias-get) - **Usage**: `mise alias get ` - **Source code**: [`src/cli/alias/get.rs`](https://github.com/jdx/mise/blob/main/src/cli/alias/get.rs) Show an alias for a plugin This is the contents of an alias. entry in ~/.config/mise/config.toml ## Arguments [​](https://mise.jdx.dev/cli/alias/get.html\#arguments) ### `` [​](https://mise.jdx.dev/cli/alias/get.html\#plugin) The plugin to show the alias for ### `` [​](https://mise.jdx.dev/cli/alias/get.html\#alias) The alias to show Examples: ``` $ mise alias get node lts-hydrogen 20.0.0 ``` <|firecrawl-page-18-lllmstxt|> ## List Aliases Command [Skip to content](https://mise.jdx.dev/cli/alias/ls.html#VPContent) Return to top # `mise alias ls` [​](https://mise.jdx.dev/cli/alias/ls.html\#mise-alias-ls) - **Usage**: `mise alias ls [--no-header] [TOOL]` - **Aliases**: `list` - **Source code**: [`src/cli/alias/ls.rs`](https://github.com/jdx/mise/blob/main/src/cli/alias/ls.rs) List aliases Shows the aliases that can be specified. These can come from user config or from plugins in `bin/list-aliases`. For user config, aliases are defined like the following in `~/.config/mise/config.toml`: ``` [alias.node.versions] lts = "22.0.0" ``` ## Arguments [​](https://mise.jdx.dev/cli/alias/ls.html\#arguments) ### `[TOOL]` [​](https://mise.jdx.dev/cli/alias/ls.html\#tool) Show aliases for ## Flags [​](https://mise.jdx.dev/cli/alias/ls.html\#flags) ### `--no-header` [​](https://mise.jdx.dev/cli/alias/ls.html\#no-header) Don't show table header Examples: ``` $ mise aliases node lts-jod 22 ``` <|firecrawl-page-19-lllmstxt|> ## Set Plugin Alias [Skip to content](https://mise.jdx.dev/cli/alias/set.html#VPContent) Return to top # `mise alias set` [​](https://mise.jdx.dev/cli/alias/set.html\#mise-alias-set) - **Usage**: `mise alias set …` - **Aliases**: `add`, `create` - **Source code**: [`src/cli/alias/set.rs`](https://github.com/jdx/mise/blob/main/src/cli/alias/set.rs) Add/update an alias for a plugin This modifies the contents of ~/.config/mise/config.toml ## Arguments [​](https://mise.jdx.dev/cli/alias/set.html\#arguments) ### `` [​](https://mise.jdx.dev/cli/alias/set.html\#plugin) The plugin to set the alias for ### `` [​](https://mise.jdx.dev/cli/alias/set.html\#alias) The alias to set ### `` [​](https://mise.jdx.dev/cli/alias/set.html\#value) The value to set the alias to Examples: ``` mise alias set node lts-jod 22.0.0 ``` <|firecrawl-page-20-lllmstxt|> ## Manage Backends Command [Skip to content](https://mise.jdx.dev/cli/backends.html#VPContent) Return to top # `mise backends` [​](https://mise.jdx.dev/cli/backends.html\#mise-backends) - **Usage**: `mise backends ` - **Aliases**: `b` - **Source code**: [`src/cli/backends/mod.rs`](https://github.com/jdx/mise/blob/main/src/cli/backends/mod.rs) Manage backends ## Subcommands [​](https://mise.jdx.dev/cli/backends.html\#subcommands) - [`mise backends ls`](https://mise.jdx.dev/cli/backends/ls.html) <|firecrawl-page-21-lllmstxt|> ## List Built-in Backends [Skip to content](https://mise.jdx.dev/cli/backends/ls.html#VPContent) Return to top # `mise backends ls` [​](https://mise.jdx.dev/cli/backends/ls.html\#mise-backends-ls) - **Usage**: `mise backends ls` - **Aliases**: `list` - **Source code**: [`src/cli/backends/ls.rs`](https://github.com/jdx/mise/blob/main/src/cli/backends/ls.rs) List built-in backends Examples: ``` $ mise backends ls aqua asdf cargo core dotnet gem go npm pipx spm ubi vfox ``` <|firecrawl-page-22-lllmstxt|> ## Active Runtime Bin Paths [Skip to content](https://mise.jdx.dev/cli/bin-paths.html#VPContent) Return to top # `mise bin-paths` [​](https://mise.jdx.dev/cli/bin-paths.html\#mise-bin-paths) - **Usage**: `mise bin-paths [TOOL@VERSION]…` - **Source code**: [`src/cli/bin_paths.rs`](https://github.com/jdx/mise/blob/main/src/cli/bin_paths.rs) List all the active runtime bin paths ## Arguments [​](https://mise.jdx.dev/cli/bin-paths.html\#arguments) ### `[TOOL@VERSION]…` [​](https://mise.jdx.dev/cli/bin-paths.html\#tool-version) Tool(s) to look up e.g.: ruby@3 <|firecrawl-page-23-lllmstxt|> ## Mise Cache Management [Skip to content](https://mise.jdx.dev/cli/cache.html#VPContent) Return to top # `mise cache` [​](https://mise.jdx.dev/cli/cache.html\#mise-cache) - **Usage**: `mise cache ` - **Source code**: [`src/cli/cache/mod.rs`](https://github.com/jdx/mise/blob/main/src/cli/cache/mod.rs) Manage the mise cache Run `mise cache` with no args to view the current cache directory. ## Subcommands [​](https://mise.jdx.dev/cli/cache.html\#subcommands) - [`mise cache clear [PLUGIN]…`](https://mise.jdx.dev/cli/cache/clear.html) - [`mise cache prune [--dry-run] [-v --verbose…] [PLUGIN]…`](https://mise.jdx.dev/cli/cache/prune.html) <|firecrawl-page-24-lllmstxt|> ## Clear Cache Command [Skip to content](https://mise.jdx.dev/cli/cache/clear.html#VPContent) Return to top # `mise cache clear` [​](https://mise.jdx.dev/cli/cache/clear.html\#mise-cache-clear) - **Usage**: `mise cache clear [PLUGIN]…` - **Aliases**: `c` - **Source code**: [`src/cli/cache/clear.rs`](https://github.com/jdx/mise/blob/main/src/cli/cache/clear.rs) Deletes all cache files in mise ## Arguments [​](https://mise.jdx.dev/cli/cache/clear.html\#arguments) ### `[PLUGIN]…` [​](https://mise.jdx.dev/cli/cache/clear.html\#plugin) Plugin(s) to clear cache for e.g.: node, python <|firecrawl-page-25-lllmstxt|> ## Cache Pruning Command [Skip to content](https://mise.jdx.dev/cli/cache/prune.html#VPContent) Return to top # `mise cache prune` [​](https://mise.jdx.dev/cli/cache/prune.html\#mise-cache-prune) - **Usage**: `mise cache prune [--dry-run] [-v --verbose…] [PLUGIN]…` - **Aliases**: `p` - **Source code**: [`src/cli/cache/prune.rs`](https://github.com/jdx/mise/blob/main/src/cli/cache/prune.rs) Removes stale mise cache files By default, this command will remove files that have not been accessed in 30 days. Change this with the MISE\_CACHE\_PRUNE\_AGE environment variable. ## Arguments [​](https://mise.jdx.dev/cli/cache/prune.html\#arguments) ### `[PLUGIN]…` [​](https://mise.jdx.dev/cli/cache/prune.html\#plugin) Plugin(s) to clear cache for e.g.: node, python ## Flags [​](https://mise.jdx.dev/cli/cache/prune.html\#flags) ### `--dry-run` [​](https://mise.jdx.dev/cli/cache/prune.html\#dry-run) Just show what would be pruned ### `-v --verbose…` [​](https://mise.jdx.dev/cli/cache/prune.html\#v-verbose) Show pruned files <|firecrawl-page-26-lllmstxt|> ## Shell Completion Guide [Skip to content](https://mise.jdx.dev/cli/completion.html#VPContent) Return to top # `mise completion` [​](https://mise.jdx.dev/cli/completion.html\#mise-completion) - **Usage**: `mise completion [--include-bash-completion-lib] [SHELL]` - **Source code**: [`src/cli/completion.rs`](https://github.com/jdx/mise/blob/main/src/cli/completion.rs) Generate shell completions ## Arguments [​](https://mise.jdx.dev/cli/completion.html\#arguments) ### `[SHELL]` [​](https://mise.jdx.dev/cli/completion.html\#shell) Shell type to generate completions for **Choices:** - `bash` - `fish` - `zsh` ## Flags [​](https://mise.jdx.dev/cli/completion.html\#flags) ### `--include-bash-completion-lib` [​](https://mise.jdx.dev/cli/completion.html\#include-bash-completion-lib) Include the bash completion library in the bash completion script This is required for completions to work in bash, but it is not included by default you may source it separately or enable this flag to include it in the script. Examples: ``` mise completion bash > ~/.local/share/bash-completion/completions/mise mise completion zsh > /usr/local/share/zsh/site-functions/_mise mise completion fish > ~/.config/fish/completions/mise.fish ``` <|firecrawl-page-27-lllmstxt|> ## Mise Config Management [Skip to content](https://mise.jdx.dev/cli/config.html#VPContent) Return to top # `mise config` [​](https://mise.jdx.dev/cli/config.html\#mise-config) - **Usage**: `mise config [FLAGS] ` - **Aliases**: `cfg` - **Source code**: [`src/cli/config/mod.rs`](https://github.com/jdx/mise/blob/main/src/cli/config/mod.rs) Manage config files ## Flags [​](https://mise.jdx.dev/cli/config.html\#flags) ### `--no-header` [​](https://mise.jdx.dev/cli/config.html\#no-header) Do not print table header ### `--tracked-configs` [​](https://mise.jdx.dev/cli/config.html\#tracked-configs) List all tracked config files ### `-J --json` [​](https://mise.jdx.dev/cli/config.html\#j-json) Output in JSON format ## Subcommands [​](https://mise.jdx.dev/cli/config.html\#subcommands) - [`mise config generate [-t --tool-versions ] [-o --output ]`](https://mise.jdx.dev/cli/config/generate.html) - [`mise config get [-f --file ] [KEY]`](https://mise.jdx.dev/cli/config/get.html) - [`mise config ls [FLAGS]`](https://mise.jdx.dev/cli/config/ls.html) - [`mise config set [-f --file ] [-t --type ] `](https://mise.jdx.dev/cli/config/set.html) Examples: ``` $ mise config ls Path Tools ~/.config/mise/config.toml pitchfork ~/src/mise/mise.toml actionlint, bun, cargo-binstall, cargo:cargo-edit, cargo:cargo-insta ``` <|firecrawl-page-28-lllmstxt|> ## Generate mise.toml File [Skip to content](https://mise.jdx.dev/cli/config/generate.html#VPContent) Return to top # `mise config generate` [​](https://mise.jdx.dev/cli/config/generate.html\#mise-config-generate) - **Usage**: `mise config generate [-t --tool-versions ] [-o --output ]` - **Aliases**: `g` - **Source code**: [`src/cli/config/generate.rs`](https://github.com/jdx/mise/blob/main/src/cli/config/generate.rs) \[experimental\] Generate a mise.toml file ## Flags [​](https://mise.jdx.dev/cli/config/generate.html\#flags) ### `-t --tool-versions ` [​](https://mise.jdx.dev/cli/config/generate.html\#t-tool-versions-tool-versions) Path to a .tool-versions file to import tools from ### `-o --output ` [​](https://mise.jdx.dev/cli/config/generate.html\#o-output-output) Output to file instead of stdout Examples: ``` mise cf generate > mise.toml mise cf generate --output=mise.toml ``` <|firecrawl-page-29-lllmstxt|> ## Mise Config Get Command [Skip to content](https://mise.jdx.dev/cli/config/get.html#VPContent) Return to top # `mise config get` [​](https://mise.jdx.dev/cli/config/get.html\#mise-config-get) - **Usage**: `mise config get [-f --file ] [KEY]` - **Source code**: [`src/cli/config/get.rs`](https://github.com/jdx/mise/blob/main/src/cli/config/get.rs) Display the value of a setting in a mise.toml file ## Arguments [​](https://mise.jdx.dev/cli/config/get.html\#arguments) ### `[KEY]` [​](https://mise.jdx.dev/cli/config/get.html\#key) The path of the config to display ## Flags [​](https://mise.jdx.dev/cli/config/get.html\#flags) ### `-f --file ` [​](https://mise.jdx.dev/cli/config/get.html\#f-file-file) The path to the mise.toml file to edit If not provided, the nearest mise.toml file will be used Examples: ``` $ mise toml get tools.python 3.12 ``` <|firecrawl-page-30-lllmstxt|> ## List Config Files [Skip to content](https://mise.jdx.dev/cli/config/ls.html#VPContent) Return to top # `mise config ls` [​](https://mise.jdx.dev/cli/config/ls.html\#mise-config-ls) - **Usage**: `mise config ls [FLAGS]` - **Aliases**: `list` - **Source code**: [`src/cli/config/ls.rs`](https://github.com/jdx/mise/blob/main/src/cli/config/ls.rs) List config files currently in use ## Flags [​](https://mise.jdx.dev/cli/config/ls.html\#flags) ### `--no-header` [​](https://mise.jdx.dev/cli/config/ls.html\#no-header) Do not print table header ### `--tracked-configs` [​](https://mise.jdx.dev/cli/config/ls.html\#tracked-configs) List all tracked config files ### `-J --json` [​](https://mise.jdx.dev/cli/config/ls.html\#j-json) Output in JSON format Examples: ``` $ mise config ls Path Tools ~/.config/mise/config.toml pitchfork ~/src/mise/mise.toml actionlint, bun, cargo-binstall, cargo:cargo-edit, cargo:cargo-insta ``` <|firecrawl-page-31-lllmstxt|> ## Mise Config Set Command [Skip to content](https://mise.jdx.dev/cli/config/set.html#VPContent) Return to top # `mise config set` [​](https://mise.jdx.dev/cli/config/set.html\#mise-config-set) - **Usage**: `mise config set [-f --file ] [-t --type ] ` - **Source code**: [`src/cli/config/set.rs`](https://github.com/jdx/mise/blob/main/src/cli/config/set.rs) Set the value of a setting in a mise.toml file ## Arguments [​](https://mise.jdx.dev/cli/config/set.html\#arguments) ### `` [​](https://mise.jdx.dev/cli/config/set.html\#key) The path of the config to display ### `` [​](https://mise.jdx.dev/cli/config/set.html\#value) The value to set the key to ## Flags [​](https://mise.jdx.dev/cli/config/set.html\#flags) ### `-f --file ` [​](https://mise.jdx.dev/cli/config/set.html\#f-file-file) The path to the mise.toml file to edit If not provided, the nearest mise.toml file will be used ### `-t --type ` [​](https://mise.jdx.dev/cli/config/set.html\#t-type-type) **Choices:** - `infer` - `string` - `integer` - `float` - `bool` - `list` - `set` Examples: ``` $ mise config set tools.python 3.12 $ mise config set settings.always_keep_download true $ mise config set env.TEST_ENV_VAR ABC $ mise config set settings.disable_tools --type list node,rust # Type for `settings` is inferred $ mise config set settings.jobs 4 ``` <|firecrawl-page-32-lllmstxt|> ## Deactivate Mise Command [Skip to content](https://mise.jdx.dev/cli/deactivate.html#VPContent) Return to top # `mise deactivate` [​](https://mise.jdx.dev/cli/deactivate.html\#mise-deactivate) - **Usage**: `mise deactivate` - **Source code**: [`src/cli/deactivate.rs`](https://github.com/jdx/mise/blob/main/src/cli/deactivate.rs) Disable mise for current shell session This can be used to temporarily disable mise in a shell session. Examples: ``` mise deactivate ``` <|firecrawl-page-33-lllmstxt|> ## Mise Doctor Command [Skip to content](https://mise.jdx.dev/cli/doctor.html#VPContent) Return to top # `mise doctor` [​](https://mise.jdx.dev/cli/doctor.html\#mise-doctor) - **Usage**: `mise doctor [-J --json] ` - **Aliases**: `dr` - **Source code**: [`src/cli/doctor/mod.rs`](https://github.com/jdx/mise/blob/main/src/cli/doctor/mod.rs) Check mise installation for possible problems ## Flags [​](https://mise.jdx.dev/cli/doctor.html\#flags) ### `-J --json` [​](https://mise.jdx.dev/cli/doctor.html\#j-json) ## Subcommands [​](https://mise.jdx.dev/cli/doctor.html\#subcommands) - [`mise doctor path [-f --full]`](https://mise.jdx.dev/cli/doctor/path.html) Examples: ``` $ mise doctor [WARN] plugin node is not installed ``` <|firecrawl-page-34-lllmstxt|> ## Check PATH Entries [Skip to content](https://mise.jdx.dev/cli/doctor/path.html#VPContent) Return to top # `mise doctor path` [​](https://mise.jdx.dev/cli/doctor/path.html\#mise-doctor-path) - **Usage**: `mise doctor path [-f --full]` - **Source code**: [`src/cli/doctor/path.rs`](https://github.com/jdx/mise/blob/main/src/cli/doctor/path.rs) Print the current PATH entries mise is providing ## Flags [​](https://mise.jdx.dev/cli/doctor/path.html\#flags) ### `-f --full` [​](https://mise.jdx.dev/cli/doctor/path.html\#f-full) Print all entries including those not provided by mise Examples: ``` Get the current PATH entries mise is providing $ mise path /home/user/.local/share/mise/installs/node/24.0.0/bin /home/user/.local/share/mise/installs/rust/1.90.0/bin /home/user/.local/share/mise/installs/python/3.10.0/bin ``` <|firecrawl-page-35-lllmstxt|> ## Mise En Command Guide [Skip to content](https://mise.jdx.dev/cli/en.html#VPContent) Return to top # `mise en` [​](https://mise.jdx.dev/cli/en.html\#mise-en) - **Usage**: `mise en [-s --shell ] [DIR]` - **Source code**: [`src/cli/en.rs`](https://github.com/jdx/mise/blob/main/src/cli/en.rs) \[experimental\] starts a new shell with the mise environment built from the current configuration This is an alternative to `mise activate` that allows you to explicitly start a mise session. It will have the tools and environment variables in the configs loaded. Note that changing directories will not update the mise environment. ## Arguments [​](https://mise.jdx.dev/cli/en.html\#arguments) ### `[DIR]` [​](https://mise.jdx.dev/cli/en.html\#dir) Directory to start the shell in **Default:** `.` ## Flags [​](https://mise.jdx.dev/cli/en.html\#flags) ### `-s --shell ` [​](https://mise.jdx.dev/cli/en.html\#s-shell-shell) Shell to start Defaults to $SHELL Examples: ``` $ mise en . $ node -v v20.0.0 Skip loading bashrc: $ mise en -s "bash --norc" Skip loading zshrc: $ mise en -s "zsh -f" ``` <|firecrawl-page-36-lllmstxt|> ## Mise Environment Variables [Skip to content](https://mise.jdx.dev/cli/env.html#VPContent) Return to top # `mise env` [​](https://mise.jdx.dev/cli/env.html\#mise-env) - **Usage**: `mise env [FLAGS] [TOOL@VERSION]…` - **Aliases**: `e` - **Source code**: [`src/cli/env.rs`](https://github.com/jdx/mise/blob/main/src/cli/env.rs) Exports env vars to activate mise a single time Use this if you don't want to permanently install mise. It's not necessary to use this if you have `mise activate` in your shell rc file. ## Arguments [​](https://mise.jdx.dev/cli/env.html\#arguments) ### `[TOOL@VERSION]…` [​](https://mise.jdx.dev/cli/env.html\#tool-version) Tool(s) to use ## Flags [​](https://mise.jdx.dev/cli/env.html\#flags) ### `-J --json` [​](https://mise.jdx.dev/cli/env.html\#j-json) Output in JSON format ### `--json-extended` [​](https://mise.jdx.dev/cli/env.html\#json-extended) Output in JSON format with additional information (source, tool) ### `-D --dotenv` [​](https://mise.jdx.dev/cli/env.html\#d-dotenv) Output in dotenv format ### `-s --shell ` [​](https://mise.jdx.dev/cli/env.html\#s-shell-shell) Shell type to generate environment variables for **Choices:** - `bash` - `elvish` - `fish` - `nu` - `xonsh` - `zsh` - `pwsh` Examples: ``` eval "$(mise env -s bash)" eval "$(mise env -s zsh)" mise env -s fish | source execx($(mise env -s xonsh)) ``` <|firecrawl-page-37-lllmstxt|> ## Mise Exec Command Guide [Skip to content](https://mise.jdx.dev/cli/exec.html#VPContent) Return to top # `mise exec` [​](https://mise.jdx.dev/cli/exec.html\#mise-exec) - **Usage**: `mise exec [FLAGS] [TOOL@VERSION]… [-- COMMAND]…` - **Aliases**: `x` - **Source code**: [`src/cli/exec.rs`](https://github.com/jdx/mise/blob/main/src/cli/exec.rs) Execute a command with tool(s) set use this to avoid modifying the shell session or running ad-hoc commands with mise tools set. Tools will be loaded from mise.toml, though they can be overridden with args Note that only the plugin specified will be overridden, so if a `mise.toml` file includes "node 20" but you run `mise exec python@3.11`; it will still load node@20. The "--" separates runtimes from the commands to pass along to the subprocess. ## Arguments [​](https://mise.jdx.dev/cli/exec.html\#arguments) ### `[TOOL@VERSION]…` [​](https://mise.jdx.dev/cli/exec.html\#tool-version) Tool(s) to start e.g.: node@20 python@3.10 ### `[-- COMMAND]…` [​](https://mise.jdx.dev/cli/exec.html\#command) Command string to execute (same as --command) ## Flags [​](https://mise.jdx.dev/cli/exec.html\#flags) ### `-c --command ` [​](https://mise.jdx.dev/cli/exec.html\#c-command-c) Command string to execute ### `-j --jobs ` [​](https://mise.jdx.dev/cli/exec.html\#j-jobs-jobs) Number of jobs to run in parallel \[default: 4\] ### `--raw` [​](https://mise.jdx.dev/cli/exec.html\#raw) Directly pipe stdin/stdout/stderr from plugin to user Sets --jobs=1 Examples: ``` $ mise exec node@20 -- node ./app.js # launch app.js using node-20.x $ mise x node@20 -- node ./app.js # shorter alias # Specify command as a string: $ mise exec node@20 python@3.11 --command "node -v && python -V" # Run a command in a different directory: $ mise x -C /path/to/project node@20 -- node ./app.js ``` <|firecrawl-page-38-lllmstxt|> ## Mise Format Command [Skip to content](https://mise.jdx.dev/cli/fmt.html#VPContent) Return to top # `mise fmt` [​](https://mise.jdx.dev/cli/fmt.html\#mise-fmt) - **Usage**: `mise fmt [FLAGS]` - **Source code**: [`src/cli/fmt.rs`](https://github.com/jdx/mise/blob/main/src/cli/fmt.rs) Formats mise.toml Sorts keys and cleans up whitespace in mise.toml ## Flags [​](https://mise.jdx.dev/cli/fmt.html\#flags) ### `-a --all` [​](https://mise.jdx.dev/cli/fmt.html\#a-all) Format all files from the current directory ### `-c --check` [​](https://mise.jdx.dev/cli/fmt.html\#c-check) Check if the configs are formatted, no formatting is done ### `-s --stdin` [​](https://mise.jdx.dev/cli/fmt.html\#s-stdin) Read config from stdin and write its formatted version into stdout Examples: ``` mise fmt ``` <|firecrawl-page-39-lllmstxt|> ## Mise Generate Command [Skip to content](https://mise.jdx.dev/cli/generate.html#VPContent) Return to top # `mise generate` [​](https://mise.jdx.dev/cli/generate.html\#mise-generate) - **Usage**: `mise generate ` - **Aliases**: `gen` - **Source code**: [`src/cli/generate/mod.rs`](https://github.com/jdx/mise/blob/main/src/cli/generate/mod.rs) \[experimental\] Generate files for various tools/services ## Subcommands [​](https://mise.jdx.dev/cli/generate.html\#subcommands) - [`mise generate bootstrap [FLAGS]`](https://mise.jdx.dev/cli/generate/bootstrap.html) - [`mise generate config [-t --tool-versions ] [-o --output ]`](https://mise.jdx.dev/cli/generate/config.html) - [`mise generate devcontainer [FLAGS]`](https://mise.jdx.dev/cli/generate/devcontainer.html) - [`mise generate git-pre-commit [FLAGS]`](https://mise.jdx.dev/cli/generate/git-pre-commit.html) - [`mise generate github-action [FLAGS]`](https://mise.jdx.dev/cli/generate/github-action.html) - [`mise generate task-docs [FLAGS]`](https://mise.jdx.dev/cli/generate/task-docs.html) - [`mise generate task-stubs [-m --mise-bin ] [-d --dir ]`](https://mise.jdx.dev/cli/generate/task-stubs.html) - [`mise generate tool-stub [FLAGS] `](https://mise.jdx.dev/cli/generate/tool-stub.html) <|firecrawl-page-40-lllmstxt|> ## Generate Bootstrap Script [Skip to content](https://mise.jdx.dev/cli/generate/bootstrap.html#VPContent) Return to top # `mise generate bootstrap` [​](https://mise.jdx.dev/cli/generate/bootstrap.html\#mise-generate-bootstrap) - **Usage**: `mise generate bootstrap [FLAGS]` - **Source code**: [`src/cli/generate/bootstrap.rs`](https://github.com/jdx/mise/blob/main/src/cli/generate/bootstrap.rs) \[experimental\] Generate a script to download+execute mise This is designed to be used in a project where contributors may not have mise installed. ## Flags [​](https://mise.jdx.dev/cli/generate/bootstrap.html\#flags) ### `-l --localize` [​](https://mise.jdx.dev/cli/generate/bootstrap.html\#l-localize) Sandboxes mise internal directories like MISE\_DATA\_DIR and MISE\_CACHE\_DIR into a `.mise` directory in the project This is necessary if users may use a different version of mise outside the project. ### `--localized-dir ` [​](https://mise.jdx.dev/cli/generate/bootstrap.html\#localized-dir-localized-dir) Directory to put localized data into ### `-V --version ` [​](https://mise.jdx.dev/cli/generate/bootstrap.html\#v-version-version) Specify mise version to fetch ### `-w --write ` [​](https://mise.jdx.dev/cli/generate/bootstrap.html\#w-write-write) instead of outputting the script to stdout, write to a file and make it executable Examples: ``` mise generate bootstrap >./bin/mise chmod +x ./bin/mise ./bin/mise install – automatically downloads mise to .mise if not already installed ``` <|firecrawl-page-41-lllmstxt|> ## Generate Configuration File [Skip to content](https://mise.jdx.dev/cli/generate/config.html#VPContent) Return to top # `mise generate config` [​](https://mise.jdx.dev/cli/generate/config.html\#mise-generate-config) - **Usage**: `mise generate config [-t --tool-versions ] [-o --output ]` - **Aliases**: `g` - **Source code**: [`src/cli/generate/config.rs`](https://github.com/jdx/mise/blob/main/src/cli/generate/config.rs) \[experimental\] Generate a mise.toml file ## Flags [​](https://mise.jdx.dev/cli/generate/config.html\#flags) ### `-t --tool-versions ` [​](https://mise.jdx.dev/cli/generate/config.html\#t-tool-versions-tool-versions) Path to a .tool-versions file to import tools from ### `-o --output ` [​](https://mise.jdx.dev/cli/generate/config.html\#o-output-output) Output to file instead of stdout Examples: ``` mise cf generate > mise.toml mise cf generate --output=mise.toml ``` <|firecrawl-page-42-lllmstxt|> ## Devcontainer Generation Guide [Skip to content](https://mise.jdx.dev/cli/generate/devcontainer.html#VPContent) Return to top # `mise generate devcontainer` [​](https://mise.jdx.dev/cli/generate/devcontainer.html\#mise-generate-devcontainer) - **Usage**: `mise generate devcontainer [FLAGS]` - **Source code**: [`src/cli/generate/devcontainer.rs`](https://github.com/jdx/mise/blob/main/src/cli/generate/devcontainer.rs) \[experimental\] Generate a devcontainer to execute mise ## Flags [​](https://mise.jdx.dev/cli/generate/devcontainer.html\#flags) ### `-n --name ` [​](https://mise.jdx.dev/cli/generate/devcontainer.html\#n-name-name) The name of the devcontainer ### `-i --image ` [​](https://mise.jdx.dev/cli/generate/devcontainer.html\#i-image-image) The image to use for the devcontainer ### `-m --mount-mise-data` [​](https://mise.jdx.dev/cli/generate/devcontainer.html\#m-mount-mise-data) Bind the mise-data-volume to the devcontainer ### `-w --write` [​](https://mise.jdx.dev/cli/generate/devcontainer.html\#w-write) write to .devcontainer/devcontainer.json Examples: ``` mise generate devcontainer ``` <|firecrawl-page-43-lllmstxt|> ## Generate Git Pre-Commit Hook [Skip to content](https://mise.jdx.dev/cli/generate/git-pre-commit.html#VPContent) Return to top # `mise generate git-pre-commit` [​](https://mise.jdx.dev/cli/generate/git-pre-commit.html\#mise-generate-git-pre-commit) - **Usage**: `mise generate git-pre-commit [FLAGS]` - **Aliases**: `pre-commit` - **Source code**: [`src/cli/generate/git_pre_commit.rs`](https://github.com/jdx/mise/blob/main/src/cli/generate/git_pre_commit.rs) \[experimental\] Generate a git pre-commit hook This command generates a git pre-commit hook that runs a mise task like `mise run pre-commit` when you commit changes to your repository. Staged files are passed to the task as `STAGED`. For more advanced pre-commit functionality, see mise's sister project: [https://hk.jdx.dev/](https://hk.jdx.dev/) ## Flags [​](https://mise.jdx.dev/cli/generate/git-pre-commit.html\#flags) ### `--hook ` [​](https://mise.jdx.dev/cli/generate/git-pre-commit.html\#hook-hook) Which hook to generate (saves to .git/hooks/$hook) ### `-t --task ` [​](https://mise.jdx.dev/cli/generate/git-pre-commit.html\#t-task-task) The task to run when the pre-commit hook is triggered ### `-w --write` [​](https://mise.jdx.dev/cli/generate/git-pre-commit.html\#w-write) write to .git/hooks/pre-commit and make it executable Examples: ``` mise generate git-pre-commit --write --task=pre-commit git commit -m "feat: add new feature" # runs `mise run pre-commit` ``` <|firecrawl-page-44-lllmstxt|> ## Generate GitHub Action [Skip to content](https://mise.jdx.dev/cli/generate/github-action.html#VPContent) Return to top # `mise generate github-action` [​](https://mise.jdx.dev/cli/generate/github-action.html\#mise-generate-github-action) - **Usage**: `mise generate github-action [FLAGS]` - **Source code**: [`src/cli/generate/github_action.rs`](https://github.com/jdx/mise/blob/main/src/cli/generate/github_action.rs) \[experimental\] Generate a GitHub Action workflow file This command generates a GitHub Action workflow file that runs a mise task like `mise run ci` when you push changes to your repository. ## Flags [​](https://mise.jdx.dev/cli/generate/github-action.html\#flags) ### `--name ` [​](https://mise.jdx.dev/cli/generate/github-action.html\#name-name) the name of the workflow to generate ### `-t --task ` [​](https://mise.jdx.dev/cli/generate/github-action.html\#t-task-task) The task to run when the workflow is triggered ### `-w --write` [​](https://mise.jdx.dev/cli/generate/github-action.html\#w-write) write to .github/workflows/$name.yml Examples: ``` mise generate github-action --write --task=ci git commit -m "feat: add new feature" git push # runs `mise run ci` on GitHub ``` <|firecrawl-page-45-lllmstxt|> ## Task Documentation Generator [Skip to content](https://mise.jdx.dev/cli/generate/task-docs.html#VPContent) Return to top # `mise generate task-docs` [​](https://mise.jdx.dev/cli/generate/task-docs.html\#mise-generate-task-docs) - **Usage**: `mise generate task-docs [FLAGS]` - **Source code**: [`src/cli/generate/task_docs.rs`](https://github.com/jdx/mise/blob/main/src/cli/generate/task_docs.rs) Generate documentation for tasks in a project ## Flags [​](https://mise.jdx.dev/cli/generate/task-docs.html\#flags) ### `-I --index` [​](https://mise.jdx.dev/cli/generate/task-docs.html\#i-index) write only an index of tasks, intended for use with `--multi` ### `-i --inject` [​](https://mise.jdx.dev/cli/generate/task-docs.html\#i-inject) inserts the documentation into an existing file This will look for a special comment, ``, and replace it with the generated documentation. It will replace everything between the comment and the next comment, `` so it can be run multiple times on the same file to update the documentation. ### `-m --multi` [​](https://mise.jdx.dev/cli/generate/task-docs.html\#m-multi) render each task as a separate document, requires `--output` to be a directory ### `-o --output ` [​](https://mise.jdx.dev/cli/generate/task-docs.html\#o-output-output) writes the generated docs to a file/directory ### `-r --root ` [​](https://mise.jdx.dev/cli/generate/task-docs.html\#r-root-root) root directory to search for tasks ### `-s --style