Installation

Pick the installer that fits your platform. Dalfox ships as a single self-contained binary, with no runtime to manage.

Homebrew (macOS & Linux)

brew install dalfox

The Homebrew formula tracks the latest stable release. Source: formulae.brew.sh/formula/dalfox.

Snap (Ubuntu / Linux)

sudo snap install dalfox

Arch Linux (AUR)

Using an AUR helper (recommended):

yay -S dalfox
# or
paru -S dalfox

Manual build from the AUR package:

git clone https://aur.archlinux.org/dalfox.git
cd dalfox
makepkg -si

Nix & NixOS

# Run once without installing
nix-shell -p dalfox

# Nix flakes: run the latest from GitHub
nix run github:hahwul/dalfox -- scan https://example.com

# Install into your profile
nix profile install github:hahwul/dalfox

Dalfox lives in nixpkgs. The newest releases land in unstable first, so the flake above is ahead of nixpkgs between releases.

The flake builds for x86_64-linux, aarch64-linux and aarch64-darwin. Intel macOS is not among them because nixpkgs unstable dropped x86_64-darwin — use the macos-x86_64 release archive below instead.

To build Dalfox against your own nixpkgs instead of the one this flake pins, use the overlay. In your system flake:

# flake.nix
{
  inputs.dalfox.url = "github:hahwul/dalfox";

  outputs = { self, nixpkgs, dalfox, ... }@inputs: {
    nixosConfigurations.myhost = nixpkgs.lib.nixosSystem {
      specialArgs = { inherit inputs; };
      modules = [ ./configuration.nix ];
    };
  };
}

Then, in a module that receives inputs:

# configuration.nix
{ pkgs, inputs, ... }:
{
  nixpkgs.overlays = [ inputs.dalfox.overlays.default ];
  environment.systemPackages = [ pkgs.dalfox ];
}

The flake also exposes a development shell for working on Dalfox itself — the Rust toolchain, just and the Crystal runtime the test harnesses need, but not the dalfox binary:

git clone https://github.com/hahwul/dalfox && cd dalfox
nix develop

With direnv installed, direnv allow picks the same shell up automatically from the repo's .envrc.

Cargo (from crates.io)

cargo install dalfox

Requires a recent Rust toolchain (stable is fine). Builds into ~/.cargo/bin/dalfox.

Prebuilt binaries

Grab a release archive for your OS/arch from github.com/hahwul/dalfox/releases, extract it, and drop the binary somewhere on your PATH (/usr/local/bin, ~/.local/bin, etc.).

We publish the following per release:

  • macos-x86_64, macos-aarch64
  • linux-x86_64 (glibc), linux-x86_64-musl (statically linked, recommended for Alpine, Docker, and CI)
  • linux-aarch64 (glibc), linux-aarch64-musl (statically linked)
  • windows-x86_64

Linux also gets .deb and .rpm packages for both architectures, and every archive ships with a .sha256 alongside a combined checksum.txt.

Build from source

git clone https://github.com/hahwul/dalfox
cd dalfox
cargo build --release
# Binary at ./target/release/dalfox

You'll need Rust (2024 edition). Install with rustup if you don't have it.

Verify

dalfox --version

You should see something like dalfox 3.2.2 along with the Dalfox banner.

Shell completions

Homebrew, the AUR package, the .deb / .rpm packages and the Nix flake install bash, zsh and fish completions for you — nothing else to do.

Installed another way (Cargo, a release archive, a source build)? Generate them yourself:

dalfox completion bash > /etc/bash_completion.d/dalfox
dalfox completion zsh > "${fpath[1]}/_dalfox"
dalfox completion fish > ~/.config/fish/completions/dalfox.fish

powershell and elvish are supported too — see the CLI reference.

Getting help

Dalfox uses clap, so help is always accessible:

dalfox --help
dalfox scan --help

Next steps

Run your first scan in the Quick Start. If you want to tune defaults before scanning, jump to Configuration.

ESC