Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/0xricksanchez/AFL_Runner/llms.txt

Use this file to discover all available pages before exploring further.

AFL Runner can be installed in two ways: directly from crates.io using cargo install, or built locally from source. Both methods produce the same aflr binary. The crates.io path is the fastest route for most users; building from source gives you access to unreleased changes or lets you customize the feature flags.
AFL Runner currently only works on *NIX operating systems (Linux, macOS, and other Unix-like systems). Windows is not supported.

Prerequisites

Ensure the following dependencies are present on your system before installing AFL Runner.
DependencyVersionRequired?Purpose
Rust toolchainv1.85.0RequiredCompiling aflr
AFLPlusPlusLatestRequiredThe underlying fuzzer
pgrepAnyRequiredProcess lookup for session management
tmux or screenAnyOptionalSession creation and window layout
LLVMAnyOptionalCoverage collection and report generation
tmux or screen is required if you want AFL Runner to automatically create a multiplexed terminal session and lay out fuzzer panes. Without either, you can still generate commands (aflr gen) or run campaigns in detached mode.

Install from crates.io

Installing from crates.io is the recommended approach for most users. It pulls the latest stable release and compiles it with your local Rust toolchain.
1

Install via cargo

Run the following command to download and compile AFL Runner from crates.io:
cargo install afl_runner
2

Verify the installation

Confirm that the aflr binary is on your PATH and prints the help output:
aflr --help
You should see the subcommand listing for gen, run, cov, tui, kill, and add-seed.
3

(Optional) Install with shell completion support

To enable tab-completion for tmux session names in the kill subcommand, install with the completion feature flag:
cargo install afl_runner --features completion
After installation, generate the completion scripts and source them in your shell. See the Shell Completion section below for per-shell setup instructions.

Build from Source

Building from source is useful when you want the latest unreleased changes from the main branch or when you need to modify AFL Runner itself.
1

Clone the repository

git clone https://github.com/0xricksanchez/AFL_Runner.git
cd AFL_Runner
2

Build the release binary

cargo build --release
The compiled binary is placed at ./target/release/aflr. The release profile enables LTO, opt-level = 3, and codegen-units = 1 for a fully optimized build.
3

Verify the build

Run the binary directly from the build output:
./target/release/aflr --help
Optionally, copy or symlink the binary to a directory on your PATH:
cp ./target/release/aflr ~/.local/bin/aflr
4

(Optional) Generate shell completion scripts

To build and generate completion scripts from source, use the completion feature:
cargo run --features completion --bin generate_completions
This places completion scripts under the completions/ directory in the project root.

Side-by-Side Comparison

# Standard install
cargo install afl_runner

# With shell completion support
cargo install afl_runner --features completion

# Verify
aflr --help

Shell Completion

Once you have built or installed AFL Runner with the completion feature, configure your shell to load the generated scripts. Zsh
# Option 1: Source directly in your current session
source completions/aflr_dynamic.zsh

# Option 2 (recommended): Install to the Zsh completion directory
mkdir -p ~/.zsh/completions
cp completions/aflr_dynamic.zsh ~/.zsh/completions/_aflr

# Add to ~/.zshrc:
fpath=(~/.zsh/completions $fpath)
autoload -U compinit && compinit
Bash
# Add to ~/.bashrc:
source /path/to/completions/aflr_dynamic.bash
With completion active, pressing <Tab> after aflr kill will suggest the names of all running tmux sessions.

Build docs developers (and LLMs) love