Saltar al contenido principal
MDev Env Pro
Guía: Guía Mise - Adiós nvm/pyenv69% Completado

En este módulo aprenderás:

  • Descubre backends aqua, ubi, vfox, asdf y crea tus propios plugins en mise para cualquier binario.
  • Comandos y configuraciones clave para 09. Backends Locos y Plugins Propios
  • Ejercicios prácticos listos para probar en tu terminal local

Habla causa: Más allá de Node y Python con Backends Avanzados

Habla causita, si pensabas que mise solo servía para instalar Node, Python y Go, te estás perdiendo la mitad de la fiesta. Mientras otros están renegando gratis compilando herramientas a mano o metiendo scripts raros a su ~/.local/bin, en mise puedes jalar cualquier binario de GitHub o registro global usando sus backends políglotas.

En tu chamba diaria no solo necesitas lenguajes; necesitas CLIs de infraestructura, linters, herramientas de formateo y utilidades que normalmente instalas con brew, apt o compilando en tu jato.

Backends: core, aqua, ubi, vfox, asdfDescargas directas de GitHub ReleasesSoporte universal de plugins

1. El Universo de Backends en mise

mise cuenta con un sistema modular que sabe cómo descargar binarios de múltiples orígenes sin que tengas que configurar nada extra:

Backend Prefijo Ejemplo de Uso ¿Cuándo usarlo, mano?
Core core: o directo mise use node@24 Lenguajes soportados nativamente en Rust
Aqua aqua: mise use aqua:cli/cli Binarios multiplataforma empaquetados por el registro Aqua
UBI (Universal Binary Installer) ubi: mise use ubi:astral-sh/ruff Descarga directa de releases de GitHub sin intermediarios
vfox vfox: mise use vfox:version-fox/vfox-nodejs Plugins del ecosistema Version Fox
asdf asdf: mise use asdf:owner/repo Los miles de plugins heredados de la comunidad asdf
Cargo / npm / Go / pipx cargo:, npm:, go:, pipx: mise use npm:prettier Paquetes de gestores de dependencias

2. Backends en Acción: Aqua y UBI

¿Quieres instalar el CLI de GitHub (gh) o el linter ultrarrápido de Python (ruff) sin tocar apt, brew ni ensuciar tu sistema operativo? Jálalos de frente:

# Usando el backend de Aqua
mise use aqua:cli/cli@latest

# Usando el backend UBI (descarga binarios de GitHub releases al instante)
mise use ubi:astral-sh/ruff@latest
mise use ubi:BurntSushi/ripgrep@latest

En tu mise.toml queda así de limpio, bacán y versionado:

mise.tomltoml
[tools]
node = "24.15.0"
"aqua:cli/cli" = "2.65.0"
"ubi:astral-sh/ruff" = "0.9.6"
"ubi:jesseduffield/lazygit" = "0.44.1"
"npm:typescript" = "5.7.3"

3. Creando tus Propios Plugins para mise

¿Tu empresa tiene un binario interno o una herramienta privada que no está en ningún registro público? Puedes crear tu propio plugin compatible con la especificación de mise / asdf.

La estructura estándar de un plugin consta de una carpeta con tres scripts ejecutables en bash:

mi-plugin-mise/
├── bin/
│   ├── list-all       # Lista las versiones disponibles
│   ├── download       # Descarga el archivo comprimido (tar.gz/zip)
│   └── install        # Extrae y coloca el binario en la carpeta destino
└── metadata.lua       # (Opcional) Metadatos rápidos

Script 1: bin/list-all

Debe imprimir una lista de versiones separadas por espacios o saltos de línea:

bin/list-allbash
#!/usr/bin/env bash
set -euo pipefail

# Ejemplo: obtener tags de tu repo privado o API
echo "1.0.0"
echo "1.1.0"
echo "2.0.0"

Script 2: bin/download

Recibe $MISE_DOWNLOAD_PATH y $MISE_INSTALL_VERSION:

bin/downloadbash
#!/usr/bin/env bash
set -euo pipefail

VERSION="$MISE_INSTALL_VERSION"
DEST="$MISE_DOWNLOAD_PATH"
OS="$(uname -s | tr '[:upper:]' '[:lower:]')"
ARCH="$(uname -m)"

if [ "$ARCH" = "x86_64" ]; then ARCH="amd64"; fi
if [ "$ARCH" = "aarch64" ]; then ARCH="arm64"; fi

URL="https://mi-empresa.pe/releases/v${VERSION}/mi-cli-${OS}-${ARCH}.tar.gz"

mkdir -p "$DEST"
curl -sSL "$URL" -o "$DEST/archive.tar.gz"
tar -xzf "$DEST/archive.tar.gz" -C "$DEST"
rm "$DEST/archive.tar.gz"

Script 3: bin/install

Recibe $MISE_INSTALL_PATH:

bin/installbash
#!/usr/bin/env bash
set -euo pipefail

mkdir -p "$MISE_INSTALL_PATH/bin"
cp "$MISE_DOWNLOAD_PATH/mi-cli" "$MISE_INSTALL_PATH/bin/mi-cli"
chmod +x "$MISE_INSTALL_PATH/bin/mi-cli"

Para usar tu plugin local o desde un repositorio privado de Git:

# Registrar tu plugin custom
mise plugins install mi-cli https://github.com/mi-empresa/mise-mi-cli.git

# O instalarlo directamente en tu mise.toml
mise use asdf:mi-cli@1.1.0

Reto Ninja de la Lección 🥷

Demuestra que dominas los Backends y Plugins de mise respondiendo este test rápido:

Reto Ninja: Backends & Plugins 🧩
Pregunta 1/3
❯reto --step=1

¿Qué backend de mise te permite descargar binarios directamente desde GitHub Releases sin intermediarios?

Ejercicio Práctico Ninja 🥷

  1. Instala el CLI de GitHub usando el backend de Aqua:
    mise use aqua:cli/cli@latest
  2. Instala el formateador de Python Ruff con el backend UBI:
    mise use ubi:astral-sh/ruff@latest
  3. Verifica que ambos binarios funcionen de frente sin reiniciar tu terminal:
    gh --version && ruff --version
  4. Revisa cómo tu mise.toml ahora gestiona herramientas sin importar de dónde provengan. ¡Un golazo para tu chamba!

¿Terminaste esta lección?

Marca tu progreso para sincronizar el avance en tu navegador.