AFLplusplus / AFLplusplus/LibAFL

docs: add AGENTS.md for AI agents to help someone build a new LibAFL-based fuzzer

Open
#3,896 3 comments 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
Rust
Stars
2.6k
Forks
481
Avg merge
2d 30m
Merged PRs (30d)
16

Description

## The Problem

LibAFL is a set of building blocks for creating a fuzzer it does not come as one ready-to-use fuzzer. To get started, a new user has to:

1. Look through the `fuzzers/` folder, which has around 69 example projects.
2. Guess which example is closest to their target program.
3. Copy that example and manually edit the Rust code to fit their case.

This is confusing and slow for beginners, since it requires understanding LibAFL's internal pieces just to get a first fuzzer running.

## The Idea

Add a simple command-line tool:

```
cargo libafl new
```

Instead of browsing and guessing, the tool asks a few short questions, such as:

- Is the target's source code available, or only the compiled binary?
- Should it run on one CPU core, or many?

Based on the answers, the tool automatically:

- Picks the closest matching example as a base.
- Generates a ready-to-compile fuzzer project with the correct setup already
filled in.

## Why It Helps

- Removes the hardest part for new users: figuring out where to start.
- Does not change or touch LibAFL's core fuzzing engine it only generates
starter code, so it's low-risk to add.
- Lets a beginner go from "I have a target" to "I have a working fuzzer"
in a few minutes instead of hours of trial and error.

## Simple Analogy

LibAFL today is like a warehouse of furniture parts with 40 old instruction manuals you find the closest manual and adjust it yourself. This tool is a short questionnaire that hands you back the one correct, filled-in manual for
your exact case.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.