> ## 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.

# Installation

<Callout emoji="">
  Make sure you have Node.js installed on your local system. It is recommended to use the latest LTS version (Node 18 or higher).
</Callout>

To install the Bruno CLI, use the node package manager of your choice:

<Tabs>
  <Tab title="pnpm">
    ### Using pnpm

    ```bash theme={null}
    pnpm install -g @usebruno/cli
    ```
  </Tab>

  <Tab title="npm">
    ### Using npm

    ```bash theme={null}
    npm install -g @usebruno/cli
    ```
  </Tab>

  <Tab title="yarn">
    ### Using yarn

    ```bash theme={null}
    yarn global add @usebruno/cli
    ```
  </Tab>
</Tabs>

For more details, visit the official [NPM Page for Bruno CLI <strong><sup>↗</sup></strong>](https://www.npmjs.com/package/@usebruno/cli)

## Docker

If you prefer not to install Node.js on the host, official Docker images are published for the Bruno CLI:

```bash theme={null}
docker pull usebruno/cli:latest
```

See [Docker](/bru-cli/docker) for variants, tags, and usage examples.

## Testing nightly

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

The CLI nightly is published as an npm tarball (`.tgz`) on the [bruno-nightly-builds <strong><sup>↗</sup></strong>](https://github.com/usebruno/bruno-nightly-builds/releases) repository. Install it in an **isolated folder** so it does not replace a globally installed `@usebruno/cli`.

**1. Prepare a test folder**

Download the `.tgz` file from the latest nightly release 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 `bru` binary lives inside the test folder, at `cli-portable-nightly/node_modules/.bin/bru`. The short form `./node_modules/.bin/bru` only works while your shell is inside `cli-portable-nightly`.

Your collection is usually in another folder, so `cd` into the collection and call the nightly binary by its full absolute path.

```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`:

```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>

Desktop app nightly builds are documented separately under [Download & Install](/get-started/bruno-basics/download#nightly-builds).
