Bast

Installation

Install Bast on macOS, Linux, or Windows 11.

Choose the installation method for your operating system.

Downloads the latest build for your architecture, verifies the SHA-256 checksum, and installs to ~/.local/bin by default. Run the same command again to update. It skips the download when you are already on the requested version.

curl -fsSL https://bast.sh/install | sh

Set BAST_INSTALL_DIR to install somewhere else.

Pin a GitHub release. Put the version on sh, not on curl, so the installer sees it:

curl -fsSL https://bast.sh/install | BAST_VERSION=v0.9.1 sh

bast update still installs the latest stable build. Re-run the pinned command to stay on that version.

Make sure the install directory is on your PATH, then run bast.

Linux packages

Adds the signed Bast repository at packages.bast.sh and installs bast into /usr/bin. Updates come from your package manager, not bast update.

curl -fsSL https://packages.bast.sh/setup.sh | sudo sh

Pass apt, dnf, zypper, pacman, or apk if you do not want distro detection:

curl -fsSL https://packages.bast.sh/setup.sh | sudo sh -s -- apt

Once the repo is configured:

sudo apt install bast
sudo dnf install bast
sudo pacman -S bast
sudo apk add bast

Arch users can also install the community AUR package:

yay -S bast-bin

Debian/Ubuntu .deb and Fedora/RHEL .rpm files are also attached to each GitHub release if you prefer dpkg -i / rpm -i without adding the repo.

Homebrew

Compiles from source using Homebrew's Go toolchain. Homebrew installs the current formula only.

brew install ellipse-software/tap/bast

An older formula revision can be copied into a personal tap with brew extract:

brew tap-new "$USER/bast-old"
brew extract --version=0.9.1 ellipse-software/tap/bast "$USER/bast-old"
brew install "$USER/bast-old/[email protected]"

Windows 11

Run the PowerShell installer as your normal user. It verifies the release checksum and Authenticode signature, installs to %LOCALAPPDATA%\Programs\Bast, and adds that directory to your user PATH.

irm https://bast.sh/install.ps1 | iex

Set BAST_INSTALL_DIR before running the installer to choose another location.

Pin a release in the same PowerShell session. Windows builds start at v0.9.0:

$env:BAST_VERSION = "v0.9.1"
irm https://bast.sh/install.ps1 | iex

Bast requires the Windows OpenSSH Client commands ssh, ssh-keygen, and ssh-add on PATH. Install OpenSSH Client from Windows Optional Features if those commands are unavailable.

WSL

Run the Linux installer inside WSL. Native Windows and WSL have separate home directories, SSH configuration, and Bast state. Use Vault when you want Bast-managed hosts and keys on both sides.

Nightly channel

Nightly builds track the latest master commit and install to the same bast command as stable releases. Only one channel can be active at a time. Running either installer uninstalls the other channel first (including a Homebrew install of the other formula), then installs the requested channel.

curl -fsSL https://bast.sh/install-nightly | sh

Homebrew:

brew install ellipse-software/tap/bast-nightly

Windows 11:

irm https://bast.sh/install-nightly.ps1 | iex
$env:BAST_NIGHTLY_VERSION = "nightly.20260819.208d070"
irm https://bast.sh/install-nightly.ps1 | iex

Pin a specific nightly tag:

curl -fsSL https://bast.sh/install-nightly | BAST_NIGHTLY_VERSION=nightly.20260819.208d070 sh

Run the same commands again to update. Use bast update for script installs on either channel. That always moves to the latest build on the channel, including after a pinned install.

From source

Requires Go 1.26+:

git clone https://github.com/ellipse-software/bast.git
cd bast/apps/bast
go build -trimpath -o bast .

Installer requirements

The macOS/Linux script needs curl, grep, tar, and shasum or sha256sum.

The Windows installer needs PowerShell 5.1 or later.

After install

Run bast to open the host picker. Run bast update to update copies installed via the script. Package-managed copies update with apt, dnf, pacman, or apk (see Updates).

The script installers and Homebrew enable tab completion. Open a new terminal after install. Opt out with BAST_NO_COMPLETIONS=1. See Shell completions.

On this page