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

# Installation

> Install fallow via npx, npm, pnpm, yarn, cargo, Docker, or a prebuilt binary. Binaries for macOS, Linux, and Windows.

The fastest way to try Fallow is to run it directly:

```bash theme={null}
npx fallow
```

If you use Fallow often, install it globally.

<Tabs>
  <Tab title="npm (recommended)">
    Prebuilt binaries for macOS, Linux, and Windows. No Rust toolchain required.

    ```bash theme={null}
    npm install -g fallow
    ```

    <Tip>
      The npm package uses `optionalDependencies` to download the correct platform binary automatically.
    </Tip>
  </Tab>

  <Tab title="pnpm">
    ```bash theme={null}
    pnpm add -g fallow
    ```
  </Tab>

  <Tab title="yarn">
    ```bash theme={null}
    yarn global add fallow
    ```
  </Tab>

  <Tab title="Cargo">
    Use this if you already have a Rust toolchain.

    ```bash theme={null}
    cargo install fallow-cli
    ```
  </Tab>

  <Tab title="Docker">
    Use this when you want to run fallow without installing Node.js, npm, or Rust on the host.

    ```bash theme={null}
    docker build -t fallow:local https://github.com/fallow-rs/fallow.git#main
    docker run --rm -v "$PWD:/workspace" --user "$(id -u):$(id -g)" fallow:local audit --format json --quiet
    ```

    The image runs fallow as a one-shot CLI against `/workspace`. The `--user` mapping keeps `.fallow/` caches and generated reports owned by your host user, and it lets `fallow audit` use git base detection without Git's dubious-ownership guard blocking the mounted repository. The image includes git, Node.js, npm, and Corepack; fallow does not install your project dependencies automatically.

    For Compose, copy [`examples/docker/compose.yaml`](https://github.com/fallow-rs/fallow/blob/main/examples/docker/compose.yaml) into the target project after building the image, then run:

    ```bash theme={null}
    docker compose run --rm fallow audit --format json --quiet
    ```

    <Warning>
      Fallow is a one-shot CLI, not a long-running service. In Portainer or other stack tools, use a one-shot run command instead of deploying it as an always-on service, or override the command for an interactive shell. Container exit codes are the fallow process exit codes, so CI can gate on the `docker run` or `docker compose run` result directly.
    </Warning>

    On Linux and WSL the commands above work as written. On Windows outside WSL, pass an absolute project path accepted by Docker Desktop and keep the mounted working directory at `/workspace`. For containerized runtime coverage inventory, pass the container path prefix so inventory paths match what the runtime beacon reports:

    ```bash theme={null}
    docker run --rm -v "$PWD:/workspace" --user "$(id -u):$(id -g)" fallow:local coverage upload-inventory --path-prefix /workspace --format json --quiet
    ```
  </Tab>

  <Tab title="Binary download">
    Download prebuilt binaries from [GitHub Releases](https://github.com/fallow-rs/fallow/releases).

    | Target                                     | Platform            |
    | :----------------------------------------- | :------------------ |
    | `fallow-aarch64-apple-darwin.tar.gz`       | macOS Apple Silicon |
    | `fallow-x86_64-apple-darwin.tar.gz`        | macOS Intel         |
    | `fallow-x86_64-unknown-linux-gnu.tar.gz`   | Linux x64 (glibc)   |
    | `fallow-aarch64-unknown-linux-gnu.tar.gz`  | Linux ARM64 (glibc) |
    | `fallow-x86_64-unknown-linux-musl.tar.gz`  | Linux x64 (musl)    |
    | `fallow-aarch64-unknown-linux-musl.tar.gz` | Linux ARM64 (musl)  |
    | `fallow-x86_64-pc-windows-msvc.zip`        | Windows x64         |
  </Tab>
</Tabs>

## Verify

```bash theme={null}
fallow --version
```

<Check>
  If you see a version number, you're all set.
</Check>

## Next step

Go to the [Quick start](/quickstart) and run your first analysis.
