A lightspeed and pluggable toolchain manager for languages and their dependency managers.
Supports Bun, Deno, Node.js (npm, pnpm, yarn), Rust, and Go.
- # Install proto
- curl -fsSL https://moonrepo.dev/install/proto.sh | bash
- # Install Go
- proto install go 1.20
- # Use immediately
- go run .
Backed by
Lightspeed interface
Download, install, and run tools with lightspeed, thanks to our Rust based foundation.
Universal toolchain
Manage multiple languages and dependency managers through a single interface.
Version detection
Detects a version at runtime from a language's ecosystem for maximum compatibility.
Granular configuration
Configure tools and their versions per directory, or per project.
Pluggable architecture
Extend the toolchain with custom plugins, enabling new and non-standard tools.
Get started
Install proto for Linux, macOS, or WSL:
curl -fsSL https://moonrepo.dev/install/proto.sh | bash
Or Windows (full instructions):
irm https://moonrepo.dev/install/proto.ps1 | iex
Install a tool
proto install node 18
Run the tool
node ./main.mjs
# Or with proto
proto run node -- ./main.mjs
Supported tools
Why another version manager?
To start, proto powers moon's toolchain and integrated developer environment. We believed that the toolchain would be extremely beneficial for developers as a whole, and so we extracted proto out into a standalone Rust CLI and Rust crates that moon inherits.
Furthermore, we believe that requiring multiple ad-hoc version managers for all your languages, each with different workflows, CLI commands, and configuration files, is a poor developer experience.
Our goal is to unify all of these into a single performant interface. A toolchain manager is the next step in the version manager evolution.