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.
aflr add-seed injects new inputs into the corpus of a live AFL++ campaign without interrupting or restarting any of the running fuzzer instances. It works by invoking afl-fuzz in a short-lived single-execution calibration mode (AFL_BENCH_JUST_ONE=1, AFL_FAST_CAL=1, AFL_AUTORESUME=1) against the existing output directory, which causes AFL++ to evaluate and import the new inputs through its standard minimization and deduplication pipeline. The new entries are then picked up by the running fuzzers automatically via the sync mechanism. Use aflr add-seed when you discover interesting inputs mid-campaign — for example, from a different fuzzer, a manual test case, or a newly obtained sample corpus — and want to make them available without discarding any existing fuzzer state.
Synopsis
Options
Target
Path to the AFL++-instrumented target binary used in the running campaign. This should be the same binary that was passed to
aflr run with -t. Either this flag or --config must be provided.Directories
Path to the AFL++ output directory of the running campaign — the same path passed as
-o to aflr run. The new seed inputs are imported into this directory’s corpus. Defaults to /tmp/afl_output.Seed Input
Path to a single seed file or a directory of seed files to add to the corpus. When a single file is provided, aflr copies it into a temporary directory before passing it to
afl-fuzz as an input directory (AFL++ requires a directory for -i). When a directory is provided, it is passed directly. The path must exist at invocation time.Configuration
Path to a TOML configuration file. The
[target] and [afl_cfg] sections are merged with CLI flags; explicit CLI flags take precedence.Target Arguments
-- separator. Use @@ where AFL++ should substitute the input file path. These arguments must match the ones used in the running campaign — otherwise the calibration run may behave differently from the live fuzzers.
How It Works
Internally,aflr add-seed invokes afl-fuzz with a unique random secondary name (an 8-character UUID fragment via -S <uuid>) and the following environment variables set:
| Variable | Value | Purpose |
|---|---|---|
AFL_BENCH_JUST_ONE | 1 | Exit after a single calibration round |
AFL_FAST_CAL | 1 | Use fast calibration to speed up the import |
AFL_IGNORE_SEED_PROBLEMS | 1 | Skip inputs that trigger errors during calibration |
AFL_AUTORESUME | 1 | Merge into the existing output directory rather than failing |
afl-fuzz run exits, the imported inputs are visible in the output directory’s queue and will be picked up by the running fuzzer instances on their next sync cycle.
Examples
aflr add-seed is most useful when you obtain interesting inputs mid-campaign — for example, from a parallel fuzzer (libFuzzer, Honggfuzz), a public PoC, or a test case generated by a grammar-based tool. Rather than restarting the campaign and losing all accumulated fuzzer state, aflr add-seed lets you enrich the corpus in place while all running fuzzer instances continue uninterrupted.