# How to Install mise: Complete Guide for macOS, Linux, and Windows

> Install mise on macOS Linux and Windows with our complete guide. Learn how to get the mise single-binary installer and activate your shell for automatic tool loading.

- Repository: [jdx/mise](https://github.com/jdx/mise)
- Tags: how-to-guide
- Published: 2026-08-09

---

**Use the single-binary installer `curl https://mise.run | sh` on macOS and Linux, or `scoop install mise` on Windows, then activate your shell with `mise activate` to enable automatic tool loading.**

`mise` is a Rust-based command-line tool that manages development environments by handling tool versions, environment variables, and project-specific tasks. Installing the binary from the `jdx/mise` repository takes only seconds, though proper shell activation is required to enable seamless tool access without manual `PATH` configuration.

## Install mise on macOS and Linux

The recommended installation method uses the official installer script hosted at `mise.run`. This approach downloads a pre-compiled binary and places it in `~/.local/bin/mise` by default.

### Using the Single-Binary Installer

Run the following command to download and install mise:

```bash
curl https://mise.run | sh

```

Verify the installation by checking the version:

```bash
~/.local/bin/mise --version

```

The installer respects the `MISE_INSTALL_PATH` environment variable if you need a custom location. For example, to install system-wide:

```bash
MISE_INSTALL_PATH=/usr/local/bin/mise curl https://mise.run | sh

```

According to the `jdx/mise` source code, the installation script extracts the binary and optionally prepares activation hooks, but does not modify your shell configuration unless explicitly requested.

### Alternative Package Managers

While the single-binary installer is optimized for automatic updates via `mise self-update`, you can also install via platform-specific package managers:

- **Homebrew**: `brew install mise` (convenient but receives updates less frequently)
- **APT** (Ubuntu 26.04+): `sudo add-apt-repository -y ppa:jdxcode/mise && sudo apt update && sudo apt install -y mise`
- **DNF** (Fedora 41+): `sudo dnf copr enable jdxcode/mise && sudo dnf install mise`
- **Snap**: `sudo snap install mise --classic`
- **Cargo**: `cargo install --locked mise` or use `cargo binstall mise` for faster binary fetching

## Install mise on Windows

Windows installation requires a package manager that handles shim directory configuration automatically.

### Scoop Installation

**Scoop** is the recommended method for Windows as it automatically adds the shim directory (`%LOCALAPPDATA%\mise\shims`) to your system `PATH`:

```powershell
scoop install mise

```

After installation, verify that the binary is accessible:

```powershell
mise --version

```

### Other Windows Options

Alternative installation methods include:

- **winget**: `winget install jdx.mise`
- **Chocolatey**: `choco install mise`
- **Manual**: Download the binary directly from GitHub releases and add it to your `PATH` manually

## Activate mise in Your Shell

Installation alone does not modify your environment. To enable automatic tool loading and environment variable handling, you must **activate** mise for your specific shell. The activation logic, implemented in [`src/cli/activate.rs`](https://github.com/jdx/mise/blob/main/src/cli/activate.rs), injects the mise shim directory into your `PATH` and sets up hooks for directory-specific environment changes.

Add the appropriate activation command to your shell configuration file:

**Bash:**

```bash
echo 'eval "$(~/.local/bin/mise activate bash)"' >> ~/.bashrc

```

**Zsh:**

```bash
echo 'eval "$(~/.local/bin/mise activate zsh)"' >> ~/.bashrc

```

**Fish:**

```fish
echo '~/.local/bin/mise activate fish | source' >> ~/.config/fish/config.fish

```

**PowerShell:**

```powershell
echo '(&mise activate pwsh) | Out-String | Invoke-Expression' >> $PROFILE

```

Reload your shell or source the configuration file to apply changes. Without activation, the `mise` binary functions but installed tools remain inaccessible unless invoked via `mise exec`.

## Verify and Use mise

Once installed and activated, test the complete workflow by installing a tool globally:

```bash
mise use --global node@26
node -v

```

For CI/CD pipelines or Docker containers, you can use the installer directly without shell activation by ensuring the shims directory is in your `PATH`:

```dockerfile
FROM debian:13-slim
RUN apt-get update && apt-get install -y curl ca-certificates && \
    curl https://mise.run | sh && \
    mise trust -a && mise install
ENV PATH="/mise/shims:${PATH}"

```

The backend selection logic in [`src/backend/mod.rs`](https://github.com/jdx/mise/blob/main/src/backend/mod.rs) allows mise to fetch tools from multiple sources (Aqua, GitHub releases, npm, pipx) regardless of which installation method you used initially.

## Summary

- **Primary installation**: Use `curl https://mise.run | sh` on Unix systems or `scoop install mise` on Windows for the most optimized setup.
- **Shell activation**: Run `mise activate <shell>` and add it to your shell config to enable automatic `PATH` injection and environment handling.
- **Customization**: Set `MISE_INSTALL_PATH` to change the binary location during installation.
- **Updates**: The official installer supports `mise self-update`, while package manager installations update through their respective channels.
- **Architecture**: The entry point in [`src/main.rs`](https://github.com/jdx/mise/blob/main/src/main.rs) delegates to [`src/cli/activate.rs`](https://github.com/jdx/mise/blob/main/src/cli/activate.rs) for shell integration and [`src/backend/mod.rs`](https://github.com/jdx/mise/blob/main/src/backend/mod.rs) for tool fetching.

## Frequently Asked Questions

### Do I need to activate mise after installing it?

Yes, activation is required for seamless tool access. While the binary works immediately for running `mise` commands, **activation** modifies your shell environment to include the shim directory in `PATH`. Without it, you must prefix every tool command with `mise exec` or manually configure environment variables. Activation is implemented in [`src/cli/activate.rs`](https://github.com/jdx/mise/blob/main/src/cli/activate.rs) and supports Bash, Zsh, Fish, and PowerShell.

### How do I update mise to the latest version?

If you used the single-binary installer (`curl https://mise.run | sh`), run `mise self-update` to fetch the latest release automatically. For package manager installations (Homebrew, Scoop, APT, etc.), update through your package manager's standard command (e.g., `brew upgrade mise` or `scoop update mise`).

### Can I install mise without administrator privileges?

Yes. The default single-binary installer places the executable in `~/.local/bin`, which requires no sudo access. Ensure that `~/.local/bin` exists and is in your `PATH`, or specify a user-writable directory using `MISE_INSTALL_PATH` during installation.

### How does mise locate installed tools?

After activation, mise maintains a **shim directory** (typically `~/.local/share/mise/shims` on Unix or `%LOCALAPPDATA%\mise\shims` on Windows) that contains proxy executables for all installed tools. The `mise activate` command prepends this directory to your `PATH`, allowing your shell to find tools without knowing their specific install locations. This mechanism is handled by the activation logic in [`src/cli/activate.rs`](https://github.com/jdx/mise/blob/main/src/cli/activate.rs).