bun-types
Version:
Type definitions and documentation for Bun, an incredibly fast JavaScript runtime
366 lines (282 loc) • 9.76 kB
text/mdx
---
title: Installation
description: Install Bun with npm, Homebrew, Docker, or the official script.
---
## Overview
Bun ships as a single, dependency-free executable. You can install it via script, package manager, or Docker across macOS, Linux, and Windows.
<Tip>After installation, verify with `bun --version` and `bun --revision`.</Tip>
## Installation
<Tabs>
<Tab title="macOS & Linux">
<CodeGroup>
```bash curl icon="globe"
curl -fsSL https://bun.com/install | bash
```
</CodeGroup>
<Note>
**Linux users** The `unzip` package is required to install Bun. Use `sudo apt install unzip` to install the unzip package. Kernel version 5.6 or higher is strongly recommended, but the minimum is 5.1. Use `uname -r` to check Kernel version.
</Note>
</Tab>
<Tab title="Windows">
<CodeGroup>
```powershell PowerShell icon="terminal"
powershell -c "irm bun.sh/install.ps1|iex"
```
</CodeGroup>
<Warning>
Bun requires Windows 10 version 1809 or later.
</Warning>
For support and discussion, please join the **#windows** channel on our [Discord](https://bun.com/discord).
</Tab>
<Tab title="Package Managers">
<CodeGroup>
```bash npm icon="npm"
npm install -g bun # the last `npm` command you'll ever need
```
```bash Homebrew icon="/icons/homebrew.svg"
brew install oven-sh/bun/bun
```
```bash Scoop icon="terminal"
scoop install bun
```
</CodeGroup>
</Tab>
<Tab title="Docker">
Bun provides a Docker image that supports both Linux x64 and arm64.
```bash Docker icon="docker"
docker pull oven/bun
docker run --rm --init --ulimit memlock=-1:-1 oven/bun
```
### Image Variants
There are also image variants for different operating systems:
```bash Docker icon="docker"
docker pull oven/bun:debian
docker pull oven/bun:slim
docker pull oven/bun:distroless
docker pull oven/bun:alpine
```
</Tab>
</Tabs>
To check that Bun was installed successfully, open a new terminal window and run:
```bash terminal icon="terminal"
bun --version
# Output: 1.x.y
# See the precise commit of `oven-sh/bun` that you're using
bun --revision
# Output: 1.x.y+b7982ac13189
```
<Warning>
If you've installed Bun but are seeing a `command not found` error, you may have to manually add the installation
directory (`~/.bun/bin`) to your `PATH`.
</Warning>
<Accordion title="Add Bun to your PATH">
<Tabs>
<Tab title="macOS & Linux">
<Steps>
<Step title="Determine which shell you're using">
```bash terminal icon="terminal"
echo $SHELL
# /bin/zsh or /bin/bash or /bin/fish
```
</Step>
<Step title="Open your shell configuration file">
- For bash: `~/.bashrc`
- For zsh: `~/.zshrc`
- For fish: `~/.config/fish/config.fish`
</Step>
<Step title="Add the Bun directory to PATH">
Add this line to your configuration file:
```bash terminal icon="terminal"
export BUN_INSTALL="$HOME/.bun"
export PATH="$BUN_INSTALL/bin:$PATH"
```
</Step>
<Step title="Reload your shell configuration">
```bash terminal icon="terminal"
source ~/.bashrc # or ~/.zshrc
```
</Step>
</Steps>
</Tab>
<Tab title="Windows">
<Steps>
<Step title="Determine if the bun binary is properly installed">
```bash terminal icon="terminal"
& "$env:USERPROFILE\.bun\bin\bun" --version
```
If the command runs successfully but `bun --version` is not recognized, it means that bun is not in your system's PATH. To fix this, open a Powershell terminal and run the following command:
```bash terminal icon="terminal"
[System.Environment]::SetEnvironmentVariable(
"Path",
[System.Environment]::GetEnvironmentVariable("Path", "User") + ";$env:USERPROFILE\.bun\bin",
[System.EnvironmentVariableTarget]::User
)
```
</Step>
<Step title="Restart your terminal">
After running the command, restart your terminal and test with `bun --version`
```bash terminal icon="terminal"
bun --version
```
</Step>
</Steps>
</Tab>
</Tabs>
</Accordion>
---
## Upgrading
Once installed, the binary can upgrade itself:
```bash terminal icon="terminal"
bun upgrade
```
<Tip>
**Homebrew users** <br />
To avoid conflicts with Homebrew, use `brew upgrade bun` instead.
**Scoop users** <br />
To avoid conflicts with Scoop, use `scoop update bun` instead.
</Tip>
---
## Canary Builds
[-> View canary build](https://github.com/oven-sh/bun/releases/tag/canary)
Bun automatically releases an (untested) canary build on every commit to main. To upgrade to the latest canary build:
```bash terminal icon="terminal"
# Upgrade to latest canary
bun upgrade --canary
# Switch back to stable
bun upgrade --stable
```
The canary build is useful for testing new features and bug fixes before they're released in a stable build. To help the Bun team fix bugs faster, canary builds automatically upload crash reports to Bun's team.
---
## Installing Older Versions
Since Bun is a single binary, you can install older versions by re-running the installer script with a specific version.
<Tabs>
<Tab title="Linux & macOS">
To install a specific version, pass the git tag to the install script:
```bash terminal icon="terminal"
curl -fsSL https://bun.com/install | bash -s "bun-v1.3.3"
```
</Tab>
<Tab title="Windows">
On Windows, pass the version number to the PowerShell install script:
```powershell PowerShell icon="windows"
iex "& {$(irm https://bun.com/install.ps1)} -Version 1.3.3"
```
</Tab>
</Tabs>
---
## Direct Downloads
To download Bun binaries directly, visit the [releases page on GitHub](https://github.com/oven-sh/bun/releases).
### Latest Version Downloads
<CardGroup cols={2}>
<Card
icon="/icons/linux.svg"
title="Linux x64"
href="https://github.com/oven-sh/bun/releases/latest/download/bun-linux-x64.zip"
>
Standard Linux x64 binary
</Card>
<Card
icon="/icons/linux.svg"
title="Linux x64 Baseline"
href="https://github.com/oven-sh/bun/releases/latest/download/bun-linux-x64-baseline.zip"
>
For older CPUs without AVX2
</Card>
<Card
icon="/icons/windows.svg"
title="Windows x64"
href="https://github.com/oven-sh/bun/releases/latest/download/bun-windows-x64.zip"
>
Standard Windows binary
</Card>
<Card
icon="/icons/windows.svg"
title="Windows x64 Baseline"
href="https://github.com/oven-sh/bun/releases/latest/download/bun-windows-x64-baseline.zip"
>
For older CPUs without AVX2
</Card>
<Card
icon="/icons/apple.svg"
title="macOS ARM64"
href="https://github.com/oven-sh/bun/releases/latest/download/bun-darwin-aarch64.zip"
>
Apple Silicon (M1/M2/M3)
</Card>
<Card
icon="/icons/apple.svg"
title="macOS x64"
href="https://github.com/oven-sh/bun/releases/latest/download/bun-darwin-x64.zip"
>
Intel Macs
</Card>
<Card
icon="/icons/linux.svg"
title="Linux ARM64"
href="https://github.com/oven-sh/bun/releases/latest/download/bun-linux-aarch64.zip"
>
ARM64 Linux systems
</Card>
</CardGroup>
### Musl Binaries
For distributions without `glibc` (Alpine Linux, Void Linux):
- [Linux x64 musl](https://github.com/oven-sh/bun/releases/latest/download/bun-linux-x64-musl.zip)
- [Linux x64 musl baseline](https://github.com/oven-sh/bun/releases/latest/download/bun-linux-x64-musl-baseline.zip)
- [Linux ARM64 musl](https://github.com/oven-sh/bun/releases/latest/download/bun-linux-aarch64-musl.zip)
<Note>
If you encounter an error like `bun: /lib/x86_64-linux-gnu/libm.so.6: version GLIBC_2.29 not found`, try using the
musl binary. Bun's install script automatically chooses the correct binary for your system.
</Note>
---
## CPU Requirements
Bun has specific CPU requirements based on the binary you're using:
<Tabs>
<Tab title="Standard Builds">
**x64 binaries** target the Haswell CPU architecture (AVX and AVX2 instructions required)
| Platform | Intel Requirement | AMD Requirement |
|----------|-------------------|-----------------|
| x64 | Haswell (4th gen Core) or newer | Excavator or newer |
</Tab>
<Tab title="Baseline Builds">
**x64-baseline binaries** target the Nehalem architecture for older CPUs
| Platform | Intel Requirement | AMD Requirement |
|----------|-------------------|-----------------|
| x64-baseline | Nehalem (1st gen Core) or newer | Bulldozer or newer |
<Warning>
Baseline builds are slower than regular builds. Use them only if you encounter an "Illegal
Instruction" error.
</Warning>
</Tab>
</Tabs>
<Note>
Bun does not support CPUs older than the baseline target, which mandates the SSE4.2 extension. macOS requires version
13.0 or later.
</Note>
---
## Uninstall
To remove Bun from your system:
<Tabs>
<Tab title="macOS & Linux">
```bash terminal icon="terminal"
rm -rf ~/.bun
```
</Tab>
<Tab title="Windows">
```powershell PowerShell icon="windows"
powershell -c ~\.bun\uninstall.ps1
```
</Tab>
<Tab title="Package Managers">
<CodeGroup>
```bash npm icon="npm"
npm uninstall -g bun
```
```bash Homebrew icon="/icons/homebrew.svg"
brew uninstall bun
```
```bash Scoop icon="terminal"
scoop uninstall bun
```
</CodeGroup>
</Tab>
</Tabs>