Skip to main content
skill CX Codex

ruzzy — Claude Code skill: fuzz Ruby and its C extensions

This skill installs and runs Ruzzy, a coverage-guided Ruby fuzzer built on libFuzzer. Reach for it when a gem needs crash hunting or a native extension needs a memory-safety check.

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

What ruzzy does

Ruzzy brings coverage-guided fuzzing to Ruby on top of libFuzzer. The skill walks through installation, harness setup and a fuzzing campaign against either plain Ruby code or the native C extensions shipped inside gems. Linux x86-64 and AArch64/ARM64 are supported; macOS and Windows users go through the Dockerfile or the development environment in the repository.

Plain Ruby needs two scripts. A tracer calls Ruzzy.trace('test_harness.rb'), and the harness itself defines a test_one_input lambda that returns 0 and hands control to Ruzzy.fuzz. C extensions skip the tracer and run from a single file — wrap the call in a rescue so Ruby exceptions don't kill the fuzzer, since the target is memory corruption, not ordinary errors. Keep the harness deterministic; randomness or time-based logic breaks it.

Set ASAN_OPTIONS with allocator_may_return_null=1, detect_leaks=0 and use_sigaltstack=0 before a campaign. LD_PRELOAD points at the ASan path and belongs on the command line rather than in an exported variable, otherwise it can leak into other programs. Building gems with sanitizers takes clang plus flags such as -fsanitize=address,fuzzer-no-link. An old clang is where this falls over — check the version first.

What it helps with

  • hunt crashes in a pure Ruby library with coverage guidance
  • check a gem's C extension for memory corruption
  • compile a gem with AddressSanitizer and instrumentation flags
  • replay a saved crash input after a campaign
  • run libFuzzer with a corpus and custom limits

Example prompts for the agent

  • Set up Ruzzy and write a harness to fuzz my Ruby library
  • Build my gem's C extension with sanitizers and start fuzzing
  • Help me reproduce the crash in crash-253420c1158bc6382093d409ce2e9cff5806e980

How to install ruzzy

1Skills CLI (Vercel)

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

2Manually: put the files in place

~/.claude/skills/ruzzy/SKILL.md

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

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about ruzzy

How do I install ruzzy in Claude Code?

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

What does ruzzy do?

It sets up and runs Ruzzy, a coverage-guided Ruby fuzzer built on libFuzzer. The skill covers harness structure for plain Ruby and C extensions, plus sanitizer builds.

What do I need to run Ruzzy?

Linux x86-64 or AArch64/ARM64, a recent clang, and Ruby with gem installed. On macOS or Windows, use the Dockerfile or the development environment from the repository.

Similar skills

All skills for Testing and QA →

From the same set77

testing-handbook-generator Turns Trail of Bits Testing Handbook pages into Claude skills, picking a template per section type and writing the SKILL.md files for you. CX Codex +1 5,200installs second-opinion Runs external CLI code reviews via Codex or Antigravity. It inspects dirty working trees, branch diffs, and specific commits without editing files. CX Codex +1 5,300installs burpsuite-project-parser Explores and queries Burp Suite project files from the command line. It extracts proxy history, scanner findings, and HTTP traffic without opening the desktop app. CX Codex +1 5,100installs yara-rule-authoring Authors and reviews YARA-X detection rules for malware hunting, flagging strings that produce weak atoms and conditions that will fire on clean files. CX Codex +1 5,100installs wycheproof Validates cryptographic implementations using Project Wycheproof test vectors. It helps your agent spot known vulnerabilities and edge cases across AES, RSA, and ECDSA. CX Codex +1 5,200installs skill-improver This skill runs repeated review and fix rounds on another skill until critical and major findings are gone. CX Codex +1 5,000installs let-fate-decide This skill uses a Tarot spread to suggest a direction when a request leaves several reasonable options open. It suits casual handoffs where the agent is asked to choose. CX Codex +1 4,700installs zeroize-audit Finds passwords, keys and tokens left in memory across C, C++ and Rust, and checks whether the compiler threw their wiping away. CX Codex +1 4,700installs

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