Skip to main content

CLI Reference

Complete reference for running DAST Scanner from the Docker CLI.

Prerequisites

  • Docker installed and running
  • Levo account and credentials

Docker Image

ghcr.io/levoai/levoai-shadownet:latest

Command Overview

CommandPurpose
scanRun full security scan (crawl + passive + active testing). Full flag reference below.
loginAuthenticate with the Levo platform. Flags: -k/--auth-key, -o/--org-id. Persists a session under ~/.config/configstore.
logoutRemove saved credentials (no flags).
exportExport scan results to a different format. Flags: --scan-id, --format [json|sarif|csv], --output-file.

Scan Command

Run comprehensive security scanning on a target.

docker run --rm -it --shm-size=1g \
ghcr.io/levoai/levoai-shadownet:latest \
scan [OPTIONS] TARGET

Basic Examples

# Simple scan with no authentication
docker run --rm -it --shm-size=1g \
ghcr.io/levoai/levoai-shadownet:latest \
scan https://example.com

# Scan with form login
docker run --rm -it --shm-size=1g \
ghcr.io/levoai/levoai-shadownet:latest \
scan https://example.com \
--auth form \
--username admin \
--password secret \
--login-url https://example.com/login

# Scan with bearer token
docker run --rm -it --shm-size=1g \
ghcr.io/levoai/levoai-shadownet:latest \
scan https://api.example.com \
--auth token \
--token "Bearer eyJhbGciOi..."

# API-only scan
docker run --rm -it --shm-size=1g \
ghcr.io/levoai/levoai-shadownet:latest \
scan https://api.example.com --scan-mode api

# Passive scanning only
docker run --rm -it --shm-size=1g \
ghcr.io/levoai/levoai-shadownet:latest \
scan https://example.com --no-active

Scan Options

Target

OptionTypeDescription
TARGETstringTarget URL to scan (required)

Scan Phases

OptionTypeDefaultDescription
--passive / --no-passiveflagenabledEnable passive scanning
--active / --no-activeflagenabledEnable active injection testing
--js-cve / --no-js-cveflagdisabledEnable JavaScript library CVE scanning (cve.js)
--dom-cve / --no-dom-cveflagdisabledEnable DOM vulnerability scanning (cve.dom)
--ai / --no-aiflagdisabledEnable AI-powered analysis (scan.enable_ai)

Crawling & Discovery

OptionTypeDefaultDescription
--crawl-mode [standard|ai|hybrid]enumstandardCrawling strategy
--max-depthinteger3Maximum crawl depth
--max-pagesinteger100Maximum pages to crawl
--delay-secondsinteger0Delay between requests (seconds)

Active Scanning Tuning

OptionTypeDefaultDescription
--max-payloadsinteger-Max payloads per injection point
--inject-locationsstring-Comma-separated: query, body, header, cookie, path
--disable-categoriesstring-Comma-separated vulnerability categories to skip
--active-delay-msinteger-Delay between active requests (ms)

Authentication

OptionTypeDescription
--auth [none|form|token|ai]enumAuth strategy (default: none)
--username / -ustringUsername for login
--password / -pstringPassword for login
--token / -tstringBearer token
--login-urlstringLogin page URL (for form auth)

Severity & Filtering

OptionTypeDefaultDescription
--severity [critical|high|medium|low|info]enumlowMinimum severity to report (matches reporting.severity)

Output

OptionTypeDefaultDescription
--output [table|json|sarif|quiet]enumtableOutput format
--output-file / -fpath-Write results to file
--namestring-Scan name (for dashboard)

CI/CD Integration

OptionTypeDescription
--ci / --non-interactiveflagNon-interactive mode (no prompts)
--fail-on [critical|high|medium|low|info]enumExit code 1 if findings at or above severity

Config file

OptionTypeDescription
--configpathPath to a levo-dast.yml config file. Overrides auto-discovery (./levo-dast.yml, ./levo-dast.yaml).

Levo Platform

OptionTypeDescription
--org-idstringLevo organization ID (or LEVOAI_ORG_ID).
--workspace-idstringLevo workspace ID (or LEVOAI_WORKSPACE_ID).
--env-idstringLevo environment ID (or LEVOAI_ENV_ID). Required when --send-issues is used.
--app-idstringLevo application ID (or LEVOAI_APP_ID).
--send-issuesflagPush findings to the Levo dashboard (reporting.send_issues). Requires --env-id.
--satellite-urlstringRoute scan traffic through a Levo Satellite (satellite.url).

Advanced

OptionTypeDescription
--timeout-secondsintegerScan timeout (seconds)
--ignore-third-partyflagIgnore third-party domains
--capture-domainsstringComma-separated domains to capture
--exclude-domainsstringComma-separated domains to exclude
--verboseflagVerbose logging

Exit Codes

CodeMeaning
0Scan completed successfully
1Scan failed or findings at/above --fail-on threshold
130Scan interrupted by user

Getting Help

docker run --rm -it \
ghcr.io/levoai/levoai-shadownet:latest \
--help

docker run --rm -it \
ghcr.io/levoai/levoai-shadownet:latest \
scan --help

Next Steps

Was this page helpful?