{"owner":"projectdiscovery","repo":"nuclei","hasSkills":true,"hasMcp":false,"mcpConfig":null,"found":["CLAUDE.md"],"skills":{"CLAUDE.md":"# CLAUDE.md\n\nThis file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.\n\n## Project Overview\n\nNuclei 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.\n\n## Development Commands\n\n### Building and Testing\n- `make build` - Build the main nuclei binary to ./bin/nuclei\n- `make test` - Run unit tests with race detection\n- `make integration` - Run the native integration suite via `go test -tags=integration ./internal/tests/integration`\n- `make functional` - CI-only functional suite entry point\n- `make vet` - Run go vet for code analysis\n- `make tidy` - Clean up go modules\n\n### Validation and Linting\n- `make template-validate` - Validate nuclei templates using the built binary\n- `go fmt ./...` - Format Go code\n- `go vet ./...` - Static analysis\n\n### Development Tools\n- `make devtools-all` - Build all development tools (bindgen, tsgen, scrapefuncs)\n- `make jsupdate-all` - Update JavaScript bindings and TypeScript definitions\n- `make docs` - Generate documentation\n- `make memogen` - Generate memoization code for JavaScript libraries\n\n### Testing Specific Components\n- Run single test: `go test -v ./pkg/path/to/package -run TestName`\n- Integration tests are in `internal/tests/integration/` and run via `go test -tags=integration ./internal/tests/integration`\n\n## Architecture Overview\n\n### Core Components\n- **cmd/nuclei** - Main CLI entry point with flag parsing and configuration\n- **internal/runner** - Core runner that orchestrates the entire scanning process\n- **pkg/core** - Execution engine with work pools and template clustering\n- **pkg/templates** - Template parsing, compilation, and management\n- **pkg/protocols** - Protocol implementations (HTTP, DNS, Network, etc.)\n- **pkg/operators** - Matching and extraction logic (matchers/extractors)\n- **pkg/catalog** - Template discovery and loading from disk/remote sources\n\n### Protocol Architecture\nEach protocol (HTTP, DNS, Network, etc.) implements:\n- Request interface with Compile(), ExecuteWithResults(), Match(), Extract() methods\n- Operators embedding for matching/extraction functionality\n- Protocol-specific request building and execution logic\n\n### Template System\n- Templates are YAML files defining vulnerability detection logic\n- Compiled into executable requests with operators (matchers/extractors)\n- Support for workflows (multistep template execution)\n- Template clustering optimizes identical requests across multiple templates\n\n### Key Execution Flow\n1. Template loading and compilation via pkg/catalog/loader\n2. Input provider setup for targets\n3. Engine creation with work pools for concurrency\n4. Template execution with result collection via operators\n5. Output writing and reporting integration\n\n### JavaScript Integration\n- Custom JavaScript runtime for code protocol templates\n- Auto-generated bindings in pkg/js/generated/\n- Library implementations in pkg/js/libs/\n- Development tools for binding generation in pkg/js/devtools/\n\n## Template Development\n- Templates located in separate nuclei-templates repository\n- YAML format with info, requests, and operators sections  \n- Support for multiple protocol types in single template\n- Built-in DSL functions for dynamic content generation\n- Template validation available via `make template-validate`\n\n## Key Directories\n- **lib/** - SDK for embedding nuclei as a library\n- **examples/** - Usage examples for different scenarios\n- **internal/tests/integration/** - Native integration suite and owned testdata for harness coverage\n- **internal/tests/functional/** - CI-only native functional comparison suite and testcase assets\n- **pkg/fuzz/** - Fuzzing engine and DAST capabilities\n- **pkg/input/** - Input processing for various formats (Burp, OpenAPI, etc.)\n- **pkg/reporting/** - Result export and issue tracking integrations"},"files":{"CLAUDE.md":"# CLAUDE.md\n\nThis file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.\n\n## Project Overview\n\nNuclei 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.\n\n## Development Commands\n\n### Building and Testing\n- `make build` - Build the main nuclei binary to ./bin/nuclei\n- `make test` - Run unit tests with race detection\n- `make integration` - Run the native integration suite via `go test -tags=integration ./internal/tests/integration`\n- `make functional` - CI-only functional suite entry point\n- `make vet` - Run go vet for code analysis\n- `make tidy` - Clean up go modules\n\n### Validation and Linting\n- `make template-validate` - Validate nuclei templates using the built binary\n- `go fmt ./...` - Format Go code\n- `go vet ./...` - Static analysis\n\n### Development Tools\n- `make devtools-all` - Build all development tools (bindgen, tsgen, scrapefuncs)\n- `make jsupdate-all` - Update JavaScript bindings and TypeScript definitions\n- `make docs` - Generate documentation\n- `make memogen` - Generate memoization code for JavaScript libraries\n\n### Testing Specific Components\n- Run single test: `go test -v ./pkg/path/to/package -run TestName`\n- Integration tests are in `internal/tests/integration/` and run via `go test -tags=integration ./internal/tests/integration`\n\n## Architecture Overview\n\n### Core Components\n- **cmd/nuclei** - Main CLI entry point with flag parsing and configuration\n- **internal/runner** - Core runner that orchestrates the entire scanning process\n- **pkg/core** - Execution engine with work pools and template clustering\n- **pkg/templates** - Template parsing, compilation, and management\n- **pkg/protocols** - Protocol implementations (HTTP, DNS, Network, etc.)\n- **pkg/operators** - Matching and extraction logic (matchers/extractors)\n- **pkg/catalog** - Template discovery and loading from disk/remote sources\n\n### Protocol Architecture\nEach protocol (HTTP, DNS, Network, etc.) implements:\n- Request interface with Compile(), ExecuteWithResults(), Match(), Extract() methods\n- Operators embedding for matching/extraction functionality\n- Protocol-specific request building and execution logic\n\n### Template System\n- Templates are YAML files defining vulnerability detection logic\n- Compiled into executable requests with operators (matchers/extractors)\n- Support for workflows (multistep template execution)\n- Template clustering optimizes identical requests across multiple templates\n\n### Key Execution Flow\n1. Template loading and compilation via pkg/catalog/loader\n2. Input provider setup for targets\n3. Engine creation with work pools for concurrency\n4. Template execution with result collection via operators\n5. Output writing and reporting integration\n\n### JavaScript Integration\n- Custom JavaScript runtime for code protocol templates\n- Auto-generated bindings in pkg/js/generated/\n- Library implementations in pkg/js/libs/\n- Development tools for binding generation in pkg/js/devtools/\n\n## Template Development\n- Templates located in separate nuclei-templates repository\n- YAML format with info, requests, and operators sections  \n- Support for multiple protocol types in single template\n- Built-in DSL functions for dynamic content generation\n- Template validation available via `make template-validate`\n\n## Key Directories\n- **lib/** - SDK for embedding nuclei as a library\n- **examples/** - Usage examples for different scenarios\n- **internal/tests/integration/** - Native integration suite and owned testdata for harness coverage\n- **internal/tests/functional/** - CI-only native functional comparison suite and testcase assets\n- **pkg/fuzz/** - Fuzzing engine and DAST capabilities\n- **pkg/input/** - Input processing for various formats (Burp, OpenAPI, etc.)\n- **pkg/reporting/** - Result export and issue tracking integrations"},"items":[{"name":"CLAUDE.md","path":"CLAUDE.md","title":"CLAUDE.md","content":"# CLAUDE.md\n\nThis file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.\n\n## Project Overview\n\nNuclei 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.\n\n## Development Commands\n\n### Building and Testing\n- `make build` - Build the main nuclei binary to ./bin/nuclei\n- `make test` - Run unit tests with race detection\n- `make integration` - Run the native integration suite via `go test -tags=integration ./internal/tests/integration`\n- `make functional` - CI-only functional suite entry point\n- `make vet` - Run go vet for code analysis\n- `make tidy` - Clean up go modules\n\n### Validation and Linting\n- `make template-validate` - Validate nuclei templates using the built binary\n- `go fmt ./...` - Format Go code\n- `go vet ./...` - Static analysis\n\n### Development Tools\n- `make devtools-all` - Build all development tools (bindgen, tsgen, scrapefuncs)\n- `make jsupdate-all` - Update JavaScript bindings and TypeScript definitions\n- `make docs` - Generate documentation\n- `make memogen` - Generate memoization code for JavaScript libraries\n\n### Testing Specific Components\n- Run single test: `go test -v ./pkg/path/to/package -run TestName`\n- Integration tests are in `internal/tests/integration/` and run via `go test -tags=integration ./internal/tests/integration`\n\n## Architecture Overview\n\n### Core Components\n- **cmd/nuclei** - Main CLI entry point with flag parsing and configuration\n- **internal/runner** - Core runner that orchestrates the entire scanning process\n- **pkg/core** - Execution engine with work pools and template clustering\n- **pkg/templates** - Template parsing, compilation, and management\n- **pkg/protocols** - Protocol implementations (HTTP, DNS, Network, etc.)\n- **pkg/operators** - Matching and extraction logic (matchers/extractors)\n- **pkg/catalog** - Template discovery and loading from disk/remote sources\n\n### Protocol Architecture\nEach protocol (HTTP, DNS, Network, etc.) implements:\n- Request interface with Compile(), ExecuteWithResults(), Match(), Extract() methods\n- Operators embedding for matching/extraction functionality\n- Protocol-specific request building and execution logic\n\n### Template System\n- Templates are YAML files defining vulnerability detection logic\n- Compiled into executable requests with operators (matchers/extractors)\n- Support for workflows (multistep template execution)\n- Template clustering optimizes identical requests across multiple templates\n\n### Key Execution Flow\n1. Template loading and compilation via pkg/catalog/loader\n2. Input provider setup for targets\n3. Engine creation with work pools for concurrency\n4. Template execution with result collection via operators\n5. Output writing and reporting integration\n\n### JavaScript Integration\n- Custom JavaScript runtime for code protocol templates\n- Auto-generated bindings in pkg/js/generated/\n- Library implementations in pkg/js/libs/\n- Development tools for binding generation in pkg/js/devtools/\n\n## Template Development\n- Templates located in separate nuclei-templates repository\n- YAML format with info, requests, and operators sections  \n- Support for multiple protocol types in single template\n- Built-in DSL functions for dynamic content generation\n- Template validation available via `make template-validate`\n\n## Key Directories\n- **lib/** - SDK for embedding nuclei as a library\n- **examples/** - Usage examples for different scenarios\n- **internal/tests/integration/** - Native integration suite and owned testdata for harness coverage\n- **internal/tests/functional/** - CI-only native functional comparison suite and testcase assets\n- **pkg/fuzz/** - Fuzzing engine and DAST capabilities\n- **pkg/input/** - Input processing for various formats (Burp, OpenAPI, etc.)\n- **pkg/reporting/** - Result export and issue tracking integrations","category":"root","tokens":1019}]}