Configure and operate Mise for deterministic developer environments. Use when installing runtime/tool versions, defining reusable tasks, managing layered environment variables, migrating from asdf/nvm/pyenv, or debugging mise.toml behavior in CI and local shells. Keywords: mise, mise.toml, tool versions, tasks, env, asdf migration, setup automation, dev environment.
Overall
score
99%
Does it follow best practices?
Validation for skill structure
Migrating to Mise from asdf, nvm, rbenv, pyenv, and other version managers.
# Mise automatically reads .tool-versions
cat .tool-versions
# nodejs 20.10.0
# python 3.12.0
# Install and use
mise install
mise current# 1. Install mise
# (see mise documentation)
# 2. Migrate configuration
mise use node@20.10.0 python@3.12.0
# 3. Remove asdf (optional)
rm -rf ~/.asdf
# Remove asdf from shell configMost asdf plugins work with mise:
# List asdf plugins
asdf plugin list
# Install same plugins in mise
mise plugins install postgres
mise use postgres@16.1# Existing .nvmrc
cat .nvmrc
# 20.10.0
# Migrate to mise
mise use node@$(cat .nvmrc)# 1. Note current nvm version
nvm current
# v20.10.0
# 2. Install same version with mise
mise use node@20.10.0
# 3. Remove nvm (optional)
rm -rf ~/.nvm
# Remove nvm from shell config# Export nvm global packages
npm list -g --depth=0 > npm-global.txt
# After switching to mise
mise use node@20.10.0
# Reinstall global packages# Existing .ruby-version
cat .ruby-version
# 3.3.0
# Migrate to mise
mise use ruby@$(cat .ruby-version)# 1. Note current rbenv version
rbenv version
# 3.3.0
# 2. Install same version with mise
mise use ruby@3.3.0
# 3. Remove rbenv (optional)
rm -rf ~/.rbenv
# Remove rbenv from shell config# Existing .python-version
cat .python-version
# 3.12.0
# Migrate to mise
mise use python@$(cat .python-version)# 1. Note current pyenv version
pyenv version
# 3.12.0
# 2. Install same version with mise
mise use python@3.12.0
# 3. Preserve virtual environments
# Mise can use existing venvs
[tools]
python = "3.12"
[env]
_.python.venv = { path = ".venv", create = true }
# 4. Remove pyenv (optional)
rm -rf ~/.pyenv
# Remove pyenv from shell config# 1. Note current SDK versions
sdk current
# 2. Install with mise
mise use java@21 gradle@8.5 maven@3.9
# 3. Remove sdkman (optional)
rm -rf ~/.sdkman
# Remove sdkman from shell config# Old .envrc
export DATABASE_URL=postgresql://localhost/myapp
export NODE_ENV=development# New mise.toml
[env]
DATABASE_URL = "postgresql://localhost/myapp"
NODE_ENV = "development"# 1. Convert .envrc to mise.toml
# (manual conversion of export statements)
# 2. Mise automatically activates on directory change
# 3. Remove .envrc (optional)
rm .envrc
# 4. Keep direnv for other projects (optional)
# Mise and direnv can coexist# Before: Multiple version managers
nvm use 20.10.0
rbenv local 3.3.0
pyenv local 3.12.0
# After: Single mise configuration# mise.toml
[tools]
node = "20.10.0"
ruby = "3.3.0"
python = "3.12.0"# Phase 1: Add mise.toml alongside existing files
# Keep .nvmrc, .ruby-version, .python-version
[tools]
node = "20.10.0"
ruby = "3.3.0"
python = "3.12.0"
# Phase 2: Team adopts mise
# (Keep legacy files for stragglers)
# Phase 3: Remove legacy files
# Once entire team migrated# Before: Multiple version managers in CI
- uses: actions/setup-node@v3
with:
node-version: '20.10.0'
- uses: ruby/setup-ruby@v1
with:
ruby-version: '3.3.0'# After: Single mise setup
- uses: jdx/mise-action@v2
# Automatically uses versions from mise.toml# Ensure mise activation in shell config
# ~/.bashrc or ~/.zshrc
eval "$(mise activate bash)" # or zsh# Verify installation
mise current
# Reinstall if needed
mise install# Node.js
npm install -g package-name
# Python
pip install package-name
# Ruby
gem install gem-name# Check which version manager is active
which node
# Should point to mise shim
# If conflicts exist
mise doctor# Support both mise and nvm during migration
.nvmrc # For nvm users
mise.toml # For mise usersCreate MIGRATION.md:
# Migration to Mise
## Installation
1. Install mise: https://mise.jdx.dev/getting-started.html
2. Add to shell: `eval "$(mise activate bash)"`
3. Install tools: `mise install`
## Support
Contact #engineering-tools for help# 1. Install mise and test
mise install
mise current
# 2. Verify application works
npm test
npm run build
# 3. Only then remove old version managers