Language Runtimes
All language runtimes are managed by mise, installed as a Homebrew formula. Mise handles downloading, installing, and switching between versions of Node, Python, Java, and other tools.
Managed runtimes
Source: configs/mise/config.toml (symlinked to ~/.config/mise/config.toml).
| Runtime | Version | Notes |
|---|---|---|
node |
lts |
Current LTS release; updated automatically on mise install |
bun |
latest |
Fast JavaScript runtime and bundler |
java |
temurin-17 |
Eclipse Temurin JDK 17 (LTS) |
python |
3.12 |
Used for Ansible and general scripting |
uv |
latest |
Fast Python package installer (replaces pip) |
yarn |
1 |
Yarn Classic; used by projects that have not migrated to v4 |
Why mise
| Alternative | Why not |
|---|---|
| asdf | ~10x slower to resolve and install versions; mise is a drop-in replacement written in Rust |
| fnm | Node-only; does not handle Python, Java, or other runtimes |
| nvm | Node-only and slow; adds noticeable shell startup time |
| proto | Smaller ecosystem; fewer plugins and community support |
Mise is a single tool that replaces asdf, fnm, nvm, pyenv, jenv, and direnv in one binary.
Config location
The global mise config lives at:
configs/mise/config.toml --> ~/.config/mise/config.toml (symlink)The Ansible mise role creates this symlink and runs mise install to ensure all runtimes are present.
Work vs personal separation
Projects under ~/work/ can have their own .mise.toml files for project-specific runtime versions. These files are auto-ignored via .gitignore-work so they never get committed to work repos.
This means you can pin node = "18" in a work project without affecting your global lts setting, and the .mise.toml file stays local to your machine.
Global npm packages
Source: roles/mise/vars/main.yml under npm_global_packages.
These packages are installed globally via the mise-managed Node (LTS):
| Package | Purpose |
|---|---|
diagramkit |
Diagram generation from code |
excalidraw-cli |
Export Excalidraw diagrams from the command line |
vite-plus |
Enhanced Vite dev server |
How to add a runtime
-
Edit
configs/mise/config.tomland add the tool under[tools]:[tools]node = "lts"ruby = "3.3" # <-- new runtime -
Run
mise installto download and install it:Terminal window mise installOr re-run the full playbook:
Terminal window make setup -
Verify it is active:
Terminal window mise lsruby --version
To add a global npm package, add it to roles/mise/vars/main.yml under npm_global_packages and run make setup.