mise/Q/How can I run mise commands to update pinned global dev tools using aqua and a mise Task
How can I run mise commands to update pinned global dev tools (for example under ~/.config/mise/mise.toml) using mise/Backend/aqua, and define a mise/tasks task that bumps all pinned versions?
Answer
- AI/Response
- Inspect what is stale: run mise/outdated (optionally with
mise outdated --json for scripting). That lists tools whose installed versions lag the resolved target for each entry in the merged config. - Upgrade while rewriting pins: run mise/upgrade/--bump (alias
mise up --bump). That installs newer versions and updates the version fields in the relevant mise.toml / config.toml files, keeping the same precision as before (for example a pin of 20 can become 22, not necessarily a full semver triple unless you already pinned that tightly). See the mise upgrade docs. - Preview only: use
mise upgrade --dry-run --bump (or mise upgrade --dry-run-code --bump in automation when you want a non-zero exit if anything is outdated). - Global vs project scope: the
mise upgrade flag --local restricts work to project-local config and skips tools that only appear in global config (see --local on src/cli/upgrade.rs). To bump pins that live under ~/.config/mise/ (for example config.toml or mise.toml, both appear in the default config filename list in src/config/mod.rs), do not pass --local; run the command with your usual merged config active. A local git checkout of jdx/mise uses the same paths (src/cli/upgrade.rs, src/config/mod.rs) as those links. - aqua-backed tools: ensure each tool is actually resolved through aqua (for example via
[settings] / experimental backend defaults or per-tool aqua:... style entries as described in the aqua backend documentation). mise upgrade --bump is backend-agnostic once the tool is in the config; aqua affects resolution and checksum policy, not the bump mechanism itself. - Task pattern: add a task to the same global config file (or another file mise always loads) with a
run command that chains what you want, for example only bumping: run = "mise upgrade --bump", or staging checks first: run = "mise outdated && mise upgrade --bump". Invoke it with mise run <taskname> from any directory once the task is discoverable through mise’s config merge order. - Optional narrowing: upgrade a single tool with
mise upgrade <tool> --bump, exclude tools with mise upgrade --bump --exclude <tool>, or use mise upgrade --interactive for a menu-driven bump.