Agent skill

aflpp

AFL++ is a fork of AFL with better fuzzing performance and advanced features. Use for multi-core fuzzing of C/C++ projects.

trailofbitsgithub.com/trailofbitsGitHub ↗
claude-codeCC-BY-SA-4.0
Install
npx skills add trailofbits/skills --skill aflpp --agent claude-code

Same command for any agent — swap --agent for codex, cursor, copilot.

Facts
Files in the skill folder: 3
SKILL.md size: 19 KB
Bundled scripts: none
Path: plugins/testing-handbook-skills/skills/aflpp/SKILL.md
Open the folder on GitHub →
Where it comes from
Stars: 6,426
Language: Python
Read our review of the source →

Weekly change comes from our own snapshots, not the repository page — it measures attention, not adoption.

Review
written from the skill's own SKILL.md · Aug 5, 2026

What it does

AFL++ (aflpp) is a fuzzer type tool intended for multi-core fuzzing of C/C++ projects, providing features for high-throughput fuzzing across multiple cores and mature tooling for large campaigns. It emphasizes multi-core fuzzing, diverse mutations, and support for harnesses compatible with libFuzzer-style interfaces.

How it works

The skill instructs to use AFL++ for multi-core fuzzing campaigns and provides guidance across:

  • Quick Start: harness setup and compilation/run commands showing usage of AFL++ with docker or host modes, including a minimal harness and a basic fuzz run.
  • Installation: methods to install AFL++ via Ubuntu/Debian repos, Docker, or from source, including wrapping scripts and system configurations.
  • Writing a Harness: demonstrates a libFuzzer-style harness structure and guidelines for harness rules to maintain determinism and proper resource handling.
  • Compilation: guidance on choosing a compilation mode (LTO, LLVM, GCC plugin) and example commands for building with fuzzing enabled and sanitizers.
  • Corpus Management and Running Campaigns: commands for creating initial corpus, minimizing it, and running campaigns with afl-fuzz, including environment variable notes for tuning parallel fuzzing.
  • Multi-Core Fuzzing and Monitoring: instructions to start primary and secondary fuzzers, monitor with watch, and stop all fuzzers.
  • Coverage and CMPLOG: discusses coverage tracking via fuzzer_stats/plot_data and enabling CMPLOG via environment variable.
  • Sanitizer Integration: shows how to enable AddressSanitizer and UBSan in fuzz builds, with cautions about memory limits.
  • Advanced Usage: tips like using LLVMFuzzerTestOneInput harnesses, using dictionaries, and timeouts; includes file and standard input fuzzing approaches and argument fuzzing examples.

Commands, file names, and tool names are quoted exactly as presented in the material, including shell scripts and AFL++ option flags where shown.

From the SKILL.md

# AFL++ AFL++ is a fork of the original AFL fuzzer that offers better fuzzing performance and more advanced features while maintaining stability. A major benefit over libFuzzer is that AFL++ has stable support for running fuzzing campaigns on multiple cores, making it ideal for large-scale fuzzing efforts. ## When to Use | Fuzzer | Best For | Complexity | |--------|----------|------------| | AFL++ | Multi-core fuzzing, diverse mutations, mature projects | Medium | | libFuzzer | Quick setup, single-threaded, simple harnesses | Low | | LibAFL | Custom fuzzers, research, advanced use cases | High | **Choose AFL++ when:** - You need multi-core fuzzing to maximize throughput - Your project can be compiled with Clang or GCC - You want diverse mutation strategies and mature tooling - libFuzzer has plateaued and you need more coverage - You're fuzzing production codebases that benefit from parallel execution ## Quick Start ```c++ extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) { // Call your code with fuzzer-provided data check_buf((char*)data, size); return 0; } ``` Compile and run: ```bash # Setup AFL++ wrapper script first (see Installation) ./afl++ docker afl-cl

What's inside
Steps it walks through
  1. When to Use
  2. Quick Start
  3. Installation
  4. Ubuntu/Debian
  5. Docker (from Docker Hub)
  6. Docker (from source)
  7. From source
  8. Wrapper Script Setup
  9. System Configuration
  10. Writing a Harness
  11. Harness Structure
  12. Harness Rules
  13. Compilation
  14. Compilation Mode Decision Tree
Ships with 2 files
  • agents/openai.yaml
  • assets/trail-of-bits-mark.svg
More from skills
All skills →
About this skill
What does the aflpp skill do?

AFL++ is a fork of AFL with better fuzzing performance and advanced features. Use for multi-core fuzzing of C/C++ projects.

How do I install it?

Run `npx skills add trailofbits/skills --skill aflpp --agent claude-code` — it drops the skill into your project so the agent can pick it up. Swap the --agent value for codex, cursor or copilot if you use one of those.

Where does this skill come from?

From trailofbits/skills, a repository with 6,426 stars. We read it straight from the repository tree rather than a submitted listing, so what you see here is what is actually published.

Is a popular skill a good skill?

Not necessarily. Stars measure attention, not adoption — a repository can trend for a week and be abandoned. That is why we show the weekly change from our own snapshots next to the total, instead of a single flattering number.

Keep going