ScriptsApr 8, 2026·2 min read

Mise — Dev Environment Manager for AI Projects

Universal dev tool version manager replacing nvm, pyenv, and rbenv. Mise manages Node.js, Python, Go, Rust, and 100+ tools with project-level version pinning and env vars.

SC
Script Depot · Community
Quick Use

Use it first, then decide how deep to go

This block should tell both the user and the agent what to copy, install, and apply first.

# Install
curl https://mise.run | sh

# Use Node.js 22
mise use node@22

# Use Python 3.12
mise use python@3.12

# Pin versions per project
cd my-project
mise use node@20 python@3.11
# Creates .mise.toml — team members get same versions

What is Mise?

Mise (pronounced "meez") is a universal dev tool version manager that replaces nvm, pyenv, rbenv, and dozens of other version managers with a single tool. It manages 100+ languages and tools with project-level version pinning, environment variables, and task running. For AI projects that need specific Python, Node.js, and tool versions, mise ensures everyone on the team uses the same setup.

Answer-Ready: Mise is a universal dev tool manager replacing nvm/pyenv/rbenv. Manages 100+ tools (Node.js, Python, Go, Rust, etc.) with project-level version pinning. Also handles env vars and task running. Written in Rust, blazing fast. 13k+ GitHub stars.

Best for: Teams needing consistent dev environments across AI projects. Works with: Any language, any tool, any OS. Setup time: Under 2 minutes.

Core Features

1. Universal Version Management

mise use node@22          # Node.js
mise use python@3.12      # Python
mise use go@1.22          # Go
mise use rust@1.78        # Rust
mise use java@21          # Java
mise use terraform@1.8    # Terraform
mise use kubectl@1.30     # kubectl
# 100+ more tools supported

2. Project-Level Pinning (.mise.toml)

# .mise.toml (commit to git!)
[tools]
node = "20"
python = "3.11"
uv = "latest"

[env]
DATABASE_URL = "postgresql://localhost/mydb"
NODE_ENV = "development"

[tasks.dev]
run = "npm run dev"

[tasks.test]
run = "pytest"

3. Environment Variables

[env]
API_KEY = "{{env.API_KEY}}"
DATABASE_URL = "postgresql://localhost/{{env.DB_NAME}}"

4. Task Runner

mise run dev      # npm run dev
mise run test     # pytest
mise run lint     # eslint + ruff
[tasks.lint]
depends = ["lint:js", "lint:py"]

[tasks."lint:js"]
run = "npx eslint src/"

[tasks."lint:py"]
run = "ruff check ."

5. Speed (Rust)

Operation mise nvm pyenv
Shell startup <1ms ~200ms ~150ms
Version switch Instant ~100ms ~500ms
Install Fast Moderate Slow

Mise vs Alternatives

Feature Mise nvm+pyenv asdf Volta
Languages 100+ 1 each 100+ Node only
Speed Rust-fast Slow Shell-slow Fast
Env vars Yes No No No
Task runner Yes No No No
Config .mise.toml .nvmrc/.python-version .tool-versions package.json

AI Project Example

# .mise.toml for a typical AI project
[tools]
python = "3.11"
node = "20"
uv = "latest"

[env]
OPENAI_API_KEY = "{{env.OPENAI_API_KEY}}"
ANTHROPIC_API_KEY = "{{env.ANTHROPIC_API_KEY}}"

[tasks.install]
run = "uv pip install -r requirements.txt && npm install"

[tasks.dev]
run = "python main.py"

[tasks.test]
run = "pytest tests/"

FAQ

Q: Does it replace Docker for dev environments? A: For language/tool versions, yes. For full environment isolation (databases, services), Docker is still needed.

Q: Is .mise.toml compatible with .tool-versions? A: Yes, mise reads .tool-versions (asdf format), .nvmrc, and .python-version files.

Q: Does Claude Code work with mise? A: Yes, mise-managed tools are available in Claude Code's terminal. Just ensure mise is activated in your shell profile.

🙏

Source & Thanks

Created by Jeff Dickey. Licensed under MIT.

jdx/mise — 13k+ stars

Discussion

Sign in to join the discussion.
No comments yet. Be the first to share your thoughts.

Related Assets