Bast.sh/Changelog

Changelog

Bast releases from GitHub.

Bast v0.11.0

v0.11.0

Added

  • Open Remote Desktop for an existing host with Ctrl+O. Turn on Open RDP in that host's metadata to show an RDP chip beside Connect. Bast starts the system client and does not take over the terminal.
  • BitQate sync over the public API: import VPS instances as SSH hosts, then start, stop, and restart them from the TUI and CLI. The token is read from BITQATE_TOKEN or ~/.config/bast/bitqate-token and is not written to SSH config or Vault. List and sync need vms:read. Power actions also need vms:power. SSH uses port 22 unless a default port is set. Suspended instances stay distinct from stopped ones and cannot be started from Bast. Instances with no public IPv4 are skipped, and instances removed from the account are removed from the synced SSH config.
  • Railway sync over the GraphQL API: import services as SSH hosts, then create, stop, resume, and delete them from the TUI and CLI. SSH is OpenSSH to ssh.railway.com as the service instance ID, with a key at ~/.ssh/bast/keys/railway. Account and workspace tokens work (RAILWAY_API_TOKEN or ~/.config/bast/railway-api-token). Project tokens are rejected. The token is not written to SSH config or Vault. Delete removes the service from that environment only.
  • Fly.io sync through flyctl: import Machines, then create, stop, start, clone, and destroy them. SSH stays OpenSSH through a local fly proxy tunnel (bast __fly-proxy). Bast does not store a Fly API token. flyctl must be installed and logged in. Cloning a Machine does not copy mounted volumes.
  • DigitalOcean sync through doctl: import Linux Droplets that have a public address, then create, shut down, power on, fork, and delete them. bast do is an alias of bast digitalocean. Fork snapshots are deleted after the new Droplet exists. Shutdown keeps the disk billing until delete. Bast does not store a DigitalOcean token. doctl auth contexts select the account.

Changes

  • Host forms save with Ctrl+S, or Cmd+S on macOS. Ctrl+Enter still saves.
  • In the host list, Right expands the focused group and Left collapses it. Left on a host, or on a group that is already collapsed, moves to the parent group.

Fixed

  • Sync tab Nerd Font icons render in nested WezTerm, Ghostty, and iTerm sessions, and on narrow provider tiles.

Get started at https://bast.sh or update with bast update.

Bast v0.10.3

v0.10.3
  • Migrated ASCII Box to Boat across sync, sandbox lifecycle commands, SSH preparation, and diagnostics. Use bast boat and bast sync boat; previous commands remain aliases. Existing host aliases, metadata, and sync preferences migrate automatically.
  • Minor bug fixes and improvements to Bast's TUI and CLI.

Get started at https://bast.sh or update with bast update.

Bast v0.10.2

v0.10.2
  • Minor bug fixes and improvements to Bast's TUI and CLI.

Get started at https://bast.sh or update with bast update.

Bast v0.10.1

v0.10.1
  • Minor bug fixes and improvements to Bast's TUI and CLI.

Get started at https://bast.sh or update with bast update.

Bast v0.10.0

v0.10.0

Added

  • Vercel Sandbox sync and lifecycle: create, stop, resume, fork, and delete through the REST API. Connect uses a WebSocket PTY (bast connect), not OpenSSH. The access token is stored in ~/.config/bast/vercel-token.
  • Host passwords can be stored in Bast and entered on connect. Authentication leads with a key/password picker; User sits on the host hub next to hostname.
  • Files tab preview: press o or Enter on a file for a floating peek at text, JSON, and PDF contents.
  • First TUI launch with no hosts shows a skippable start chooser (add, history, Vault, Sync). Machines that already have SSH hosts skip it. BAST_NO_ONBOARDING=1 disables it. About (v) replays it with o.
  • About includes a Sponsor chip that opens https://bast.sh/sponsor.
  • bast doctor diagnoses SSH config, keys, permissions, and Bast setup. Press D in the TUI (not in Files). --fix repairs the Bast Include and modes OpenSSH will refuse; --json exposes stable finding ids.
  • bast doctor uses the TUI palette on a color terminal (purple headers, red failures, green ok findings). Pipes and NO_COLOR stay plain.
  • Shell completions via bast completion for bash, zsh, fish, PowerShell, Elvish, and Nushell. Tab completes commands, flags, hosts, and keys. The script installers enable this automatically (opt out with BAST_NO_COMPLETIONS=1). Homebrew generates bash, zsh, and fish completions on install.
  • Script installers accept BAST_VERSION (stable) and BAST_NIGHTLY_VERSION (nightly) to install a specific GitHub release.
  • Keys tab: g generates a key, a adds the selected key to a server. The in-app ? overlay, footer hints, and detail chips share one keymap.
  • Homebrew formulae compile Bast from source instead of installing prebuilt release archives.
  • Hetzner Cloud sync over the Cloud API: import servers, match attached SSH keys, then start, ACPI-stop, and restart from the TUI and CLI. Named API tokens (one per project) are stored in ~/.config/bast/hetzner/tokens/ and are never written to SSH config or Vault. Private Cloud Network addresses are used for SSH when there is no public IP, or when Prefer private IP is on. Non-22 SSH ports are detected when 22 is closed, and an existing local host with the same IP supplies user, port, and identity. The Hetzner Cloud group stays hidden while every server is off.

Changed

  • Empty Hosts and Keys tabs use the same first-run seal as Vault, without narrating keybindings.
  • Offline Vercel sandboxes without a snapshot stay off the host list. Cleanup on the Vercel Sync page (or bast vercel cleanup) deletes them after confirmation.
  • Provider groups with no running hosts stay hidden until . reveals stopped or hidden hosts.

Fixed

  • bast doctor finds the ASCII Box CLI at ~/.ascii/bin/box the same way Bast sync does, instead of reporting it missing when box is only a shell function.

Bast v0.9.3

v0.9.3

Added

  • Linux packages for apt, dnf, pacman, and apk: .deb, .rpm, .apk, and Arch packages on GitHub releases, plus a signed repository at https://packages.bast.sh.

Fixed

  • Box stop returns once the box is stopping instead of waiting minutes for the snapshot to finish, and a late sync result can no longer clear a newer in-flight Box operation.
  • Hosts provider group selection fills the highlight under branded labels and icons.
  • Stop, fork, resume, and delete work on a selected sandbox on the Sync provider page, matching Hosts.

Bast v0.9.2

v0.9.2

Added

  • Upstash Box sync and lifecycle: create, pause, resume, fork, and delete through the Box API. The API key is stored in ~/.config/bast/upstash-box-api-key and used as the SSH password.

Changed

  • Unlinked Vault tab shows a first-run seal instead of a two-line stub.
  • Hosts and Vault primary actions sit in a chip row under the title, matching Sync.
  • Hosts detail action chips have a blank line above and below.

Get started at https://bast.sh or update with bast update.

Bast v0.9.1

v0.9.1

Added

  • Sync tab (4) for AWS, GCP, Azure, and box.ascii.dev, separate from Vault.
  • Grid layout in the Sync tab.
  • Improved Vault tab UX.
  • Terms of service dialog for the hosted service.

Fixed

  • Windows PowerShell installer first-run output and telemetry notice.
  • bast update on Windows writes the installer script with a UTF-8 BOM so PowerShell can run it.
  • Inactive VMs from ASCII Box are hidden automatically.
  • Switching between hidden and visible hosts no longer jumps the cursor to the top.

Get started at https://bast.sh or update with bast update.

Bast v0.9.0

v0.9.0

Bast v0.9.0 adds native Windows 11 support alongside macOS and Linux.

Highlights

  • Native Windows AMD64 and ARM64 builds
  • Authenticode-signed Windows executables
  • PowerShell installer with checksum and signature verification
  • Windows-aware SSH configuration, keys, history, Vault, SFTP, and updates
  • WinGet manifests included for submission

Install

Windows 11

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

Windows OpenSSH Client is required.

macOS and Linux

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

Or with Homebrew:

brew install ellipse-software/tap/bast

Windows notes

Native Windows and WSL maintain separate SSH configuration and Bast state. Vault can be used to synchronise Bast-managed hosts and keys between them.

WinGet installation will become available after the manifests are accepted into microsoft/winget-pkgs.

Upgrade

Existing script and Homebrew installations can be upgraded normally:

bast update

Full changelog

compare/v0.8.1...v0.9.0

Bast v0.6.5

v0.6.5

What's Changed

Full Changelog: compare/v0.6.4...v0.6.5

Bast v0.6.0

v0.6.0

What's Changed

Full Changelog: compare/v0.5.0...v0.6.0

Bast v0.3.1

v0.3.1

What's Changed

New Contributors

Full Changelog: compare/v0.3.0...v0.3.1

Install the latest with the command on the homepage.

Install Bast

macOS, Linux, and Windows 11. Uses native OpenSSH, so your config and keys stay where they already are.

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

Latest release v0.11.0