### Install and Use vfox-npm Plugin Example Source: https://raw.githubusercontent.com/tobiashochguertel/mise/feat/docs-llms-txt-intermediate/docs/public/llms-full.txt Demonstrates installing an example plugin, installing tools provided by it, and then using those tools. This is for testing purposes; use built-in support for npm. ```bash # Install the plugin mise plugin install vfox-npm https://github.com/jdx/vfox-npm # Install tools mise install vfox-npm:prettier@latest mise install vfox-npm:eslint@latest # Use them mise use vfox-npm:prettier@latest mise exec vfox-npm:prettier -- --check . ``` -------------------------------- ### Example Plugin: Install Tool Source: https://raw.githubusercontent.com/tobiashochguertel/mise/feat/docs-llms-txt-intermediate/docs/public/llms-full.txt This script extracts the downloaded tool archive and copies the executable to the installation path. It ensures the executable has execute permissions. ```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" ``` -------------------------------- ### Mise Plugin Installation from Archive Source: https://raw.githubusercontent.com/tobiashochguertel/mise/feat/docs-llms-txt-intermediate/docs/public/llms-full.txt Example of how a user can install a Mise plugin distributed as a zip archive from a URL. ```bash mise plugin install my-plugin https://github.com/username/my-plugin/releases/download/v1.2.3/my-plugin-v1.2.3.zip ``` -------------------------------- ### Initial Mise Setup Source: https://raw.githubusercontent.com/tobiashochguertel/mise/feat/docs-llms-txt-intermediate/docs/public/llms-full.txt Create the lockfile and install tools to populate it. ```sh # Create the lockfile touch mise.lock # Install tools (this will populate the lockfile) mise install ``` -------------------------------- ### Mise Plugin Installation from GitHub Source: https://raw.githubusercontent.com/tobiashochguertel/mise/feat/docs-llms-txt-intermediate/docs/public/llms-full.txt Example of how a user can install a Mise plugin directly from a GitHub repository using the 'mise plugin install' command. ```bash mise plugin install my-plugin https://github.com/username/my-plugin ``` -------------------------------- ### Example Output During Tool Installation Source: https://raw.githubusercontent.com/tobiashochguertel/mise/feat/docs-llms-txt-intermediate/docs/public/llms-full.txt Shows the expected output messages during a successful tool installation process, including download, verification, and success confirmation. ```text βœ“ Downloaded cli/cli v2.50.0 βœ“ GitHub artifact attestations verified βœ“ Tool installed successfully ``` -------------------------------- ### Symlinked Installation Example Source: https://raw.githubusercontent.com/tobiashochguertel/mise/feat/docs-llms-txt-intermediate/docs/public/llms-full.txt Demonstrates how tool installations are symlinked to the cached extracted content. This approach ensures space efficiency by sharing cached tarballs and speeds up installations through cache hits. ```bash ~/.local/share/mise/installs/http-my-tool/1.0.0 β†’ ~/.cache/mise/http-tarballs/71f774.../extracted ``` -------------------------------- ### Example of Mise node installation structure Source: https://raw.githubusercontent.com/tobiashochguertel/mise/feat/docs-llms-txt-intermediate/docs/public/llms-full.txt This example shows the directory structure created by Mise when installing a specific tool version, including symlinks for version prefixes and aliases. ```shell tree ~/.local/share/mise/installs/node 20 -> ./20.15.0 20.15 -> ./20.15.0 lts -> ./20.15.0 latest -> ./20.15.0 ``` -------------------------------- ### Tool Configuration with Post-install Command Source: https://raw.githubusercontent.com/tobiashochguertel/mise/feat/docs-llms-txt-intermediate/docs/public/llms-full.txt Example of configuring a tool with a specific version and a command to run after installation. ```toml [tools] node = { version = "22", postinstall = "corepack enable" } ``` -------------------------------- ### Install and Use GitVersion.Tool (Latest Version) Source: https://raw.githubusercontent.com/tobiashochguertel/mise/feat/docs-llms-txt-intermediate/docs/public/llms-full.txt Installs the latest version of GitVersion.Tool and sets it as the active version on PATH. It then demonstrates running the tool to get the version. ```sh $ mise use dotnet:GitVersion.Tool $ dotnet-gitversion /version ``` -------------------------------- ### Install and Use GitVersion.Tool (Specific Version) Source: https://raw.githubusercontent.com/tobiashochguertel/mise/feat/docs-llms-txt-intermediate/docs/public/llms-full.txt Installs a specific version of GitVersion.Tool and sets it as the active version on PATH. It then demonstrates running the tool to get the version. ```sh $ mise use dotnet:GitVersion.Tool@5.12.0 $ dotnet-gitversion /version ``` -------------------------------- ### Example Project Setup with Mise Preset Source: https://raw.githubusercontent.com/tobiashochguertel/mise/feat/docs-llms-txt-intermediate/docs/public/llms-full.txt Demonstrates running a Mise preset to scaffold a new project with Python and PDM, showing the output and activation instructions. ```shell cd my-project mise preset:pdm 3.10 # [preset:python] $ ~/.config/mise/tasks/preset/python # mise WARN No untrusted config files found. # mise ~/my-project/mise.toml tools: pre-commit@4.0.1 # [preset:pdm] $ ~/.config/mise/tasks/preset/pdm 3.10 # mise WARN No untrusted config files found. # mise ~/my-project/mise.toml tools: python@3.10.15 # mise ~/my-project/mise.toml tools: pdm@2.21.0 # mise creating venv with uv at: ~/my-project/.venv # Using CPython 3.10.15 interpreter at: /Users/simon/.local/share/mise/installs/python/3.10.15/bin/python # Creating virtual environment at: .venv # Activate with: source .venv/bin/activate.fish ~/my-project via 🐍 v3.10.15 (.venv) # we are in the virtual environment ^ ``` -------------------------------- ### Preinstall Hook Example Source: https://raw.githubusercontent.com/tobiashochguertel/mise/feat/docs-llms-txt-intermediate/docs/public/llms-full.txt The preinstall hook runs before any tools are installed. It does not require the `mise activate` shell hook. ```toml [hooks] preinstall = "echo 'I am about to install tools'" ``` -------------------------------- ### Postinstall Hook Example Source: https://raw.githubusercontent.com/tobiashochguertel/mise/feat/docs-llms-txt-intermediate/docs/public/llms-full.txt The postinstall hook executes after tools have been installed. It does not require the `mise activate` shell hook. ```toml [hooks] postinstall = "echo 'I just installed tools'" ``` -------------------------------- ### Lua BackendInstall Example Source: https://raw.githubusercontent.com/tobiashochguertel/mise/feat/docs-llms-txt-intermediate/docs/public/llms-full.txt Implement this function to install a specific version of a tool. Custom options can be accessed via `options["key"]` or `options.key`. ```lua function PLUGIN:BackendInstall(ctx) local tool = ctx.tool local version = ctx.version local install_path = ctx.install_path local download_path = ctx.download_path local options = ctx.options -- Your logic to install the tool -- Example: download files, extract archives, etc. -- Access custom options via options["key"] or options.key return {} end ``` -------------------------------- ### Install Tool from Forgejo Releases Source: https://raw.githubusercontent.com/tobiashochguertel/mise/feat/docs-llms-txt-intermediate/docs/public/llms-full.txt Install the latest version of a tool from Forgejo releases and add it to the active PATH. This example uses a custom API URL and specifies binary names. ```sh $ mise use -g forgejo:forgejo/runner[api_url=https://code.forgejo.org/api/v1,bin=forgejo-runner,bin=forgejo-runner] ``` -------------------------------- ### Example configuration for required variables Source: https://raw.githubusercontent.com/tobiashochguertel/mise/feat/docs-llms-txt-intermediate/docs/public/llms-full.txt Demonstrates a common setup for required variables including API keys, database connections, and feature flags. ```toml [env] # API keys (must be set in environment or mise.local.toml) STRIPE_API_KEY = { required = true } SENTRY_DSN = { required = true } # Database connection (must be set in environment or mise.local.toml) DATABASE_URL = { required = true } # Feature flags (must be explicitly configured) ENABLE_BETA_FEATURES = { required = true } ``` -------------------------------- ### Install and Execute Node.js Script Source: https://raw.githubusercontent.com/tobiashochguertel/mise/feat/docs-llms-txt-intermediate/docs/public/llms-full.txt Use `mise use` to install a tool globally and set it as the default, then use `mise exec` to run a script with that tool version. This example installs Node.js 24 and runs a script named `my-script.js`. ```shell mise use --global node@24 # install node 24 and set it as the global default mise exec -- node my-script.js # run my-script.js with node 24... ``` -------------------------------- ### Install Tool Version into Specific Path Source: https://raw.githubusercontent.com/tobiashochguertel/mise/feat/docs-llms-txt-intermediate/docs/public/llms-full.txt Installs a specified tool version into a given directory. Useful for building tools for external use. Example shows installing Node.js and verifying the version. ```bash # install node@20.0.0 into ./mynode $ mise install-into node@20.0.0 ./mynode && ./mynode/bin/node -v 20.0.0 ``` -------------------------------- ### Use Latest .NET SDK Source: https://raw.githubusercontent.com/tobiashochguertel/mise/feat/docs-llms-txt-intermediate/docs/public/llms-full.txt Installs and activates the latest available .NET SDK globally. Use this to quickly get the newest features. ```sh mise use -g dotnet@latest dotnet --version ``` -------------------------------- ### Mise Plugin Installation from Other Git Providers Source: https://raw.githubusercontent.com/tobiashochguertel/mise/feat/docs-llms-txt-intermediate/docs/public/llms-full.txt Example of installing a Mise plugin from a Git repository hosted on a provider other than GitHub, such as GitLab. ```bash mise plugin install my-plugin https://gitlab.com/username/my-plugin ``` -------------------------------- ### Tool-Level Postinstall for Node Source: https://raw.githubusercontent.com/tobiashochguertel/mise/feat/docs-llms-txt-intermediate/docs/public/llms-full.txt Individual tools can define their own postinstall scripts. This example shows a postinstall script for Node.js to install pnpm globally. ```toml [tools] node = { version = "20", postinstall = "npm install -g pnpm" } ``` -------------------------------- ### Global Mise Configuration Example Source: https://raw.githubusercontent.com/tobiashochguertel/mise/feat/docs-llms-txt-intermediate/docs/public/llms-full.txt This TOML snippet shows how to configure global tool versions, settings for installation and updates, and other operational parameters for mise. ```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/discussions/6735) 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" ``` -------------------------------- ### Install and Verify Go on Windows Source: https://raw.githubusercontent.com/tobiashochguertel/mise/feat/docs-llms-txt-intermediate/docs/public/llms-full.txt This PowerShell snippet demonstrates how to install a specific version of Go using 'mise' and then verify the installation by checking the Go version. ```powershell Describe "go" { It "installs go" { mise install go@latest go version | Should -Match "go version" } } ``` -------------------------------- ### Enter Hook with Mixed Inline Script and Task Source: https://raw.githubusercontent.com/tobiashochguertel/mise/feat/docs-llms-txt-intermediate/docs/public/llms-full.txt You can combine inline scripts with task references in arrays for hooks. This example runs an echo command and then executes a 'setup' task. ```toml [hooks] enter = ["echo 'entering project'", { task = "setup" }] ``` -------------------------------- ### Tool-Level Postinstall for Python Source: https://raw.githubusercontent.com/tobiashochguertel/mise/feat/docs-llms-txt-intermediate/docs/public/llms-full.txt Individual tools can define their own postinstall scripts. This example shows a postinstall script for Python to install pipx. ```toml [tools] python = { version = "3.12", postinstall = "pip install pipx" } ``` -------------------------------- ### Install Mise and Tools in CI Source: https://raw.githubusercontent.com/tobiashochguertel/mise/feat/docs-llms-txt-intermediate/docs/public/llms-full.txt Install Mise and then use `mise install` to provision project tools. This is a general approach for any CI provider. ```yaml script: | curl https://mise.run | sh mise install ``` -------------------------------- ### Setup Mise in GitHub Actions (Manual Install) Source: https://raw.githubusercontent.com/tobiashochguertel/mise/feat/docs-llms-txt-intermediate/docs/public/llms-full.txt Integrate Mise into a GitHub Actions workflow by manually downloading and installing it using curl and sh. It also adds Mise's binary and shim directories to the GitHub Actions PATH. ```yaml jobs: build: steps: - run: | curl https://mise.run | sh echo "$HOME/.local/bin" >> $GITHUB_PATH echo "$HOME/.local/share/mise/shims" >> $GITHUB_PATH ``` -------------------------------- ### Install a Tool with a Plugin and Verbose Logging Source: https://raw.githubusercontent.com/tobiashochguertel/mise/feat/docs-llms-txt-intermediate/docs/public/llms-full.txt Troubleshoot tool installation failures by running the install command with the --verbose flag to capture detailed plugin logs. ```bash # Check plugin logs mise install vfox-npm:prettier@latest --verbose ``` -------------------------------- ### Install Usage Tool Source: https://raw.githubusercontent.com/tobiashochguertel/mise/feat/docs-llms-txt-intermediate/docs/public/llms-full.txt Installs the `usage` tool, which is a prerequisite for generating autocompletion scripts. ```shell mise use -g usage ``` -------------------------------- ### Dockerfile for mise Source: https://raw.githubusercontent.com/tobiashochguertel/mise/feat/docs-llms-txt-intermediate/docs/public/llms-full.txt A Dockerfile example that uses a mise image to install tools and then copies the mise binary to a new image. ```dockerfile FROM jdxcode/mise:latest AS mise FROM debian:bookworm-slim COPY --from=mise /usr/local/bin/mise /usr/local/bin/mise RUN mise trust -a && mise install ``` -------------------------------- ### Simulating `which` Command Output Source: https://raw.githubusercontent.com/tobiashochguertel/mise/feat/docs-llms-txt-intermediate/docs/public/llms-full.txt Provides an example of how the `which` command typically displays the path to an executable in a user's environment, showing a versioned installation path. ```sh $ which node ~/.mise/installs/node/20/bin/node ``` -------------------------------- ### Install Tool Script Source: https://raw.githubusercontent.com/tobiashochguertel/mise/feat/docs-llms-txt-intermediate/docs/public/llms-full.txt This script handles the installation of a downloaded tool. It extracts the archive and uses `make install` to place the tool in the specified installation path, leveraging Mise environment variables. ```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" ``` -------------------------------- ### Example Node.js Project Configuration Source: https://raw.githubusercontent.com/tobiashochguertel/mise/feat/docs-llms-txt-intermediate/docs/public/llms-full.txt A comprehensive mise.toml configuration for a Node.js project, including environment variables, tool versions, and task definitions for installation, linting, testing, and building. ```toml min_version = "2024.9.5" [env] _.path = ['{{config_root}}/node_modules/.bin'] # Use the project name derived from the current directory PROJECT_NAME = "{{ config_root | basename }}" # Set up the path for node module binaries BIN_PATH = "{{ config_root }}/node_modules/.bin" NODE_ENV = "{{ env.NODE_ENV | default(value='development') }}" [tools] # Install Node.js using the specified version node = "{{ env['NODE_VERSION'] | default(value='lts') }}" # Install some npm packages globally if needed "npm:typescript" = "latest" "npm:eslint" = "latest" "npm:jest" = "latest" [tasks.install] alias = "i" description = "Install npm dependencies" run = "npm install" [tasks.start] alias = "s" description = "Start the development server" run = "npm run start" [tasks.lint] alias = "l" description = "Run ESLint" run = "eslint src/" [tasks.test] description = "Run tests" alias = "t" run = "jest" [tasks.build] description = "Build the project" alias = "b" run = "npm run build" [tasks.info] description = "Print project information" run = ''' echo "Project: $PROJECT_NAME" echo "NODE_ENV: $NODE_ENV" ''' ``` -------------------------------- ### Debian/Ubuntu APT Update Instructions Source: https://raw.githubusercontent.com/tobiashochguertel/mise/feat/docs-llms-txt-intermediate/docs/public/llms-full.txt Example TOML content for updating Mise installed via APT on Debian/Ubuntu systems. This message guides users to use `apt update` and `apt install --only-upgrade mise`. ```toml # Debian/Ubuntu (APT) message = "To update mise from the APT repository, run:\n\n sudo apt update && sudo apt install --only-upgrade mise\n" ``` -------------------------------- ### Install and Activate Node.js Source: https://raw.githubusercontent.com/tobiashochguertel/mise/feat/docs-llms-txt-intermediate/docs/public/llms-full.txt Installs Node.js version 24 and makes it available in the current project. The `mise use` command installs the tool and adds it to `mise.toml`. ```bash mkdir example-project && cd example-project mise use node@24 node -v # v24.x.x ``` -------------------------------- ### Example Node.js Project with pnpm Source: https://raw.githubusercontent.com/tobiashochguertel/mise/feat/docs-llms-txt-intermediate/docs/public/llms-full.txt Configuration for a Node.js project using pnpm as the package manager. This setup enables corepack to manage pnpm and defines tasks for pnpm installation and development. ```toml [tools] node = '22' [hooks] # Enabling corepack will install the `pnpm` package manager specified in your package.json # alternatively, you can also install `pnpm` with mise postinstall = 'npx corepack enable' [settings] # This must be enabled to make the hooks work experimental = true [env] _.path = ['{{config_root}}/node_modules/.bin'] [tasks.pnpm-install] description = 'Installs dependencies with pnpm' run = 'pnpm install' sources = ['package.json', 'pnpm-lock.yaml', 'mise.toml'] outputs = ['node_modules/.pnpm/lock.yaml'] [tasks.dev] description = 'Calls your dev script in `package.json`' run = 'node --run dev' depends = ['pnpm-install'] ``` -------------------------------- ### Pipx Configuration with Pipx Arguments Source: https://raw.githubusercontent.com/tobiashochguertel/mise/feat/docs-llms-txt-intermediate/docs/public/llms-full.txt Configures a pipx tool to pass additional arguments to the pipx installation command. This example uses '--preinstall' for the 'black' tool. ```toml [tools] "pipx:black" = { version = "latest", pipx_args = "--preinstall" } ``` -------------------------------- ### Example .tool-versions file syntax Source: https://raw.githubusercontent.com/tobiashochguertel/mise/feat/docs-llms-txt-intermediate/docs/public/llms-full.txt Demonstrates the supported syntax for the `.tool-versions` file, including comments, fuzzy versions, 'latest', VCS refs, prefixes, custom paths, and LTS versions. ```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 ``` -------------------------------- ### Implement BackendInstall Hook Source: https://raw.githubusercontent.com/tobiashochguertel/mise/feat/docs-llms-txt-intermediate/docs/public/llms-full.txt Handles the installation of a specific tool version using npm. It executes 'npm install' within the specified install path. ```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 ``` -------------------------------- ### Install Multiple Tools Globally Source: https://raw.githubusercontent.com/tobiashochguertel/mise/feat/docs-llms-txt-intermediate/docs/public/llms-full.txt Installs Terraform, jq, and Go, setting them as globally available tools. The output confirms successful installation and configuration. ```shell mise use -g terraform jq go # mise jq@1.7.1 βœ“ installed # mise terraform@1.11.3 βœ“ installed # mise go@1.24.1 βœ“ installed # mise ~/.config/mise/config.toml tools: go@1.24.1, jq@1.7.1, terraform@1.11.3 ``` -------------------------------- ### Install Node.js globally using mise Source: https://raw.githubusercontent.com/tobiashochguertel/mise/feat/docs-llms-txt-intermediate/docs/public/llms-full.txt Install a specific global version of Node.js, for example, v24, using mise. ```shell mise use -g node@24 ``` -------------------------------- ### Conditional Plugin Installation Logic Source: https://raw.githubusercontent.com/tobiashochguertel/mise/feat/docs-llms-txt-intermediate/docs/public/llms-full.txt Handles different installation procedures based on the tool and version. It creates an install directory and uses npm for installation, with specific logic for 'special-tool'. ```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 ``` -------------------------------- ### Install and use a Go package with mise Source: https://raw.githubusercontent.com/tobiashochguertel/mise/feat/docs-llms-txt-intermediate/docs/public/llms-full.txt Installs the latest version of the 'hivemind' Go package and sets it as the active version on PATH. Demonstrates how to verify the installation. ```sh $ mise use -g go:github.com/DarthSim/hivemind $ hivemind --help ``` -------------------------------- ### PostInstall Hook for Setting Permissions Source: https://raw.githubusercontent.com/tobiashochguertel/mise/feat/docs-llms-txt-intermediate/docs/public/llms-full.txt The PostInstall hook is executed after installation. Use it to perform additional setup tasks like compiling native modules or setting file permissions. Ensure the command executed returns a success code. ```lua -- hooks/post_install.lua function PLUGIN:PostInstall(ctx) local rootPath = ctx.rootPath local runtimeVersion = ctx.runtimeVersion local sdkInfo = ctx.sdkInfo['nodejs'] local path = sdkInfo.path local version = sdkInfo.version -- Compile native modules, set permissions, etc. local result = os.execute("chmod +x " .. path .. "/bin/*") if result ~= 0 then error("Failed to set permissions") end -- No return value needed end ``` -------------------------------- ### Initialize Git Repository from Scratch Source: https://raw.githubusercontent.com/tobiashochguertel/mise/feat/docs-llms-txt-intermediate/docs/public/llms-full.txt Create a new plugin directory, initialize a Git repository, set the remote origin, and create essential initial files like metadata.lua and README.md. ```bash mkdir my-plugin cd my-plugin git init git remote add origin https://github.com/username/my-plugin.git touch metadata.lua mkdir -p test echo "# My Plugin" > README.md ``` -------------------------------- ### Pipx Configuration with Extras Source: https://raw.githubusercontent.com/tobiashochguertel/mise/feat/docs-llms-txt-intermediate/docs/public/llms-full.txt Configures a pipx tool to install with additional components specified in the 'extras' field. This example installs 'harlequin' with 'postgres' and 's3' extras. ```toml [tools] "pipx:harlequin" = { version = "latest", extras = "postgres,s3" } ``` -------------------------------- ### Workaround: Manual Installation for Auto-install Source: https://raw.githubusercontent.com/tobiashochguertel/mise/feat/docs-llms-txt-intermediate/docs/public/llms-full.txt To enable auto-installation for a tool that has never been installed, manually install at least one version first. This allows Mise to recognize the tool for future auto-installs. ```markdown * Manually install at least one version of the tool you want to be auto-installed in the future. After that, the auto-install feature will work for missing versions of that tool. ``` -------------------------------- ### Xcode Cloud Build Script for Mise Installation Source: https://raw.githubusercontent.com/tobiashochguertel/mise/feat/docs-llms-txt-intermediate/docs/public/llms-full.txt Example `ci_post_clone.sh` build script for Xcode Cloud to install Mise, set up the PATH, and activate shims. ```bash #!/bin/sh curl https://mise.run | sh export PATH="$HOME/.local/bin:$PATH" mise install # Installs the tools in mise.toml eval "$(mise activate bash --shims)" # Adds the activated tools to $PATH swiftlint {args} ``` -------------------------------- ### Get a specific shell alias command Source: https://raw.githubusercontent.com/tobiashochguertel/mise/feat/docs-llms-txt-intermediate/docs/public/llms-full.txt Use this command to retrieve the command associated with a specific shell alias. For example, to get the command for the 'll' alias. ```bash $ mise shell-alias get ll ls -la ``` -------------------------------- ### Install All Tools from `mise.toml` Source: https://raw.githubusercontent.com/tobiashochguertel/mise/feat/docs-llms-txt-intermediate/docs/public/llms-full.txt Installs all tool versions defined in the `mise.toml` file for the current directory. This command ensures all project dependencies managed by mise are installed. ```bash mise install # installs everything specified in mise.toml ``` -------------------------------- ### Install and set Node.js runtime with asdf Source: https://raw.githubusercontent.com/tobiashochguertel/mise/feat/docs-llms-txt-intermediate/docs/public/llms-full.txt This sequence of commands installs a new plugin, installs a specific runtime version, and sets it as the local version using asdf. ```shell asdf plugin add node asdf install node latest:20 asdf local node latest:20 ``` -------------------------------- ### Using Mise shims for tools Source: https://raw.githubusercontent.com/tobiashochguertel/mise/feat/docs-llms-txt-intermediate/docs/public/llms-full.txt Shows how to install a tool with Mise and then use its binaries via shims. ```sh mise use -g node@20 npm install -g prettier@3.1.0 ~/.local/share/mise/shims/node -v # v20.0.0 ~/.local/share/mise/shims/prettier -v # 3.1.0 ``` -------------------------------- ### Troubleshoot Plugin Installation Source: https://raw.githubusercontent.com/tobiashochguertel/mise/feat/docs-llms-txt-intermediate/docs/public/llms-full.txt Check repository URL, verify metadata.lua, and test plugin installation locally. ```bash # Check repository URL git clone https://github.com/username/my-plugin.git # Verify metadata.lua exists ls -la my-plugin/metadata.lua # Test locally mise plugin link my-plugin ./my-plugin ``` -------------------------------- ### Install mise with Cargo Source: https://raw.githubusercontent.com/tobiashochguertel/mise/feat/docs-llms-txt-intermediate/docs/public/llms-full.txt Install mise from source using Cargo. ```sh cargo install mise ``` -------------------------------- ### Install Tool by Full Name Source: https://raw.githubusercontent.com/tobiashochguertel/mise/feat/docs-llms-txt-intermediate/docs/registry Shows how to install a tool using its full name if it's not available in the registry or if a specific backend is desired. ```shell mise use aqua:aws/aws-cli ``` -------------------------------- ### Mise Configuration for S3 Tool Source: https://raw.githubusercontent.com/tobiashochguertel/mise/feat/docs-llms-txt-intermediate/docs/public/llms-full.txt Example TOML configuration for a tool installed via the S3 backend. ```toml [tools] "s3:my-tool" = { version = "1.0.0", url = "s3://my-bucket/tools/my-tool-v1.0.0.tar.gz" } ``` -------------------------------- ### Handle Pre-Installation Logic Source: https://raw.githubusercontent.com/tobiashochguertel/mise/feat/docs-llms-txt-intermediate/docs/public/llms-full.txt The PreInstall hook determines the download URL and optional checksum for a given version. It can also specify additional files to download and attestation metadata for verification. ```lua -- hooks/pre_install.lua function PLUGIN:PreInstall(ctx) local version = ctx.version local runtimeVersion = ctx.runtimeVersion -- Determine download URL and checksums local url = "https://nodejs.org/dist/v" .. version .. "/node-v" .. version .. "-linux-x64.tar.gz" return { version = version, url = url, sha256 = "abc123...", -- Optional checksum note = "Installing Node.js " .. version, -- Optional attestation metadata, choose a verification type attestation = { -- GitHub github_owner = "ownername" github_repo = "reponame" -- Cosign cosign_sig_or_bundle_path = "/path/to/sig/or/bundle/file" -- SLSA slsa_provenance_path = "/path/to/provenance/file" }, -- Additional files can be specified addition = { { name = "npm", url = "https://registry.npmjs.org/npm/-/npm-" .. npm_version .. ".tgz" } } } end ``` -------------------------------- ### Install Go Version with Prefix Source: https://raw.githubusercontent.com/tobiashochguertel/mise/feat/docs-llms-txt-intermediate/docs/public/llms-full.txt Installs a specific Go version (e.g., 1.20.x) using the `prefix` keyword. This is necessary for older Go versions (1.20 and below) that may not have a `.0` suffix, preventing exact version matches. ```sh mise use -g go@prefix:1.20 ``` -------------------------------- ### Diagnose Mise Setup Issues Source: https://raw.githubusercontent.com/tobiashochguertel/mise/feat/docs-llms-txt-intermediate/docs/public/llms-full.txt Runs a diagnostic tool to identify common problems with the Mise installation and configuration. ```shell mise doctor ``` -------------------------------- ### Node.js Task Autocompletion Example Source: https://raw.githubusercontent.com/tobiashochguertel/mise/feat/docs-llms-txt-intermediate/docs/public/llms-full.txt Shows how autocompletion for task arguments works in the Node.js greet task when 'usage' is installed. ```shell mise run greet # > greeting.txt # file.txt ``` -------------------------------- ### Install all plugins and runtimes with Mise Source: https://raw.githubusercontent.com/tobiashochguertel/mise/feat/docs-llms-txt-intermediate/docs/public/llms-full.txt Installs all plugins and runtimes defined in existing configuration files like .tool-versions or .mise.toml. ```shell mise install ``` -------------------------------- ### Example of Settings Section Merging Source: https://raw.githubusercontent.com/tobiashochguertel/mise/feat/docs-llms-txt-intermediate/docs/public/llms-full.txt Explains how settings in the `[settings]` section are merged. Project settings are added to global settings. ```toml # Global: experimental = true # Project: jobs = 4 # Result: experimental = true, jobs = 4 ``` -------------------------------- ### Dockerfile for GitLab CI with Mise Source: https://raw.githubusercontent.com/tobiashochguertel/mise/feat/docs-llms-txt-intermediate/docs/public/llms-full.txt Example Dockerfile for GitLab CI that installs Mise. This allows using a custom image with Mise pre-installed. ```dockerfile FROM debian:12-slim RUN apt-get update \ && apt-get -y --no-install-recommends install \ # install any tools you need sudo curl git ca-certificates build-essential \ && rm -rf /var/lib/apt/lists/* RUN curl https://mise.run | MISE_VERSION=v... MISE_INSTALL_PATH=/usr/local/bin/mise sh ``` -------------------------------- ### Example of Tools Section Merging Source: https://raw.githubusercontent.com/tobiashochguertel/mise/feat/docs-llms-txt-intermediate/docs/public/llms-full.txt Demonstrates how the `[tools]` section merges configurations from different levels. More specific project settings override global settings. ```toml # Global: node@18, python@3.11 # Project: node@20, go@1.21 # Result: node@20, python@3.11, go@1.21 ``` -------------------------------- ### Full-Stack Project Preparation Source: https://raw.githubusercontent.com/tobiashochguertel/mise/feat/docs-llms-txt-intermediate/docs/public/llms-full.txt Example configuration for a project with Node.js and Python backends, demonstrating parallel execution and dependencies between frontend and backend preparation steps. ```toml # mise.toml for a project with Node.js frontend and Python backend [prepare.npm] auto = true [prepare.poetry] auto = true [prepare.prisma] auto = true depends = ["npm"] # needs node_modules first sources = ["prisma/schema.prisma"] outputs = ["node_modules/.prisma/"] run = "npx prisma generate" [prepare.frontend-codegen] depends = ["npm"] # needs node_modules first sources = ["schema.graphql", "codegen.ts"] outputs = ["src/generated/"] run = "npm run codegen" ``` -------------------------------- ### Get Tool Information Source: https://raw.githubusercontent.com/tobiashochguertel/mise/feat/docs-llms-txt-intermediate/docs/public/llms-full.txt Retrieves detailed information about a specific tool, including its backend, installed versions, active version, and configuration source. ```sh mise tool ripgrep ``` -------------------------------- ### Install a Backend Plugin Source: https://raw.githubusercontent.com/tobiashochguertel/mise/feat/docs-llms-txt-intermediate/docs/public/llms-full.txt Installs a backend plugin from a given URL. Backend plugins support multiple tools and enhanced methods. ```bash # Install a backend plugin mise plugin install my-plugin https://github.com/username/my-plugin ``` -------------------------------- ### Lua BackendExecEnv Example Source: https://raw.githubusercontent.com/tobiashochguertel/mise/feat/docs-llms-txt-intermediate/docs/public/llms-full.txt Implement this function to set up environment variables for a tool, such as adding bin directories to the PATH. Custom options are accessible via `options["key"]` or `options.key`. ```lua function PLUGIN:BackendExecEnv(ctx) local install_path = ctx.install_path local options = ctx.options -- Your logic to set up environment variables -- Example: add bin directories to PATH -- Access custom options via options["key"] or options.key return { env_vars = { {key = "PATH", value = install_path .. "/bin"} } } end ``` -------------------------------- ### Install a Plugin by Shorthand Source: https://raw.githubusercontent.com/tobiashochguertel/mise/feat/docs-llms-txt-intermediate/docs/public/llms-full.txt Installs a plugin using its shorthand name. Mise can automatically infer the Git URL from the shorthand. ```bash # install the poetry via shorthand $ mise plugins install poetry ``` -------------------------------- ### Pipx Configuration with Uvx Arguments Source: https://raw.githubusercontent.com/tobiashochguertel/mise/feat/docs-llms-txt-intermediate/docs/public/llms-full.txt Configures a pipx tool to pass additional arguments to uvx during installation. This example passes '--with ansible' for the 'ansible-core' tool. ```toml [tools] "pipx:ansible-core" = { version = "latest", uvx_args = "--with ansible" } ``` -------------------------------- ### Example Plugin: Download Tool Archive Source: https://raw.githubusercontent.com/tobiashochguertel/mise/feat/docs-llms-txt-intermediate/docs/public/llms-full.txt This script downloads the release archive for a specific tool version based on the detected platform and architecture. It sets the download path using the ASDF_DOWNLOAD_PATH environment variable. ```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" ``` -------------------------------- ### Hierarchical Tool Configuration Example Source: https://raw.githubusercontent.com/tobiashochguertel/mise/feat/docs-llms-txt-intermediate/docs/public/llms-full.txt Illustrates how configuration in a subdirectory overrides configurations in parent directories. Shows merged tool versions from different levels. ```toml # ~/src/myproj/mise.toml [tools] node = '20' python = '3.10' # ~/src/myproj/backend/mise.toml [tools] node = '18' ruby = '3.1' ``` -------------------------------- ### Get Path to Global Node Installation Source: https://raw.githubusercontent.com/tobiashochguertel/mise/feat/docs-llms-txt-intermediate/docs/public/llms-full.txt Shows the absolute path to the Node.js executable that is currently active globally. This confirms Mise is managing the path correctly. ```shell which node # /root/.local/share/mise/installs/node/22.14.0/bin/node ``` -------------------------------- ### Get Node Version using exec Source: https://raw.githubusercontent.com/tobiashochguertel/mise/feat/docs-llms-txt-intermediate/docs/templates Use the `exec` function to run a shell command and capture its output. This example retrieves the current Node.js version. ```toml # Using exec to get command output [alias.node.versions] current = "{{ exec(command='node --version') }}" ``` -------------------------------- ### Link and Test Plugin Locally Source: https://raw.githubusercontent.com/tobiashochguertel/mise/feat/docs-llms-txt-intermediate/docs/public/llms-full.txt Link your plugin for local development and test basic commands like listing remote versions, installation, and environment setup. ```bash # Link your plugin for development mise plugin link my-tool /path/to/my-tool-plugin # Test listing versions mise ls-remote my-tool # Test installation mise install my-tool@1.0.0 # Test environment setup mise use my-tool@1.0.0 my-tool --version # Test legacy file parsing (if applicable) echo "2.0.0" > .my-tool-version mise use my-tool ``` -------------------------------- ### Manual installation on Windows Source: https://raw.githubusercontent.com/tobiashochguertel/mise/feat/docs-llms-txt-intermediate/docs/public/llms-full.txt Download the latest release binary from GitHub and add it to your PATH. Manually add the shims directory if your shell does not support 'mise activate'. ```sh Download the latest release from [GitHub](https://github.com/jdx/mise/releases) and add the binary to your PATH. If your shell does not support `mise activate`, you would want to edit PATH to include the shims directory (by default: `%LOCALAPPDATA%\mise\shims`). ``` -------------------------------- ### Create and Install with Mise Lockfile Source: https://raw.githubusercontent.com/tobiashochguertel/mise/feat/docs-llms-txt-intermediate/docs/public/llms-full.txt Manually create the `mise.lock` file and then run `mise install` to populate it with tool information. ```sh touch mise.lock mise i ``` -------------------------------- ### Mise Configuration for Ruby on Rails Project Source: https://raw.githubusercontent.com/tobiashochguertel/mise/feat/docs-llms-txt-intermediate/docs/public/llms-full.txt This snippet configures mise for a Ruby on Rails project. It specifies the minimum mise version, sets project-specific environment variables, installs the Ruby tool with a default version, and defines tasks for bundle install, server start, testing, and linting. ```toml min_version = "2024.9.5" [env] # Project information PROJECT_NAME = "{{ config_root | basename }}" [tools] # Install Ruby with the specified version ruby = "{{ get_env(name='RUBY_VERSION', default='3.3.3') }}" [tasks."bundle:install"] description = "Install gem dependencies" run = "bundle install" [tasks.server] description = "Start the Rails server" alias = "s" run = "rails server" [tasks.test] description = "Run tests" alias = "t" run = "rails test" [tasks.lint] description = "Run lint using Rubocop" alias = "l" run = "rubocop" ``` -------------------------------- ### Example Plugin: List All Versions Source: https://raw.githubusercontent.com/tobiashochguertel/mise/feat/docs-llms-txt-intermediate/docs/public/llms-full.txt This script fetches releases from a GitHub API and extracts version tags to list all available versions of a tool. It's designed to be used as the 'list-all' script for a Mise plugin. ```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 ``` -------------------------------- ### Mise Global Configuration Example Source: https://raw.githubusercontent.com/tobiashochguertel/mise/feat/docs-llms-txt-intermediate/docs/public/llms-full.txt Shows an example of the mise configuration file (`~/.config/mise/config.toml`) after setting the global Node.js version. This illustrates how mise stores tool version settings. ```toml [tools] node = "24" ``` -------------------------------- ### Get Information About a Tool Source: https://raw.githubusercontent.com/tobiashochguertel/mise/feat/docs-llms-txt-intermediate/docs/public/llms-full.txt This command retrieves information about a specific tool managed by `mise`. It can display various details such as the backend, installed versions, active version, and configuration source. ```bash $ mise tool node Backend: core Installed Versions: 20.0.0 22.0.0 Active Version: 20.0.0 Requested Version: 20 Config Source: ~/.config/mise/mise.toml Tool Options: [none] ``` -------------------------------- ### Install Tool from HTTP URL Source: https://raw.githubusercontent.com/tobiashochguertel/mise/feat/docs-llms-txt-intermediate/docs/public/llms-full.txt Installs a tool from a direct HTTP URL. The version and URL are stored in the global configuration. ```sh mise use -g http:my-tool[url=https://example.com/releases/my-tool-v1.0.0.tar.gz]@1.0.0 ``` -------------------------------- ### Sync Ruby Tool Versions with Homebrew Source: https://raw.githubusercontent.com/tobiashochguertel/mise/feat/docs-llms-txt-intermediate/docs/public/llms-full.txt Synchronizes Ruby tool versions by getting them from Homebrew. Use this when you manage Ruby installations via Homebrew and want to integrate them with Mise. ```bash brew install ruby mise sync ruby --brew mise use -g ruby - Use the latest version of Ruby installed by Homebrew ``` -------------------------------- ### GitLab CI with Bootstrap Script and Caching Source: https://raw.githubusercontent.com/tobiashochguertel/mise/feat/docs-llms-txt-intermediate/docs/public/llms-full.txt Example GitLab CI configuration using the bootstrap script for Mise installation and caching Mise directories. This uses a generic Docker image. ```yaml .mise-cache: &mise-cache key: prefix: mise- files: ["mise.toml", "./bin/mise"] paths: - .mise/installs - .mise/mise-2025.1.3 build-job: stage: build image: my-debian-slim-image # Use the image you created cache: - <<: *mise-cache policy: pull-push script: - ./bin/mise install - ./bin/mise exec --command 'npm build' ``` -------------------------------- ### Example of default PATH Source: https://raw.githubusercontent.com/tobiashochguertel/mise/feat/docs-llms-txt-intermediate/docs/public/llms-full.txt Illustrates a typical PATH environment variable before Mise integration. ```sh echo $PATH /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin ``` -------------------------------- ### Dynamic Task Dependency with Conditional Logic Source: https://raw.githubusercontent.com/tobiashochguertel/mise/feat/docs-llms-txt-intermediate/docs/public/llms-full.txt Specify dependencies at runtime using a bash script. This example adds a dependency on 'setup' and conditionally runs 'generate-env' if a '.env' file does not exist. ```bash #!/usr/bin/env bash #MISE depends=["setup"] # Additional conditional dependency if [ ! -f ".env" ]; then mise run generate-env fi npm start ``` -------------------------------- ### Mise CLI Usage Examples Source: https://raw.githubusercontent.com/tobiashochguertel/mise/feat/docs-llms-txt-intermediate/docs/public/llms-full.txt Examples of how to invoke the Mise CLI for help, activating shell environments, and sourcing configurations. ```sh @mise --help ``` ```sh eval "$(@mise activate zsh)" ``` ```sh @mise activate fish | source ``` -------------------------------- ### Starting a New Shell Session with Environment Variables Source: https://raw.githubusercontent.com/tobiashochguertel/mise/feat/docs-llms-txt-intermediate/docs/public/llms-full.txt Demonstrates using `mise en` to start a new shell session where environment variables set by Mise are automatically available. ```shell mise set FOO=bar mise en > echo $FOO # bar ``` -------------------------------- ### Fedora/CentOS Stream DNF Update Instructions Source: https://raw.githubusercontent.com/tobiashochguertel/mise/feat/docs-llms-txt-intermediate/docs/public/llms-full.txt Example TOML content for updating Mise installed via COPR on Fedora/CentOS Stream systems. This message instructs users to run `sudo dnf upgrade mise`. ```toml # Fedora/CentOS Stream (DNF) message = "To update mise from COPR, run:\n\n sudo dnf upgrade mise\n" ``` -------------------------------- ### Pipx Configuration to Disable Uvx Source: https://raw.githubusercontent.com/tobiashochguertel/mise/feat/docs-llms-txt-intermediate/docs/public/llms-full.txt Configures a pipx tool to explicitly disable the use of uvx, falling back to the standard pipx installation method. This example disables uvx for the 'ansible' tool and includes '--include-deps'. ```toml [tools] "pipx:ansible" = { version = "latest", uvx = "false", pipx_args = "--include-deps" } ``` -------------------------------- ### Run Task with Arguments and Flags Source: https://raw.githubusercontent.com/tobiashochguertel/mise/feat/docs-llms-txt-intermediate/docs/public/llms-full.txt Execute the 'greet' task with specific user, greeting, and message arguments, demonstrating how options are passed as environment variables. ```shell mise run greet --user jdx -g "hey" "How are you?" ``` -------------------------------- ### Example Cache Directory Structure Source: https://raw.githubusercontent.com/tobiashochguertel/mise/feat/docs-llms-txt-intermediate/docs/public/llms-full.txt Illustrates the directory structure of the Mise HTTP backend cache, showing how downloaded and extracted files are organized. This structure helps in understanding how identical downloads are shared across different tool installations. ```text ~/.cache/mise/http-tarballs/ β”œβ”€β”€ 71f774faa03daf1a58cc3339f8c73e6557348c8e0a2f3fb8148cc26e26bad83f/ β”‚ β”œβ”€β”€ extracted/ β”‚ β”‚ └── bin/my-tool β”‚ └── metadata.json └── 1c2af379bdf1fed266bc44b49271e2df5b0dafae09f1cc744b3505ec50c84719_strip_1/ β”œβ”€β”€ extracted/ β”‚ └── my-tool └── metadata.json ``` -------------------------------- ### Custom Provider Configuration Example Source: https://raw.githubusercontent.com/tobiashochguertel/mise/feat/docs-llms-txt-intermediate/docs/public/llms-full.txt Define custom build steps for code generation and database schema generation using TOML. Specify sources, outputs, and the command to run. ```toml [prepare.codegen] sources = ["schema/*.graphql", "codegen.yml"] outputs = ["src/generated/"] run = "npm run codegen" description = "Generate GraphQL types" [prepare.prisma] sources = ["prisma/schema.prisma"] outputs = ["node_modules/.prisma/"] run = "npx prisma generate" ``` -------------------------------- ### Enable Experimental Features and Run Prepare Steps Source: https://raw.githubusercontent.com/tobiashochguertel/mise/feat/docs-llms-txt-intermediate/docs/public/llms-full.txt Enables experimental features and runs all applicable prepare steps for the current project. This is a common starting point for setting up a project with Mise. ```bash # Enable experimental features export MISE_EXPERIMENTAL=1 # Run all applicable prepare steps mise prepare # Or use the alias ``` ```bash mise prep ``` -------------------------------- ### Configure Virtual Environment with Seed Packages using UV Source: https://raw.githubusercontent.com/tobiashochguertel/mise/feat/docs-llms-txt-intermediate/docs/public/llms-full.txt Configures the creation of a virtual environment using `uv` and includes essential seed packages (pip, setuptools, wheel). This ensures the venv starts with a functional package management setup. ```toml # Install seed packages (pip, setuptools, and wheel) into the virtual environment. _.python.venv = { path = ".venv", create = true, uv_create_args = ['--seed'] } ``` -------------------------------- ### Manage Tools Using Plugin:Tool Format Source: https://raw.githubusercontent.com/tobiashochguertel/mise/feat/docs-llms-txt-intermediate/docs/public/llms-full.txt Demonstrates how to install, use, and execute specific tools managed by a plugin using the `plugin:tool` format. This is essential for managing multiple tools or versions from a single plugin. ```bash # Install a specific tool using the plugin mise install vfox-npm:prettier@latest # Use the tool mise use vfox-npm:prettier@3.0.0 # Execute the tool mise exec vfox-npm:prettier -- --version # List available versions mise ls-remote vfox-npm:prettier ``` -------------------------------- ### PATH Management Before and After mise Activation Source: https://raw.githubusercontent.com/tobiashochguertel/mise/feat/docs-llms-txt-intermediate/docs/public/llms-full.txt Illustrates how mise modifies the system's PATH environment variable to prioritize project-specific tool versions over global installations. The first example shows the PATH before activation, and the second shows it after activating a specific Node.js version. ```bash # Before mise echo $PATH /usr/local/bin:/usr/bin:/bin # After mise activation in a project with node@20 echo $PATH /home/user/.local/share/mise/installs/node/20.11.0/bin:/usr/local/bin:/usr/bin:/bin ``` -------------------------------- ### Quick Start for Mise Environment Plugin Development Source: https://raw.githubusercontent.com/tobiashochguertel/mise/feat/docs-llms-txt-intermediate/docs/public/llms-full.txt This sequence clones a template repository to quickly set up a new Mise environment plugin. Customize the metadata and hook files according to your specific needs. ```bash git clone https://github.com/jdx/mise-env-plugin-template my-env-plugin cd my-env-plugin ``` -------------------------------- ### Install Bash Autocompletion Source: https://raw.githubusercontent.com/tobiashochguertel/mise/feat/docs-llms-txt-intermediate/docs/public/llms-full.txt Generates and installs the autocompletion script for Bash. Requires `bash-completion` to be installed. ```shell mkdir -p ~/.local/share/bash-completion/completions/ mise completion bash --include-bash-completion-lib > ~/.local/share/bash-completion/completions/mise ``` -------------------------------- ### Install and Set Local Node Version using asdf Syntax Source: https://raw.githubusercontent.com/tobiashochguertel/mise/feat/docs-llms-txt-intermediate/docs/public/llms-full.txt Demonstrates how to use asdf-compatible syntax to install a specific Node.js version and set it as the local version. This syntax is supported for users transitioning from asdf. ```sh mise install node 20.0.0 mise local node 20.0.0 ``` -------------------------------- ### List Installed Mise Plugins Source: https://raw.githubusercontent.com/tobiashochguertel/mise/feat/docs-llms-txt-intermediate/docs/public/llms-full.txt Shows all installed plugins or their URLs. Use this to verify plugin installations. ```bash # Show all plugins mise plugins ls # Show plugin URLs mise plugins ls --urls ``` -------------------------------- ### Install Mise using curl Source: https://raw.githubusercontent.com/tobiashochguertel/mise/feat/docs-llms-txt-intermediate/docs/public/llms-full.txt Installs Mise by downloading and executing a script. The installation path can be customized. ```sh curl https://mise.run | sh ``` ```sh curl https://mise.run | MISE_INSTALL_PATH=/usr/local/bin/mise sh ```