bt evalis currently Unix-only (Linux/macOS). Windows support is planned.
Unix-like systems:
curl -fsSL https://github.com/braintrustdata/bt/releases/latest/download/bt-installer.sh | shWindows (PowerShell):
powershell -ExecutionPolicy Bypass -c "irm https://github.com/braintrustdata/bt/releases/latest/download/bt-installer.ps1 | iex"Unix-like systems:
curl -fsSL https://github.com/braintrustdata/bt/releases/download/canary/bt-installer.sh | shWindows (PowerShell):
powershell -ExecutionPolicy Bypass -c "irm https://github.com/braintrustdata/bt/releases/download/canary/bt-installer.ps1 | iex"Branch canary aliases are published as canary-<branch-slug>, where <branch-slug> is:
- lowercased branch name
- non-alphanumeric runs replaced with
- - leading/trailing
-removed - truncated to 40 chars
Example for branch feature/sql-v2: alias tag canary-feature-sql-v2.
Unix-like systems:
curl -fsSL https://github.com/braintrustdata/bt/releases/download/canary-<branch-slug>/bt-installer.sh | shWindows (PowerShell):
powershell -ExecutionPolicy Bypass -c "irm https://github.com/braintrustdata/bt/releases/download/canary-<branch-slug>/bt-installer.ps1 | iex"Exact canary builds are published as:
canary-<shortsha>formaincanary-<branch-slug>-<shortsha>for non-main branches
Use those tags in /releases/download/<tag>/... to pin an install.
bt --versionOn first install, open a new shell if bt is not found immediately.
For manual archive installs, verify checksums before extracting:
curl -fsSL -O "https://github.com/braintrustdata/bt/releases/download/<tag>/bt-<target>.tar.gz"
curl -fsSL -O "https://github.com/braintrustdata/bt/releases/download/<tag>/bt-<target>.tar.gz.sha256"
shasum -a 256 -c "bt-<target>.tar.gz.sha256"bt can self-update when installed via the official installer.
# install latest stable
bt self update
# check without installing
bt self update --check
# switch/update to latest mainline canary
bt self update --channel canaryIf bt was installed via another package manager (Homebrew, apt, choco, etc), use that package manager to update instead.
Unix-like systems:
rm -f "${CARGO_HOME:-$HOME/.cargo}/bin/bt"
rm -rf "$HOME/.config/bt"
hash -rWindows (PowerShell):
$cargoHome = if ($env:CARGO_HOME) { $env:CARGO_HOME } else { Join-Path $HOME ".cargo" }
Remove-Item -Force (Join-Path $cargoHome "bin\\bt.exe") -ErrorAction SilentlyContinue
Remove-Item -Recurse -Force (Join-Path $env:APPDATA "bt") -ErrorAction SilentlyContinue- If
btis not found after install, start a new shell or add${CARGO_HOME:-$HOME/.cargo}/binto yourPATH. - If
bt self update --checkhits GitHub API limits in CI, setGITHUB_TOKENin the environment. - If your network blocks GitHub asset downloads, install from a machine with direct access or configure your proxy/firewall to allow
github.comandapi.github.com.
- By default,
bt evalauto-detects a JavaScript runner from your project (tsx,vite-node,ts-node, thents-node-esm). - You can also set a runner explicitly with
--runner:bt eval --runner vite-node tutorial.eval.tsbt eval --runner tsx tutorial.eval.ts
- You do not need to pass a full path for common runners;
btresolves localnode_modules/.binentries automatically. - If eval execution fails with ESM/top-level-await related errors, retry with:
bt eval --runner vite-node tutorial.eval.ts
- Add richer channel controls for self-update (for example pinned/branch canary selection).
- Expand release verification and smoke tests for installer flows across more architectures/environments.
- Add
bt evalsupport on Windows (today,bt evalis Unix-only due to Unix socket usage). - Add signed artifact verification guidance (signature flow) in install and upgrade docs.