repoke

Todos los gestores de paquetes de tu máquina, un solo comando.

repoke encuentra Homebrew, npm, pnpm, pip, cargo, apt, winget y el resto de lo que tienes instalado, te dice qué está desactualizado y actualiza lo que elijas. En una terminal pregunta antes. En scripts, tareas programadas y agentes de IA funciona sin preguntar y responde en JSON.

Instalar

Última versión: v0.2.1 · novedades

brew tap paveldelpozo/tap && brew trust paveldelpozo/tap
brew install repoke

o con Rust

cargo install repoke

O descarga el binario para macOS, Linux o Windows desde las releases. repoke self-update lo mantiene al día.

Encuentra lo que usas

repoke busca todos los gestores que conoce y salta los que no están. Esto es repoke list en el Mac donde se escribe repoke:

brew      Homebrew                  7.0.11-24-g2833c25
mas       Mac App Store             not found
npm       npm (global)              12.2.1
pnpm      pnpm (global)             12.15.0
fnm       fnm (Node.js)             1.39.0
nvm       nvm (Node.js)             not found
pip       pip (user)                26.2.2
uv        uv (tools)                0.13.6
cargo     cargo (installed crates)  1.99.1
rustup    rustup (toolchains)       1.29.2
gem       RubyGems                  not found
composer  Composer (global)         2.10.2
mise      mise (tools)              not found
omz       oh-my-zsh                 17a2b4c
vscode    VS Code extensions        1.143.1

Sistema

Homebrew, Mac App Store, APT, DNF, pacman, zypper, Snap, Flatpak, WinGet, Scoop, Chocolatey

Lenguajes y herramientas

Paquetes globales de npm y pnpm, Node con fnm o nvm, pip, uv, cargo, rustup, RubyGems, Composer, mise

Las dos últimas líneas de arriba son plugins, que es como entra todo lo demás.

Primero consulta, luego actualiza lo que elijas

repoke check                    # qué está desactualizado; no cambia nada
repoke upgrade                  # elige de una lista, con todo marcado
repoke upgrade --dry-run        # los comandos que lanzaría
repoke upgrade --hold eslint    # deja un paquete como está

Cada paquete tiene su línea con el resultado y lo que tardó, y un fallo enseña el comando con el final de su salida. Los gestores se consultan a la vez y se actualizan uno detrás de otro. npm instala la versión exacta que ha listado, así que una release más nueva no puede romper el Node que tienes. Las versiones de Node de fnm o nvm suben a la última de su misma versión mayor y se llevan tus paquetes globales.

Una máquina nueva, y actualizaciones mientras duermes

repoke export                 # lo que instalaste, y tu configuración si quieres
repoke init --from foto       # en la máquina nueva, solo lo que falta
repoke init                   # o elige herramientas de un catálogo

Los valores que parecen secretos, como los tokens de registro de .npmrc, se quitan antes de guardar la foto, y al restaurar nunca se sustituye un fichero tuyo sin preguntar antes y guardar una copia.

repoke schedule install                 # cada día a las 03:00, actualiza lo que no pide sudo
repoke schedule install --check-only    # o solo consulta, y avisa
repoke schedule status                  # cuándo se ejecuta, y cómo fue la última vez
repoke schedule run                     # ejecutar la tarea ahora
repoke schedule remove

La programación usa el planificador del propio sistema: launchd en macOS, un temporizador de systemd en Linux y el Programador de tareas en Windows. Si la máquina estaba dormida a esa hora, la tarea se ejecuta al despertar. Cada ejecución guarda su salida y un historial, y recibes una notificación del sistema cuando se actualizó algo, algo falló o hay algo pendiente.

Para scripts, agentes y plugins

repoke check --json                     # sale con 100 si hay algo desactualizado
repoke upgrade --yes --no-sudo --json   # un evento JSON por línea
repoke mcp                              # servidor MCP por stdio

Sin terminal, repoke nunca se queda esperando una respuesta: un gestor que pide contraseña se salta o falla en el momento. repoke mcp da a los agentes de IA cuatro herramientas: list_managers, check_updates, upgrade y schedule_status. upgrade solo previsualiza hasta que se le indica lo contrario, y nunca usa sudo. En Claude Code:

/plugin install repoke --marketplace paveldelpozo/repoke

Codex y otros clientes MCP ejecutan repoke mcp como servidor por stdio; la referencia tiene la configuración.

repoke plugin search            # plugins oficiales: oh-my-zsh, extensiones de VS Code…
repoke plugin install vscode    # enseña su código y pregunta antes de instalar
repoke plugin new mi-herramienta   # empieza el tuyo desde una plantilla

Cualquier otro gestor se puede añadir con un fichero TOML o un ejecutable pequeño. La guía de plugins explica las dos formas.

Todos los comandos

listLos gestores que repoke admite aquí, instalados o no
checkLo que está desactualizado, sin cambiar nada
upgradeActualiza lo que elijas, o todo con --yes
exportGuarda lo instalado, y tu configuración, para restaurarlo en otra máquina
initPrepara una máquina a partir de una foto o de un catálogo
scheduleinstall, status, run y remove de una ejecución periódica
self-updateActualiza el propio repoke
mcpOfrece las herramientas de repoke a los agentes de IA
pluginlist, new, search, install y remove de plugins

La referencia de comandos tiene todas las opciones, el fichero de configuración, la salida JSON y los códigos de salida.