How edoardottt/cariddi works
Cariddi is a command-line web crawler and security scanner. Users pipe targets into the CLI, which reads scan options and starts a configured crawler; crawled responses and URLs are analyzed for secrets, endpoints, extensions, errors, and useful information. Results are deduplicated and emitted to console or files, with optional JSON output and HTTP-response storage. The README documents these capabilities; some detector and output wiring is therefore shown at the capability level where source excerpts are incomplete.
Main entry points: main.go Scan coordinator · colly.go Colly crawler · scan.go Response analysis · output.go Output formatting
Components 20
CLI and input
- Target input
pkg/input/input.go - Options and validation
pkg/input/flags.go - Scan coordinator
cmd/cariddi/main.go
Crawling
- Colly crawler
pkg/crawler/colly.go - Response analysis
pkg/crawler/scan.go - URL utilities
internal/url/url.go
Detection
- Secret detection
pkg/scanner/secrets.go - Endpoint detection
pkg/scanner/endpoints.go - Extension detection
pkg/scanner/extensions.go - Error detection
pkg/scanner/error.go - Info detection
pkg/scanner/info.go
Results
- Scan results
pkg/crawler/options.go - Output formatting
pkg/output/output.go - JSON output
pkg/output/jsonl.go - HTML report
pkg/output/html.go - HTTP response archive
pkg/output/responses.go
Other components
- CLI user
- Target websites
- Output files
- Terminal
Connections 23
- CLI user → Target input: provides targets
README.md - CLI user → Options and validation: sets options
README.md - Scan coordinator → Options and validation: reads options
cmd/cariddi/main.go - Scan coordinator → Target input: reads targets
cmd/cariddi/main.go - Scan coordinator → Colly crawler: starts scans
cmd/cariddi/main.go - Colly crawler → Target websites: requests pages
pkg/crawler/colly.go - Colly crawler → URL utilities: normalizes targets
pkg/crawler/colly.go - Colly crawler → Response analysis: analyzes responses
pkg/crawler/colly.go - Response analysis → Secret detection: uses rules
pkg/crawler/scan.go - Response analysis → Endpoint detection: matches parameters
pkg/crawler/scan.go - Response analysis → Extension detection: matches extensions
pkg/crawler/scan.go - Response analysis → Error detection: matches errors
pkg/crawler/scan.go - Response analysis → Info detection: matches information
pkg/crawler/scan.go - Colly crawler → Scan results: collects findings
pkg/crawler/colly.go - Scan coordinator → Scan results: deduplicates findings
cmd/cariddi/main.go - Scan coordinator → Output formatting: formats results
cmd/cariddi/main.go - Scan coordinator → JSON output: emits JSON
README.md - Scan coordinator → HTML report: creates report
cmd/cariddi/main.go - Colly crawler → HTTP response archive: stores responses
pkg/crawler/colly.go - Output formatting → Output files: writes reports
pkg/output/output.go - HTML report → Output files: writes HTML
pkg/output/html.go - HTTP response archive → Output files: archives responses
pkg/output/responses.go - Output formatting → Terminal: prints findings
README.md