agentleFS
projectdiscoveryprojectdiscovery/nuclei/CLAUDE.md

nuclei

CLAUDE.md33k starsChanged 11 months agoMITView on GitHub

Nuclei is a modern, high-performance vulnerability scanner built in Go that leverages YAML-based templates for customizable vulnerability detection. It supports multiple protocols (HTTP, DNS, TCP, SSL, WebSocket, WHOIS, JavaScript, Code) and is designed for zero false positives through real-world condition simulation.

We split this CLAUDE.md into the rules it gives an agent

1 rule. About 0 are common, 0 are distinctive, and 1 is very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈0

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 1

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Run single test: go test -v ./pkg/path/to/package -run TestName

    line 31

≈ “Common” is an estimate: at least 1 in 5 of the 25,680 CLAUDE.md files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
CLAUDE.md

CLAUDE.md

This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.

Project Overview

Nuclei is a modern, high-performance vulnerability scanner built in Go that leverages YAML-based templates for customizable vulnerability detection. It supports multiple protocols (HTTP, DNS, TCP, SSL, WebSocket, WHOIS, JavaScript, Code) and is designed for zero false positives through real-world condition simulation.

Development Commands

Building and Testing

  • make build - Build the main nuclei binary to ./bin/nuclei
  • make test - Run unit tests with race detection
  • make integration - Run the native integration suite via go test -tags=integration ./internal/tests/integration
  • make functional - CI-only functional suite entry point
  • make vet - Run go vet for code analysis
  • make tidy - Clean up go modules

Validation and Linting

  • make template-validate - Validate nuclei templates using the built binary
  • go fmt ./... - Format Go code
  • go vet ./... - Static analysis

Development Tools

  • make devtools-all - Build all development tools (bindgen, tsgen, scrapefuncs)
  • make jsupdate-all - Update JavaScript bindings and TypeScript definitions
  • make docs - Generate documentation
  • make memogen - Generate memoization code for JavaScript libraries

Testing Specific Components

  • Run single test: go test -v ./pkg/path/to/package -run TestName
  • Integration tests are in internal/tests/integration/ and run via go test -tags=integration ./internal/tests/integration

Architecture Overview

Core Components

  • cmd/nuclei - Main CLI entry point with flag parsing and configuration
  • internal/runner - Core runner that orchestrates the entire scanning process
  • pkg/core - Execution engine with work pools and template clustering
  • pkg/templates - Template parsing, compilation, and management
  • pkg/protocols - Protocol implementations (HTTP, DNS, Network, etc.)
  • pkg/operators - Matching and extraction logic (matchers/extractors)
  • pkg/catalog - Template discovery and loading from disk/remote sources

Protocol Architecture

Each protocol (HTTP, DNS, Network, etc.) implements:

  • Request interface with Compile(), ExecuteWithResults(), Match(), Extract() methods
  • Operators embedding for matching/extraction functionality
  • Protocol-specific request building and execution logic

Template System

  • Templates are YAML files defining vulnerability detection logic
  • Compiled into executable requests with operators (matchers/extractors)
  • Support for workflows (multistep template execution)
  • Template clustering optimizes identical requests across multiple templates

Key Execution Flow

  1. Template loading and compilation via pkg/catalog/loader
  2. Input provider setup for targets
  3. Engine creation with work pools for concurrency
  4. Template execution with result collection via operators
  5. Output writing and reporting integration

JavaScript Integration

  • Custom JavaScript runtime for code protocol templates
  • Auto-generated bindings in pkg/js/generated/
  • Library implementations in pkg/js/libs/
  • Development tools for binding generation in pkg/js/devtools/

Template Development

  • Templates located in separate nuclei-templates repository
  • YAML format with info, requests, and operators sections
  • Support for multiple protocol types in single template
  • Built-in DSL functions for dynamic content generation
  • Template validation available via make template-validate

Key Directories

  • lib/ - SDK for embedding nuclei as a library
  • examples/ - Usage examples for different scenarios
  • internal/tests/integration/ - Native integration suite and owned testdata for harness coverage
  • internal/tests/functional/ - CI-only native functional comparison suite and testcase assets
  • pkg/fuzz/ - Fuzzing engine and DAST capabilities
  • pkg/input/ - Input processing for various formats (Burp, OpenAPI, etc.)
  • pkg/reporting/ - Result export and issue tracking integrations See SECURITY_CONTEXT.md for this repo's known vulnerabilities and recurring weak spots. Check it before writing or reviewing security-sensitive code.

Download now (ZIP)

Trending

Quiet since August.about the whole repository

Dec 2025: 1 mentionJan 2026: 2 mentionsFeb 2026: 0 mentionsMar 2026: 1 mentionApr 2026: 1 mentionMay 2026: 1 mentionJun 2026: 0 mentionsJul 2026: 0 mentionsAug 2026: 1 mentionSep 2026: 0 mentionsOct 2026: 0 mentionsNov 2026: 0 mentions
Dec 2025Jun 2026Nov 2026
Mentions a month of the projectdiscovery/nuclei repository that our weekly crawl found. There is no adoption data for this file yet.

Who's talking about projectdiscovery/nuclei

The biggest 5 of 48 mentions linking to the repository that our crawl found. Each line is their own headline.

See all 48

Talked about on GitHub, YouTube, Bluesky, Hacker News and the web (48 times).

On GitHub · 21

16 more on GitHub

On YouTube · 19

14 more on YouTube

On Bluesky · 6

1 more on Bluesky

On Hacker News · 1

On the web · 1

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.