Background
We ship one binary per platform with no runtime dependency. Everything the tool does can also be done by hand with the commands it prints under a verbosity flag, which is deliberate: a tool you cannot reason about is a tool you cannot debug at two in the morning.
Install
Linux and macOS
curl -fsSL https://devtools-hub.org/install.sh | sh
Go
go install devtools-hub.org/cmd/tool@latest
Private registry
npm install -g @internal/tool --registry https://registry.devtools-hub.org
What it does
Lockfile that is readable
Resolved versions and checksums in a plain, sorted, diffable format. Merge conflicts are resolvable by a human.
No daemon
Nothing runs in the background, nothing watches your filesystem, nothing holds a socket open between invocations.
Verbose dry run
Every action prints the equivalent shell command before it runs. Nothing is hidden behind an abstraction you cannot inspect.
Offline mode
With a warm cache the tool works with no network at all, which matters more in CI than most people expect.
Declarative environments
One file describes the toolchain a repository needs. Checkout, run one command, get the same versions as everyone else.
Hermetic by default
Commands run with an explicit environment. Variables from your shell do not leak in unless you list them.
Read the documentation