> ## Documentation Index
> Fetch the complete documentation index at: https://docs.usebruno.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Download & Install

Bruno is an open-source, fast and lightweight API client for exploring and testing APIs. It's designed to be a modern alternative to traditional API clients with a focus on speed, simplicity, and collaboration.

## Installation Options

Bruno can be installed via direct download or through package managers on supported platforms.

<Warning>
  Starting with Bruno v3, native ARM64 binaries are available for [Windows ARM64 devices <strong><sup>↗</sup></strong>](https://www.usebruno.com/downloads).
</Warning>

<Tabs>
  <Tab title="macOS">
    ### Direct Download

    Download the latest macOS version from the [official downloads page <strong><sup>↗</sup></strong>](https://www.usebruno.com/downloads).

    ### Homebrew

    ```bash theme={null}
    brew install bruno
    ```
  </Tab>

  <Tab title="Windows">
    ### Direct Download

    Download the latest Windows installer from the [official downloads page <strong><sup>↗</sup></strong>](https://www.usebruno.com/downloads).

    <Info>
      **Enterprise MSI Installation**

      When installing Bruno using an MSI installer, IT administrators can control auto-update behavior by passing the `AUTOUPDATE_ENABLED` flag during installation:

      * Set to `false` to disable auto-updates enterprise-wide
      * If auto-updates are disabled by the enterprise, users cannot enable them manually
      * If no enterprise setting exists, Bruno respects individual user preferences

      Example: `msiexec /i Bruno.msi AUTOUPDATE_ENABLED=false`
    </Info>

    ### Using Package Managers

    **Chocolatey**

    ```bash theme={null}
    choco install bruno
    ```

    **Winget**

    ```bash theme={null}
    winget install Bruno.Bruno
    ```

    **Scoop**

    ```bash theme={null}
    scoop install bruno
    ```
  </Tab>

  <Tab title="Linux">
    ### Direct Download

    Download the latest Linux package from the [official downloads page <strong><sup>↗</sup></strong>](https://www.usebruno.com/downloads).

    ### Using Package Managers

    **APT (Debian/Ubuntu)**

    ```bash theme={null}
    # Create keyrings directory
    sudo mkdir -p /etc/apt/keyrings

    # Update and install GPG and curl
    sudo apt update && sudo apt install gpg curl

    # List existing keys (optional)
    sudo gpg --list-keys

    # Add the Bruno repository key
    curl -fsSL "https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x9FA6017ECABE0266" | gpg --dearmor | sudo tee /etc/apt/keyrings/bruno.gpg > /dev/null

    # Set permissions for the GPG key file
    sudo chmod 644 /etc/apt/keyrings/bruno.gpg

    # Add the Bruno repository
    echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/bruno.gpg] http://debian.usebruno.com/ bruno stable" | sudo tee /etc/apt/sources.list.d/bruno.list

    # Update and install Bruno
    sudo apt update && sudo apt install bruno
    ```

    **Flatpak**

    ```bash theme={null}
    flatpak install flathub com.usebruno.Bruno
    ```

    **Snap**

    ```bash theme={null}
    sudo snap install bruno
    ```
  </Tab>
</Tabs>

## Nightly Builds

<Note>
  Nightly builds are **pre-release** and may contain bugs. Use them to preview
  upcoming features and provide feedback - not for production.
</Note>

Nightly builds are published automatically for early testing of upcoming features. To get started, visit the [bruno-nightly-builds <strong><sup>↗</sup></strong>](https://github.com/usebruno/bruno-nightly-builds) repository on GitHub and download the asset that matches your OS.

<Tabs>
  <Tab title="Bruno App">
    Find the latest release in the [nightly builds repository <strong><sup>↗</sup></strong>](https://github.com/usebruno/bruno-nightly-builds/releases) and download the installer for your platform:

    | Platform              | File to download               |
    | --------------------- | ------------------------------ |
    | macOS (Apple Silicon) | `.dmg` (arm64)                 |
    | macOS (Intel)         | `.dmg` (x64)                   |
    | Windows               | `.exe` or `.msi` installer     |
    | Linux                 | `.AppImage`, `.deb`, or `.rpm` |

    Install it the same way as a regular Bruno release.
  </Tab>

  <Tab title="Bruno CLI">
    The CLI nightly build is published as an npm tarball (`.tgz`). Installing it in an **isolated folder** keeps it separate from any globally installed version.

    **1. Prepare a test folder**

    Download the `.tgz` file from the [nightly builds repository <strong><sup>↗</sup></strong>](https://github.com/usebruno/bruno-nightly-builds/releases) and keep the original filename unchanged. Then create a clean folder and move the file into it:

    ```bash theme={null}
    mkdir cli-portable-nightly
    mv usebruno-cli-*.tgz cli-portable-nightly/
    cd cli-portable-nightly
    ```

    **2. Install the bundle locally**

    ```bash theme={null}
    npm init -y
    npm install --offline ./usebruno-cli-<version>.tgz
    ```

    **3. Verify the installation**

    ```bash theme={null}
    npx bru --version
    # Expected output: the nightly version number, e.g. 3.5.0
    ```

    **4. Run your collection using the local CLI**

    The nightly binary is installed inside `cli-portable-nightly/node_modules/.bin/bru`. When you want to run a collection that lives in a **different folder**, you must use the full absolute path to that binary.

    Using `./node_modules/.bin/bru` only works from inside the `cli-portable-nightly` folder itself.

    ```bash theme={null}
    # Step into your collection folder
    cd /path/to/your-collection

    # macOS / Linux — use the absolute path to the nightly binary
    /path/to/cli-portable-nightly/node_modules/.bin/bru run --env <name>

    # Windows
    C:\path\to\cli-portable-nightly\node_modules\.bin\bru run --env <name>
    ```

    If you are not sure of the path, run `pwd` while inside `cli-portable-nightly` to get it:

    ```bash theme={null}
    cd /path/to/cli-portable-nightly
    pwd
    # e.g. /Users/yourname/Downloads/cli-portable-nightly
    ```

    Then use that output as the prefix:

    ```bash theme={null}
    cd /path/to/your-collection
    /Users/yourname/Downloads/cli-portable-nightly/node_modules/.bin/bru run --env <name>
    ```

    <Tip>
      To avoid typing the full path every time, export it as a shell variable for your session:

      ```bash theme={null}
      export NIGHTLY_BRU=/Users/yourname/Downloads/cli-portable-nightly/node_modules/.bin/bru
      cd /path/to/your-collection
      $NIGHTLY_BRU run --env <name>
      ```
    </Tip>
  </Tab>
</Tabs>

***

## Release Information

Bruno follows semantic versioning. You can check the [GitHub Releases <strong><sup>↗</sup></strong>](https://github.com/usebruno/bruno/releases) page for:

* Latest version information
* Release notes
* Bug fixes
* New features included in each release
