Install Noir

Install OWASP Noir via Homebrew, Snapcraft, Docker, npm, Nix, AUR, .deb, .rpm, .apk, binary download (Linux, macOS, Windows), or from source.

Hak, the OWASP Noir mascot

Noir is a single binary with no runtime dependencies. Homebrew is the quickest way for most users, but pick whatever fits your system.

Every method below installs the same noir binary, so pick the one that fits your platform and skip the rest. They're ordered roughly easiest-first.

Homebrew (macOS and Linux)

The easiest option. Noir has an official Homebrew formula.

To install:

brew install noir

To update:

brew upgrade noir

Snapcraft (Linux)

Snap packages work across most Linux distros and auto-update in the background.

To install:

sudo snap install noir

To update manually:

sudo snap refresh noir

Docker

Handy when you don't want to install anything on the host, or need Noir inside a CI/CD pipeline.

To pull/update the latest image:

docker pull ghcr.io/owasp-noir/noir:latest

Scan the current directory:

docker run --rm -v $(pwd):/tmp ghcr.io/owasp-noir/noir:latest noir scan /tmp

Release images are tagged without the v prefix: :1.4.0, :1.4, :1, and :latest. The :main tag tracks the main branch. Versions up to v0.29.1 used the :vX.Y.Z form, so update any pinned references. All tags are on the GitHub Packages page.

npm (macOS and Linux)

If you already have Node.js 20 or later, install the @owasp-noir/noir package. It downloads the release binary for your platform during install and checks it against the SHA-256 pinned in the package.

To install:

npm install -g @owasp-noir/noir

To update:

npm update -g @owasp-noir/noir

Or run once without installing:

npx @owasp-noir/noir -h

Nix

If you use Nix, install via Flakes.

To install:

nix profile add github:owasp-noir/noir

To update:

nix profile upgrade noir
nix --extra-experimental-features "nix-command flakes" profile add github:owasp-noir/noir

Or run once without installing:

nix run github:owasp-noir/noir -- -h

Direct Binary Download

No package manager? Grab a prebuilt binary from GitHub Releases. Builds exist for Linux and macOS; Windows (x86_64) builds start with the first release after v1.4.0.

To install or update:

  1. Download the binary for your platform (e.g., noir-v1.4.0-linux-x86_64 on Linux, noir-v1.4.0-osx-arm64.tar.gz on macOS, or noir-vX.Y.Z-windows-x86_64.exe on Windows).

  2. Linux: make it executable and move it into your PATH:

    chmod +x noir-v*-linux-*
    sudo mv noir-v*-linux-* /usr/local/bin/noir
    
  3. macOS: extract the tarball and keep the bundled lib/ directory next to the binary:

    # system-wide install
    sudo mkdir -p /opt/noir
    sudo tar xzf noir-v*-osx-*.tar.gz -C /opt/noir
    sudo ln -sf /opt/noir/noir /usr/local/bin/noir
    

    For a user-local install without sudo, extract under ~/.local/noir instead and add ~/.local/noir to your PATH.

    The macOS archive ships OpenSSL libraries in lib/; do not move only the noir binary without them.

  4. Windows: the .exe is self-contained. Rename it to noir.exe and put it in a folder on your PATH. In PowerShell, for a per-user install:

    $dir = "$env:LOCALAPPDATA\noir"
    New-Item -ItemType Directory -Force $dir | Out-Null
    Move-Item -Force .\noir-v*-windows-x86_64.exe "$dir\noir.exe"
    [Environment]::SetEnvironmentVariable("Path", [Environment]::GetEnvironmentVariable("Path", "User") + ";$dir", "User")
    

    Open a new terminal so the updated PATH takes effect. To update later, run the Move-Item line again with the new download (-Force replaces the old noir.exe).

  5. Verify:

    noir --version
    

Debian Package (.deb)

Debian/Ubuntu users can use the .deb package from GitHub Releases. It integrates with dpkg/apt like any other system package. Both amd64 and arm64 are provided; the commands below use amd64, so swap in arm64 on ARM machines.

To install or update:

  1. Resolve the latest version and download:

    VERSION=$(curl -s https://api.github.com/repos/owasp-noir/noir/releases/latest | grep '"tag_name":' | sed -E 's/.*"v([^"]+)".*/\1/')
    wget "https://github.com/owasp-noir/noir/releases/download/v${VERSION}/noir_${VERSION}_amd64.deb"
    
  2. Install or upgrade:

    sudo dpkg -i "noir_${VERSION}_amd64.deb"
    
  3. Fix missing dependencies if needed:

    sudo apt-get -f install
    
  4. Verify:

    noir --version
    

Arch Linux (AUR)

Noir is officially published on the AUR.

To install or update:

yay -S noir

RPM Package (.rpm)

Fedora, RHEL, CentOS, openSUSE, and other RPM-based distros can use the .rpm package from GitHub Releases. Both x86_64 and aarch64 are provided; the commands below use x86_64, so swap in aarch64 on ARM machines.

To install:

  1. Resolve the latest version and download:

    VERSION=$(curl -s https://api.github.com/repos/owasp-noir/noir/releases/latest | grep '"tag_name":' | sed -E 's/.*"v([^"]+)".*/\1/')
    wget "https://github.com/owasp-noir/noir/releases/download/v${VERSION}/noir-${VERSION}.x86_64.rpm"
    
  2. Install:

    sudo rpm -i "noir-${VERSION}.x86_64.rpm"
    

    Or with dnf:

    sudo dnf install "./noir-${VERSION}.x86_64.rpm"
    

To update:

  1. Download the latest version as shown in the install step.

  2. Upgrade:

    sudo rpm -U "noir-${VERSION}.x86_64.rpm"
    

    Or with dnf:

    sudo dnf upgrade "./noir-${VERSION}.x86_64.rpm"
    
  3. Verify:

    noir --version
    

Alpine Package (.apk)

Alpine Linux users can use the .apk package from GitHub Releases. Both x86_64 and aarch64 are provided; the commands below use x86_64, so swap in aarch64 on ARM machines.

To install or update:

  1. Resolve the latest version and download:

    VERSION=$(curl -s https://api.github.com/repos/owasp-noir/noir/releases/latest | grep '"tag_name":' | sed -E 's/.*"v([^"]+)".*/\1/')
    wget "https://github.com/owasp-noir/noir/releases/download/v${VERSION}/noir-${VERSION}-x86_64.apk"
    
  2. Install or upgrade:

    sudo apk add --upgrade --allow-untrusted "noir-${VERSION}-x86_64.apk"
    
  3. Verify:

    noir --version
    

Build from Source

For custom builds or contributing back to the project.

Install Crystal from crystal-lang.org first.

Windows: the build compiles the bundled Tree-sitter grammars with a small shell script. So besides Crystal for Windows, you also need Git for Windows (for sh) and clang (the "C++ Clang tools for Windows" component of Visual Studio Build Tools, or LLVM). Run the steps below from Git Bash. The binary is written to bin\noir.exe.

To install:

  1. Clone the repository:

    git clone https://github.com/owasp-noir/noir
    cd noir
    
  2. Install dependencies:

    shards install
    
  3. Build:

    shards build --release
    

    The compiled binary is at ./bin/noir.

To update:

  1. Pull latest changes:

    git pull
    
  2. Install dependencies and rebuild:

    shards install
    shards build --release
    

Verify Your Installation

Whichever method you chose, confirm Noir is installed:

noir --version

If you see a version number, you're ready.


Next: Your First Scan