Rechercher

PythonReactSEOPDF
GitHub Skill

mise-tool-management

Use when managing development tool versions with Mise. Covers installing tools, version pinning, and replacing language-specific version managers.

TheBushidoCollective☆ 75 Étoiles du dépôt10 Forks du dépôt

Installation

Suivez les instructions du dépôt pour votre agent. Consultez les fichiers et dépendances avant l’installation.

Voir la source ↗Guides

Instructions

Mise - Tool Management

Managing development tool versions across projects with Mise as a unified version manager.

Basic Tool Installation

Installing Tools
# Install specific version
mise install node@20.10.0
mise install python@3.12.0
mise install rust@1.75.0

# Install latest version
mise install node@latest
mise install python@latest

# Install from .tool-versions or mise.toml
mise install
Setting Tool Versions
# Set global version
mise use --global node@20

# Set project version
mise use node@20.10.0
mise use python@3.12 rust@1.75

# Use latest
mise use node@latest

Tool Configuration in mise.toml

Basic Tool Definitions
# mise.toml
[tools]
node = "20.10.0"
python = "3.12.0"
rust = "1.75.0"
terraform = "1.6.0"
Version Prefixes
[tools]
# Latest patch version
node = "20.10"

# Latest minor version
node = "20"

# Latest version
node = "latest"

# Prefix notation
terraform = "1.6"  # Latest 1.6.x
Multiple Versions
[tools]
# Use multiple versions
node = ["20.10.0", "18.19.0"]
python = ["3.12", "3.11", "3.10"]
# Switch between versions
mise shell node@18.19.0

Tool-Specific Configuration

Node.js Configuration
[tools]
node = { version = "20.10.0", postinstall = "corepack enable" }
Python with Virtual Environments
[tools]
python = "3.12"

[env]
_.python.venv = { path = ".venv", create = true }
Custom Tool Sources
[tools]
# From specific registry
"cargo:eza" = "latest"
"npm:typescript" = "5.3"

# From git repository
my-tool = "git:https://github.com/org/tool.git"

Supported Languages & Tools

Core Tools
[tools]
# Languages
bun = "1.0"
deno = "1.38"
elixir = "1.15"
erlang = "26.1"
go = "1.21"
java = "21"
node = "20.10"
python = "3.12"
ruby = "3.3"
rust = "1.75"
zig = "0.11"

# Infrastructure
terraform = "1.6"
kubectl = "1.28"
awscli = "2.13"
Package Managers
[tools]
"npm:pnpm" = "8.10"
"npm:yarn" = "4.0"
"cargo:cargo-binstall" = "latest"
"go:github.com/golangci/golangci-lint/cmd/golangci-lint" = "latest"

Tool Version Strategies

Lock to Specific Versions
# Production: Pin exact versions
[tools]
node = "20.10.0"
terraform = "1.6.4"
Use Ranges for Flexibility
# Development: Use minor version ranges
[tools]
node = "20"      # Any 20.x
python = "3.12"  # Any 3.12.x
Latest for Experimentation
# Experimental projects
[tools]
rust = "latest"
bun = "latest"

Managing Tool Aliases

Creating Aliases
# Set alias for current directory
mise alias set node lts 20.10.0

# Set global alias
mise alias set --global python3 python@3.12
Using Aliases in Configuration
[tools]
node = "lts"
python = "3.12"

Tool Verification

Check Installed Tools
# List installed tools
mise list

# Check current versions
mise current

# Verify tool installation
mise doctor
Tool Information
# Show tool details
mise ls-remote node

# List available versions
mise ls-remote python

# Check latest version
mise latest node

Migration from Other Version Managers

From asdf
# Mise reads .tool-versions files
cat .tool-versions
# nodejs 20.10.0
# python 3.12.0

# Migrate to mise.toml
mise use node@20.10.0 python@3.12.0
From nvm
# Read from .nvmrc
cat .nvmrc
# 20.10.0

mise use node@$(cat .nvmrc)
From pyenv
# Read from .python-version
mise use python@$(cat .python-version)

Best Practices

Pin Production Dependencies
# Good: Explicit production versions
[tools]
node = "20.10.0"
terraform = "1.6.4"
postgres = "16.1"
Document Required Tools
# mise.toml - All project dependencies in one place
[tools]
node = "20.10.0"
python = "3.12.0"
terraform = "1.6.4"
kubectl = "1.28.0"

[env]
PROJECT_NAME = "my-app"
Use Tool-Specific Settings
[tools]
# Enable corepack for package managers
node = { version = "20.10.0", postinstall = "corepack enable" }

# Create Python virtual environment
python = { version = "3.12", venv = ".venv" }
Verify Tool Installation
# In CI/CD pipelines
mise install --check
mise doctor

# Verify specific tools
mise current node
mise current python

Common Patterns

Monorepo Tool Management
# Root mise.toml - shared tools
[tools]
node = "20.10.0"
terraform = "1.6.4"

# packages/api/mise.toml - additional tools
[tools]
"npm:typescript" = "5.3"
"npm:prisma" = "5.7"

# packages/web/mise.toml
[tools]
"npm:next" = "14.0"
Development vs Production
# mise.toml - production tools
[tools]
node = "20.10.0"
postgres = "16.1"

# mise.local.toml - development tools (gitignored)
[tools]
"npm:nodemon" = "latest"
"cargo:cargo-watch" = "latest"
Tool Updates Strategy
# Check for updates
mise outdated

# Update to latest patch version
mise upgrade node

# Update all tools
mise upgrade

# Update with constraints
mise use node@20  # Updates to latest 20.x

Anti-Patterns

Don't Mix Version Managers
# Bad: Using multiple version managers
nvm use 20
mise use node@20  # Conflicts

# Good: Use only Mise
mise use node@20
Don't Hardcode Tool Paths
# Bad: Hardcoded paths
/Users/me/.local/share/mise/installs/node/20.10.0/bin/node

# Good: Use mise shims or mise exec
mise exec -- node
mise x -- node
Don't Skip Version Constraints
# Bad: No version specified
[tools]
node = "latest"  # Can break on updates

# Good: Specify constraints
[tools]
node = "20.10.0"  # Explicit
# OR
node = "20"  # Controlled range
Don't Ignore Tool Dependencies
# Bad: Missing required tools
[tools]
terraform = "1.6"
# Missing: kubectl, helm for deployment

# Good: Include all dependencies
[tools]
terraform = "1.6.4"
kubectl = "1.28.0"
helm = "3.13.0"

Advanced Patterns

Conditional Tool Installation
[tools]
# Install based on platform
node = "20.10.0"
python = "3.12"

# Platform-specific tools
[tools."cargo:watchexec-cli"]
platforms = ["linux", "darwin"]
version = "latest"
Tool Installation Hooks
[tools]
node = {
  version = "20.10.0",
  postinstall = '''
    corepack enable
    npm install -g npm@latest
  '''
}
Backend Selection
# Use specific backend for tools
[tools]
# Use core backend (faster)
node = "core:20.10.0"

# Use asdf plugin
ruby = "asdf:3.3.0"

Related Skills

  • task-configuration: Defining tasks that use managed tools
  • environment-management: Managing environment variables with tools

Exemples

Consultez les exemples du dépôt source.

Voir la source ↗

Historique source

Date d’indexation
2026-01-20
Mise à jour de l’index
2026-02-04
Branch
main

Les dates concernent ce répertoire. Consultez le dépôt pour l’historique du code.

GitHub ↗

chat Comments (0)

chat_bubble_outline

No comments yet. Be the first to share your thoughts!