Your First Scan
Run a Scan
Pick a project directory and scan it:
noir -b /path/to/your/app
Or if you're already inside the project:
noir -b .

Noir reads the source files, detects which frameworks are in use, and prints every endpoint it finds — methods, paths, parameters, headers, and cookies.
Check What Was Detected
Curious which technologies Noir picked up? Add --include-techs to see them alongside the results:
noir -b . --include-techs
To see every technology Noir knows how to analyze:
noir --list-techs
If your framework isn't listed, you can still use AI-powered analysis to detect endpoints.
Try Different Output Formats
The default output is a human-readable table. Depending on your workflow, you might want something else:
# Machine-readable JSON for scripting and pipelines
noir -b . -f json
# YAML for easy reading and config-friendly workflows
noir -b . -f yaml
# OpenAPI spec — useful for generating API docs or feeding into tools
noir -b . -f oas3
# cURL commands you can run immediately against a live target
noir -b . -f curl -u https://your-target.com
See all available formats in the Output Formats section.
Save Results to a File
Instead of printing to the terminal, write the output to a file with -o:
noir -b . -f json -o results.json
This is useful for diffing results between scans, feeding into CI pipelines, or sharing with your team.
Trace Endpoints Back to Source
Want to know exactly where an endpoint was defined? Add --include-path to show source file locations:
noir -b . --include-path
Combine it with other options for a complete picture:
noir -b . --include-path --include-techs -f json -o results.json
Focus Your Scan
Large monorepos may contain many frameworks. You can narrow the scan to what matters:
# Run only the Rails and Django detectors (skip everything else)
noir -b . --only-techs rails,django
# Force-tag the project with these techs without running their detectors
noir -b . --techs rails,django
# Scan everything except Express
noir -b . --exclude-techs express
# Skip files by glob (useful in monorepos — comma-separated)
noir -b . --exclude-path "*_test.go,vendor/*,**/node_modules/**"
--only-techs and --techs look similar but do different things: --only-techs filters the detector list (faster scan, only those detectors run), while --techs adds techs to the result without running detection (useful when you already know the stack and want to skip discovery).
Enrich the Output
A few flags add extra context to each endpoint without changing the detection pipeline:
# Attach 1-hop handler callees (function/method calls inside the route body)
noir -b . --include-callee
# Attach an AI-review-ready context (guards, callees, sinks, validators, signals)
noir -b . --ai-context
See Callee Coverage and AI Context for the data shape and per-framework support.
Quick Reference
| Flag | What it does |
|---|---|
-b <path> |
Directory to scan |
-f <format> |
Output format (json, yaml, oas3, curl, etc.) |
-o <file> |
Write output to a file |
-u <url> |
Base URL for cURL/HTTPie output |
--include-path |
Show source file locations |
--include-techs |
Show detected technologies |
--include-callee |
Attach 1-hop handler callees |
--ai-context |
Attach guards, sinks, validators, and signals for AI review |
--set-pvalue / --set-pvalue-<type> |
Fill parameter values in output (see HTTP Client Commands) |
--only-techs |
Run only these tech detectors (skip the rest) |
--techs |
Force-tag these techs without running their detectors |
--exclude-techs |
Skip these frameworks |
--exclude-path |
Skip files matching a comma-separated glob list |
--status-codes |
Probe each endpoint and attach the observed HTTP status code |
--exclude-codes |
Drop endpoints whose probed status matches (comma-separated; pairs with --status-codes) |
--config-file <path> |
Load default options from a YAML config file |
--concurrency <N> |
Worker count (default: CPU cores) |
--cache-disable |
Disable the LLM response cache for this run |
--cache-clear |
Clear the LLM response cache before running |
--verbose |
Detailed logging |
--no-log |
Suppress all logs |
--no-color |
Disable ANSI colors in plain output |
--build-info |
Print noir / Crystal / LLVM versions and target triple |
--help |
Full help |
--help-all |
Full help with examples and environment variables |
You've completed the Getting Started guide! Here's what to explore next:
- Configurations — Set default options so you don't repeat flags every time
- Output Formats — Dive deeper into all output formats
- Passive Scan — Scan for security issues like hardcoded secrets and misconfigurations
- AI Power — Use AI to detect endpoints in unsupported frameworks