Stay in control of your dev tools with Mise: Install and update node, npm, pnpm, playwright
Published:
What is Mise?
Like nvm and Volta, Mise is a tool to keep several different versions of node and node tools like pnpm on your developer machine, and to easily keep the tools updated.
You get most of the way with Mise's getting started guide, but I hit a couple of gotchas along the way, so follow along here so you don't have to.
Three-liner to install and update all my dev tools with Mise
Mise can be installed several different ways, but they recommend using scoop: https://scoop.sh/#/apps?q=mise
After installing Mise, run:
# Install latest version of dev tools globally
mise use --g node npm pnpm bun opencode npm:sanity npm:@playwright/cli npm:eslint# Update Mise (with -y for auto-confirm)
mise self-update -y# Upgrade all tools to latest version (--bump to also upgrade to new major versions)
mise upgrade --bumpInstallation guide for Windows and WSL (Ubuntu)
Set up Mise for PowerShell
# PowerShell, install with Chocolatey
choco install mise
# Re-open PowerShell and verify
mise --version
2026.5.6 windows-x64 (2026-05-11)
# Activate by adding this to your $profile
(&mise activate pwsh) | Out-String | Invoke-ExpressionGit Bash needs separate activation
The activation for Git Bash doesn't work properly: https://github.com/jdx/mise/discussions/3961
Untill this bug is fixed, use the shims activation method in PowerShell:
# PowerShell
mise activate --shimsThe shims activation, adds C:\Users\[User Name]\AppData\Local\mise\shims to Path, which makes both PowerShell and Git Bash able to use the shims.
The proper way to activate Git Bash, when it works
You need to activate Mise in Git Bash separately, otherwise git commit hooks that run node tools (like linting) will not work.
# Git Bash
# Check if installed tools work
node -v
bash: node: command not found
# Activate mise
mise activate bash >> ~/.bashrc
# Re-open Git Bash and verify
node -v
v26.1.0Set up Mise for WSL with Ubuntu and zsh
# WSL with Ubuntu and zsh
curl https://mise.run | sh
# Verify
~/.local/bin/mise --version
# Activate by adding to .zshrc
echo 'eval "$(mise activate zsh)"' >> ~/.zshrc
# Restart your shell and verify
mise --version
2026.5.6 linux-x64 (2026-05-11)Insert a GitHub token to avoid rate limiting
Many of the packages you can install with Mise are on GitHub. To prevent rate limiting because of too many downloads, create a GitHub token and make it available to Mise as an environment variable MISE_GITHUB_TOKEN.
First, create a token on GitHub, under Developer Settings: https://github.com/settings/tokens
You can use a classic token without any scopes.
# PowerShell, insert new
$env:MISE_GITHUB_TOKEN = 'My GitHub read-only token for Mise'
# Log out and in again, and check that the variable is available
echo $Env:MISE_GITHUB_TOKEN
My GitHub read-only token for MiseInstall common libraries and tools
You can install tools per project or globally. I mostly use Mise to keep my tools updated, and use them globally, but it is even more useful if you need different versions of tools for different projects.
Install in a directory with mise use or globally with the --global / -g flag. Add version after each tool, or skip it to install the latest version.
mise use --global node@24You can install more than one package at once, this is my typical one-liner on a new computer:
mise use --g node npm pnpm bun \
opencode npm:sanity \
npm:@playwright/cli npm:eslint Update Mise itself
mise self-update -yUpdate all tools to newest minor version
mise upgradeUpdate all tools to newest version, also with major versions
mise upgrade --bumpFind tools to install
List of all tools aliased available directly from Mise (Mise has aliases for these tools):
mise registryTo get a tui where you can select tool to install, simply run:
mise use
Categories: Dev Tools Git GitHub PowerShell Tricks