Skip to content

Instant dev tools for your current shell

Want Rust and Node for a bit, without installing anything on your system? Run this in your shell:

source <(curl -sL in-1.cc) rust node
curl -sL in-1.cc | source - rust node

That clones in-1 to /tmp/in-1/bootstrap, installs tools in the selected prefix, and sets up PATH, MANPATH, shell completion and any tool environment variables in your current shell, for the duration of the shell session.

On a fresh machine the prefix is ${TMPDIR:-/tmp}/in-1. With in-1 already installed, tools land alongside its public command wrapper. Use --temp to force temporary installs, or --local for a persistent prefix. Downloads stay cached, so asking again is fast.

What you get

  • Over 100 tools and languages from the makes project
  • Works on Linux and macOS, Intel and ARM
  • Works in Bash, Zsh and Fish
  • No root, no system packages, no dotfile edits
  • Version pinning: source <(curl -sL in-1.cc) node NODE-VERSION=22.11.0

Keep it around

in-1 is itself one of the tools, so the one-liner gives you the in-1 command too:

source <(curl -sL in-1.cc) in-1
curl -sL in-1.cc | source - in-1

Then you have:

in-1 rust node    # install tools into this shell session
in-1 --list       # see all available tools
in-1 --update     # update in-1
in-1 --help       # or: man in-1
in-1 <TAB><TAB>   # tab completion

Want a tool to stick around for good?

in-1 --local rust node
in-1 --local in-1       # the in-1 command itself

installs it under ~/.local (or /usr/local when root).

Learn more

  • Install walks through all three ways to use in-1, and how to update or remove it
  • Usage covers every option and environment variable
  • Design explains how it works under the hood
  • The in-1 source is a few hundred lines of shell on top of makes