Install

Put bothy and Nix on your machine in two commands.

bothy is in beta. bothy.yaml and the commands can change between releases until version 1.0. See bothy is in beta.

Requirements

  • Linux on x86_64, WSL2 included, or macOS on Apple silicon.
  • bash, zsh or fish as your shell.
  • curl, and permission to use sudo one time, for the Nix installer.

You do not need Nix before you start. bothy installs it.

Install bothy

  1. Install the binary:

    curl -fsSL https://usebothy.dev/install.sh | bash

    The script downloads the latest release for your machine, makes sure that it matches its checksum, and puts it in ~/.local/bin.

  2. Set the machine up:

    bothy install

    This installs Nix if you do not have it. Then it adds the bothy hook to the rc file of your shell, for example ~/.zshrc. The Nix installer asks for sudo one time.

  3. Open a new shell.

  4. Make sure that bothy works:

    bothy --version

Then go to Getting started.

What the install changes

  • ~/.local/bin/bothy, the binary.
  • One line at the end of the rc file of your shell. The line loads the hook. The hook also gives you Tab completion for commands and service names.
  • Nix, in /nix, if you did not have it. bothy uses the pinned Determinate Systems installer, and makes sure that the installer matches its digest before it runs.

bothy does not edit nix.conf. It passes the Nix settings that it needs on each command.

If your machine is different

  • If you already have Nix, bothy uses it as it is.

  • If ~/.local/bin is not on your PATH, the script tells you. Add it, then run bothy install.

  • To put the binary in another directory, set BOTHY_INSTALL_DIR before you run the script.

  • If you want Tab completion without the hook, add one of these lines to your rc file:

    eval "$(COMPLETE=bash bothy)"     # ~/.bashrc
    eval "$(COMPLETE=zsh bothy)"      # ~/.zshrc, after compinit
    COMPLETE=fish bothy | source      # config.fish
  • On an Intel Mac, or on Linux on ARM, there is no release yet. The install script stops and tells you so.

Uninstall

bothy uninstall

This stops every service that bothy runs, removes the hook line, and then removes Nix. To keep Nix, run bothy uninstall hook instead, and delete ~/.local/bin/bothy.