Skip to main content
skill Claude Code CX Codex Cursor GitHub Copilot

libfuzzer — Claude Code skill: what it does, how to install

A skill that walks the agent through libFuzzer: the harness, the -fsanitize=fuzzer build, corpus handling, campaign triage. For C/C++ built with Clang.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add trailofbits/skills --skill libfuzzer -a claude-code
Open on GitHub

What libfuzzer does

Fuzzing a C/C++ library usually stalls at the same place: nobody writes the harness. This skill covers LLVMFuzzerTestOneInput structure, the -fsanitize=fuzzer build, corpus and dictionary handling, sanitizer wiring, and how to read a finished run.

The harness rules are spelled out: never call exit(), join threads before returning, stay away from randomness, reset global state between inputs. Structured input goes through FuzzedDataProvider from LLVM. You build with clang++ and the fuzzer flag next to AddressSanitizer, since a plain build hides memory errors the fuzzer would otherwise catch.

Clang is not optional here. GCC will not link this, because -fsanitize=fuzzer ships with LLVM. libFuzzer has been maintenance-only since late 2022, and the author still calls it the starting point: setup is short. Harnesses carry over to AFL++ later when one core stops being enough.

What it helps with

  • write a first LLVMFuzzerTestOneInput harness for a C library
  • compile a target with -fsanitize=fuzzer and AddressSanitizer
  • seed a corpus and a dictionary for a binary format
  • figure out why a run returns no crashes
  • port an existing harness to AFL++ for multi-core fuzzing

Example prompts for the agent

  • Write an `LLVMFuzzerTestOneInput` harness for the parser in `parser.c` and build it with `-fsanitize=fuzzer,address`
  • The fuzzer keeps running and finds nothing — check the harness for state leaking between inputs
  • How do I feed a dictionary into a libFuzzer run on a binary format?

How to install libfuzzer

1Skills CLI (Vercel)

npx skills add trailofbits/skills --skill libfuzzer -a claude-code

2Manually: put the files in place

~/.claude/skills/libfuzzer/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/libfuzzer/

From the same set35

The whole set →
semgrep trailofbits Runs a Semgrep static security audit on your codebase. It presents a plan for user confirmation and merges all findings into SARIF. Claude Code CX Codex Cursor +1 9,500installs differential-review trailofbits Reviews code changes for security issues using Git history and test coverage. Use it for commits, diffs, and pull requests that need a written review report. Claude Code CX Codex Cursor +1 8,800installs modern-python trailofbits Configures Python projects with a modern tooling stack: uv for dependency management, ruff for linting and formatting, ty for type checking. Use when starting new projects, writing scripts, or migrating from legacy tools. Claude Code CX Codex Cursor +1 8,700installs secure-workflow-guide trailofbits Guides smart contracts through Trail of Bits' 5-step security audit on check-in or before deployment. It runs static analysis, generates visual charts, and prepares fuzzing tests. Claude Code CX Codex Cursor +1 7,400installs sharp-edges trailofbits Audits API designs and configuration schemas for developer footguns. Flags dangerous defaults and fragile interfaces where the easiest path causes security vulnerabilities. Claude Code CX Codex Cursor +1 6,900installs agentic-actions-auditor trailofbits Inspects GitHub Actions workflows for prompt injection risks and insecure AI agent setups. Catches attacker inputs leaking into prompts via event contexts or environment variables. Claude Code CX Codex Cursor +1 6,700installs gh-cli trailofbits A skill that redirects GitHub requests from curl and fetch to authenticated gh CLI for repositories, pull requests, and issues. Use it for private repos and higher API limits. Claude Code CX Codex Cursor +1 6,600installs variant-analysis trailofbits Finds related occurrences of an already identified defect across a repository. Use it after a vulnerability or logic issue turns up and similar code needs checking. Claude Code CX Codex Cursor +1 6,400installs

Similar

lint-and-validate sickn33 Runs configured linters and type checkers after code changes, telling actual failures apart from tools that never ran. Claude Code CX Codex Cursor +1 1,300installs dart-add-unit-test dart-lang Writes Dart and Flutter unit tests with package:test: files under test/, mockito mocks when dependencies get in the way, and a rerun loop until the suite is green. Claude Code CX Codex Cursor +1 19,100installs improve-codebase-architecture Matt Pocock This skill scans a codebase for architectural friction, then builds a visual HTML report with refactoring candidates. Use it before a deeper architecture review. Claude Code 1,163,035installs design-taste-frontend Leonxlnx This skill directs the design of public pages and work screens, then checks the result in a browser through screenshots. Use it when an interface feels generic or unfinished. Claude Code CX Codex Cursor +1 673,100installs tdd Matt Pocock Guides the red-green TDD loop: ensures tests are written first, keep them at public interfaces, and avoid coupling to implementation details. Claude Code 1,141,062installs skill-creator official anthropics Creates and refines skills, then tests them with prompts, evaluations, and performance checks. Claude Code Claude.ai 414,180installs agent-browser vercel-labs A CLI skill for browser control: it opens pages, fills forms, clicks buttons, and tests web apps. Use it when an agent needs to act inside a website. Claude Code CX Codex Cursor +1 1,200,000installs prototype Matt Pocock Creates throwaway prototypes for checking state logic or exploring UI before committing the decision to the main codebase. Claude Code 986,201installs

Questions about libfuzzer

How do I install libfuzzer in Claude Code?

Run npx skills add trailofbits/skills --skill libfuzzer -a claude-code. The skill lands at ~/.claude/skills/libfuzzer/SKILL.md.

What does libfuzzer do?

It guides the agent through libFuzzer setup: writing the harness, compiling with -fsanitize=fuzzer, adding a corpus, dictionary and sanitizers, then triaging what the campaign returns.

Should I use libFuzzer or AFL++?

libFuzzer is the quicker install and runs single-core, while AFL++ is built for multi-core campaigns with more varied mutations. The harnesses are compatible, so switching later costs little.

See also

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor