atheris
Atheris is a coverage-guided Python fuzzer based on libFuzzer. Use for fuzzing pure Python code and Python C extensions.
npx skills add trailofbits/skills --skill atheris --agent claude-code
Same command for any agent — swap --agent for codex, cursor, copilot.
Weekly change comes from our own snapshots, not the repository page — it measures attention, not adoption.
# Atheris Atheris is a coverage-guided Python fuzzer built on libFuzzer. It enables fuzzing of both pure Python code and Python C extensions with integrated AddressSanitizer support for detecting memory corruption issues. ## When to Use | Fuzzer | Best For | Complexity | |--------|----------|------------| | Atheris | Python code and C extensions | Low-Medium | | Hypothesis | Property-based testing | Low | | python-afl | AFL-style fuzzing | Medium | **Choose Atheris when:** - Fuzzing pure Python code with coverage guidance - Testing Python C extensions for memory corruption - Integration with libFuzzer ecosystem is desired - AddressSanitizer support is needed ## Quick Start ```python import sys import atheris @atheris.instrument_func def test_one_input(data: bytes): if len(data) == 4: if data[0] == 0x46: # "F" if data[1] == 0x55: # "U" if data[2] == 0x5A: # "Z" if data[3] == 0x5A: # "Z" raise RuntimeError("You caught me") def main(): atheris.Setup(sys.argv, test_one_input) atheris.Fuzz() if __name__ == "__main__": main() ``` Run: ```bash python fuzz.py ``` ## Installation Atheris supports 32-bit and 64-bit Linux, and macOS. We recommend fuzzing on Linux because it's simpler to manag
- When to Use
- Quick Start
- Installation
- Prerequisites
- Linux/macOS
- Docker Environment (Recommended)
- Verification
- Writing a Harness
- Harness Structure for Pure Python
- Harness Rules
- Fuzzing Pure Python Code
- Fuzzing Python C Extensions
- Environment Configuration
- Example: Fuzzing cbor2
python fuzz.py uv pip install atheris docker build -t atheris . docker run -it atheris python -c "import atheris; print(atheris.__version__)" export CC="clang" export CFLAGS="-fsanitize=address,fuzzer-no-link" export CXX="clang++" export CXXFLAGS="-fsanitize=address,fuzzer-no-link" export LDSHARED="clang -shared"
What does the atheris skill do?
Atheris is a coverage-guided Python fuzzer based on libFuzzer. Use for fuzzing pure Python code and Python C extensions.
How do I install it?
Run `npx skills add trailofbits/skills --skill atheris --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.
