// the find
jdx/mise
dev tools, env vars, task runner
mise is a polyglot dev tool version manager, env var manager, and task runner—essentially asdf + direnv + make in one fast Rust binary. It targets developers who work across multiple languages/projects and want a single config file (mise.toml) to pin tool versions, set environment variables, and define build tasks. Active development, 27k stars, and daily releases signal a healthy project.
- Uses real PATH manipulation instead of shims for most tools, so 'which node' gives you an actual binary path—this avoids the subtle breakage shim-based tools cause with scripts and IDEs.
- Plugin ecosystem is genuinely wide: supports asdf plugins, vfox (Lua-based) plugins, aqua registry, and a built-in registry covering hundreds of tools. Bundling aqua-registry and vfox as workspace crates means you get a huge tool catalog without network calls for plugin metadata.
- The task runner is more capable than it looks—supports task dependencies, parallel execution, and TOML-native task definitions, which beats maintaining a separate Makefile for most projects.
- Security story is above average for this category: SOPS/age-encrypted env vars via rops, sigstore verification for tool downloads, minisign/zipsign artifact verification, and landlock/seccomp sandboxing on Linux.
- GitHub Issues are disabled in favor of Discussions, which is an organizational choice that frustrates users trying to report bugs with a clear reproduction—search across discussions is worse than across issues, and triage tooling is weaker.
- The dependency list is enormous (rattler, gix, tera, age, aws-sdk, rmcp for MCP server…). Compile times from source are brutal and the binary is large. The breadth of features means surface area for breakage is high.
- Windows support exists but is clearly second-class—several core behaviors (exec() for process replacement, landlock, some shell integrations) are Unix-only, and the shim crate suggests the 'no shims' story doesn't fully hold on Windows.
- Task runner lacks the maturity of dedicated tools: no built-in file change watching, no incremental build awareness, and task definitions are limited compared to Taskfile or even a proper Makefile—fine for simple scripts, but you'll hit walls on larger monorepos.