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

# Install

> Install the bronto CLI with Homebrew, the install script, go install, Docker, or a release archive, and verify the download.

`bronto` is a single static binary for macOS, Linux, and Windows. Install it with
any of the methods below, then run `bronto version` to check that it works.

> [!NOTE]
>
> The bronto CLI is open source and community-supported. Releases, source code, and the
> issue tracker are on [GitHub](https://github.com/bronto-community/bronto-cli).

> [tab] Homebrew
>
> ```sh theme={"dark"}
> brew install --cask bronto-community/tap/bronto
> ```
>
> The cask lives in the `bronto-community/homebrew-tap` tap, and the release workflow
> updates it on every release. Installing by the fully qualified name taps it and trusts
> that one cask, so you don't need `brew tap` or `brew trust` first.
>
> The cask clears macOS Gatekeeper's quarantine flag on install, so you won't see the
> "cannot verify developer" dialog.

> [tab] Install script
>
> ```sh theme={"dark"}
> curl -fsSL https://raw.githubusercontent.com/bronto-community/bronto-cli/main/scripts/install.sh | sh
> ```
>
> The script downloads the release archive for your OS and architecture from GitHub
> Releases, checks it against the release's `checksums.txt`, and installs the binary to
> `/usr/local/bin`. Two environment variables change that:
>
> | Variable | Default | Effect |
> | - | - | - |
> | `VERSION` | latest release | Install a specific tag, for example `VERSION=v0.1.0` |
> | `BINDIR` | `/usr/local/bin` | Install somewhere else |
>
> ```sh theme={"dark"}
> curl -fsSL https://raw.githubusercontent.com/bronto-community/bronto-cli/main/scripts/install.sh | BINDIR="$HOME/.local/bin" sh
> ```

> [tab] go install
>
> ```sh theme={"dark"}
> go install github.com/bronto-community/bronto-cli/cmd/bronto@latest
> ```
>
> This builds from source with your local Go toolchain and puts `bronto` in
> `$(go env GOPATH)/bin`. `bronto version` reports `dev` for builds made this way.

> [tab] Docker
>
> ```sh theme={"dark"}
> docker run --rm -e BRONTO_API_KEY -e BRONTO_REGION \
>   ghcr.io/bronto-community/bronto-cli:latest search "status >= 500" --since 1h
> ```
>
> Every release publishes two images for `linux/amd64` and `linux/arm64`:
>
> | Tag | Base |
> | - | - |
> | `ghcr.io/bronto-community/bronto-cli:latest` | `scratch` plus CA certificates |
> | `ghcr.io/bronto-community/bronto-cli:latest-distroless` | distroless |
>
> Each release also gets versioned tags (`:<version>` and `:<version>-distroless`).
> Pre-releases don't move `:latest`. The entrypoint is `/bronto`, so arguments go straight to the CLI.
> Neither image has a shell or a keychain, so pass credentials as environment variables.
> [CI/CD](https://docs.bronto.io/cli/guides/ci-cd.md) has the details.

> [tab] Release archive
>
> Every [GitHub release](https://github.com/bronto-community/bronto-cli/releases) has:
>
> * `tar.gz` archives for macOS and Linux, and `zip` archives for Windows
> * `.deb` and `.rpm` packages, which also install bash, zsh, and fish completions
> * an SPDX SBOM per archive
> * `checksums.txt`, its cosign signature, and certificate
>
> Download the archive for your platform, extract it, and put `bronto` on your `PATH`.

## Check the install

```console theme={"dark"}
$ bronto version
```

It prints one line with the version, the commit it was built from, and the build date.
`bronto version -o json` prints the same three values as JSON.

## Verify a release

The install script already checks the SHA-256 checksum. To also check that the checksum
file is the one the release workflow produced, verify its keyless
[cosign](https://docs.sigstore.dev/) signature, then the archive against it:

```sh theme={"dark"}
cosign verify-blob \
  --certificate checksums.txt.pem \
  --signature checksums.txt.sig \
  --certificate-identity-regexp 'github.com/bronto-community/bronto-cli' \
  --certificate-oidc-issuer https://token.actions.githubusercontent.com \
  checksums.txt
sha256sum --check --ignore-missing checksums.txt
```

Release archives and packages also carry signed SLSA build provenance. With the GitHub
CLI:

```sh theme={"dark"}
gh attestation verify bronto_<version>_<os>_<arch>.tar.gz --repo bronto-community/bronto-cli
```

The container images on ghcr.io also carry provenance and SBOM attestations.

## Next

* [Authenticate](https://docs.bronto.io/cli/getting-started/authentication.md) with an API key.
* Turn on [shell completion](https://docs.bronto.io/cli/configuration/shell-completion.md). It completes dataset names,
  field names, and resource names from your account.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.