CLI Reference
Naminter provides a feature-rich command-line interface for username enumeration across hundreds of websites.
Quick Start
# Search for a single username
naminter -u john_doe
# Search for multiple usernames
naminter -u user1 -u user2 -u user3
# Show version info
naminter --version
# Show help
naminter --help
Commands
naminter (main)
The default command runs username enumeration.
naminter validate
Validate a local WhatsMyName JSON data file against its schema.
Both --local-schema and --local-data are required.
naminter format
Format a WhatsMyName JSON data file according to schema ordering and sorting rules. Use --output-dataset and --output-schema to write to separate paths; if omitted, the dataset and schema are overwritten in place.
# Format in-place (overwrites both files)
naminter format --local-schema schema.json --local-data wmn-data.json
# Format both to separate output files
naminter format --local-schema schema.json --local-data wmn-data.json \
--output-dataset formatted-data.json --output-schema formatted-schema.json
Options Reference
Input
| Option | Short | Description |
|---|---|---|
--username |
-u |
Username(s) to search. Repeatable. Required unless --test. |
--site |
-s |
Limit search to specific site(s). Repeatable. |
# Single username, specific sites
naminter -u john_doe -s GitHub -s "X"
# Multiple usernames across all sites
naminter -u alice -u bob
Data Sources
By default, Naminter fetches the WhatsMyName dataset and schema from GitHub. Override with local or custom remote files.
| Option | Description |
|---|---|
--local-list |
Path to a local WMN JSON data file. |
--local-schema |
Path to a local WMN JSON schema file. |
--remote-list |
URL to fetch remote WMN data. |
--remote-schema |
URL to fetch remote WMN schema. |
# Use local data file
naminter -u john_doe --local-list ./wmn-data.json
# Use both local data and schema
naminter -u john_doe --local-list ./wmn-data.json --local-schema ./schema.json
# Use a custom remote source
naminter -u john_doe --remote-list https://example.com/wmn-data.json
Warning
You cannot combine --local-list with --remote-list, or --local-schema with a custom --remote-schema.
Category Filtering
Filter which site categories are included or excluded from enumeration.
| Option | Description |
|---|---|
--include-categories |
Only include sites from these categories. Repeatable. |
--exclude-categories |
Exclude sites from these categories. Repeatable. |
# Only check social media and coding platforms
naminter -u john_doe --include-categories social --include-categories coding
# Skip adult and gaming sites
naminter -u john_doe --exclude-categories adult --exclude-categories gaming
Result Filtering
Control which result statuses appear in the output. If no filter is set, --filter-exists is applied by default.
| Option | Description |
|---|---|
--filter-all |
Show all results regardless of status. |
--filter-exists |
Show results where the username exists. (default) |
--filter-partial |
Show partial match results. |
--filter-conflicting |
Show conflicting results. |
--filter-unknown |
Show unknown status results. |
--filter-missing |
Show results where the username is missing. |
--filter-not-valid |
Show results for sites marked as not valid. |
--filter-errors |
Show results that encountered errors. |
# Show everything
naminter -u john_doe --filter-all
# Show only found + errors for debugging
naminter -u john_doe --filter-exists --filter-errors
# Show only missing accounts
naminter -u john_doe --filter-missing
Status symbols (used in console and progress output):
| Symbol | Status | Meaning |
|---|---|---|
+ |
exists | Username found on the site. |
- |
missing | Username not found on the site. |
~+ / ~- |
partial exists / partial missing | Only some detection criteria matched (progress shows ~+ / ~-). |
* |
conflicting | Both exists and missing indicators matched. |
? |
unknown | Result could not be classified. |
X |
not valid | Site marked invalid in dataset. |
! |
error | Request or processing failed. |
Network Configuration
| Option | Default | Description |
|---|---|---|
--proxy |
— | Proxy URL (e.g. http://host:port, socks5://host:port). |
--timeout |
30 |
HTTP request timeout in seconds (1–300). |
--allow-redirects / --no-allow-redirects |
off | Follow HTTP redirects. |
--verify-ssl / --no-verify-ssl |
off | Verify SSL certificates. |
--impersonate |
chrome |
Browser to impersonate. Use none to disable. |
--max-tasks |
50 |
Maximum concurrent requests (1–1000). |
# Use a SOCKS5 proxy with longer timeout
naminter -u john_doe --proxy socks5://127.0.0.1:9050 --timeout 60
# Disable browser impersonation
naminter -u john_doe --impersonate none
# Increase concurrency
naminter -u john_doe --max-tasks 200
# Enable SSL verification and redirects
naminter -u john_doe --verify-ssl --allow-redirects
TLS Fingerprinting
Advanced options for evading bot detection.
| Option | Description |
|---|---|
--ja3 |
Custom JA3 fingerprint string. |
--akamai |
Custom Akamai fingerprint string. |
--extra-fp |
Extra fingerprint options as a JSON string. |
# Custom JA3 fingerprint
naminter -u john_doe --ja3 "771,4865-4866-4867..."
# Extra fingerprint options
naminter -u john_doe --extra-fp '{"tls_grease": true, "tls_cert_compression": "brotli"}'
Validation Mode
| Option | Description |
|---|---|
--mode |
Detection mode: all (default) or any. |
all: EXISTS when both the expected HTTP status and the expected body string match; MISSING when both the missing status and missing string match. If only one matches, you get PARTIAL_EXISTS or PARTIAL_MISSING (strict AND).any: EXISTS when either the expected status or the expected body string matches; MISSING when either the missing status or missing string matches.
Site Testing
| Option | Description |
|---|---|
--test |
Run site validation using known usernames from the dataset. No --username required. |
--skip-validation |
Skip JSON schema validation of the WMN data on load. |
# Test all sites against their known usernames
naminter --test
# Test specific sites
naminter --test -s GitHub -s "X"
# Test with verbose output for debugging
naminter --test -vvv
# Skip schema validation for faster startup
naminter -u john_doe --skip-validation
Export
Export results to one or more formats. Each format has an optional path flag; if omitted, a timestamped filename is generated in the current directory.
| Flag | Path Option | Format |
|---|---|---|
--csv |
--csv-path |
CSV |
--json |
--json-path |
JSON |
--html |
--html-path |
HTML report |
--pdf |
--pdf-path |
PDF report |
# Export to CSV with auto-generated filename
naminter -u john_doe --csv
# Export to multiple formats with custom paths
naminter -u john_doe \
--csv --csv-path results.csv \
--json --json-path results.json \
--html --html-path report.html \
--pdf --pdf-path report.pdf
# Export all results (not just "exists")
naminter -u john_doe --filter-all --csv --json
Response Saving
Save raw HTTP responses to disk for offline analysis.
| Option | Description |
|---|---|
--save-response |
Enable saving HTTP response bodies. |
--response-dir |
Directory to save responses in. Defaults to current directory. |
--open-response |
Open saved response files in the browser. |
--browse |
Open found profile URLs in the browser. |
# Save all responses to a folder
naminter -u john_doe --save-response --response-dir ./responses --filter-all
# Save responses and auto-open in browser
naminter -u john_doe --save-response --open-response
# Open found profiles directly in browser
naminter -u john_doe --browse
Display & Logging
| Option | Short | Description |
|---|---|---|
--verbose |
-v |
Increase verbosity. -v errors, -vv details, -vvv headers. |
--no-color |
— | Disable colored output. |
--no-progressbar |
— | Disable the progress bar. |
--log-level |
— | Log level: DEBUG, INFO, WARNING, ERROR, CRITICAL. |
--log-file |
— | Path to write log output. |
# Maximum verbosity with logging
naminter -u john_doe -vvv --log-level DEBUG --log-file naminter.log
# Clean output for piping
naminter -u john_doe --no-color --no-progressbar
# Show error details only
naminter -u john_doe -v --filter-errors
Practical Examples
OSINT Investigation
Enumerate a target username across all platforms, export a full report, and save responses for evidence:
naminter -u target_user \
--filter-all \
--save-response --response-dir ./evidence \
--csv --csv-path report.csv \
--html --html-path report.html \
-vv
Proxy Routing
Route all traffic through a proxy:
Targeted Category Scan
Only check social media platforms, exclude adult content:
CI / Automation
Non-interactive output suitable for scripts and pipelines:
naminter -u john_doe \
--no-color \
--no-progressbar \
--json --json-path results.json \
--filter-exists
Dataset Maintenance
Validate and format a local copy of the WhatsMyName data:
# Validate the dataset
naminter validate \
--local-schema wmn-data-schema.json \
--local-data wmn-data.json
# Auto-format the dataset
naminter format \
--local-schema wmn-data-schema.json \
--local-data wmn-data.json
Debugging a Specific Site
Test a single site with maximum verbosity and response saving: