Skip to content

Tools

in-1 installs anything that has a <tool>.mk file in the makes repo; over 100 languages and tools including:

  • Languages: rust, go, node, python, ruby, perl, java, zig, crystal, elixir, erlang, haskell (ghc), julia, nim, ocaml, raku, swift, and many more
  • Clojure family: clojure, babashka, janet, joker, lein
  • Tools: jq, yq, gh, cmake, shellcheck, pandoc, wasmtime, docker-compose, ...

Browse the sortable installables list or see the current list in your terminal with:

in-1 --list

You can also browse the *.mk files in the makes repo.

Versions

Every tool has a default version defined in its .mk file. Pin a different one with @VERSION:

source <(curl -sL in-1.cc) go@1.23.4

Versions coexist: each installs under <prefix>/share/<tool>/<version>, and the pinned example above puts both go and go-1.23.4 on your PATH.

Aliases

A tool can also be requested by a command name it provides, for example cargo (installs rust) or bb (installs babashka). in-1 --list shows the aliases along with the tools.

Adding a tool

Add a <tool>.mk to the makes repo; in-1 picks it up automatically. Command aliases and a tool's primary command live in config.yaml, which generates share/tools.mk.