Skip to main content

CLI Reference

Complete reference for running DAST Scanner from the Docker (or Podman) CLI.

Prerequisites

  • Docker or Podman installed and running
  • Levo account and credentials

Docker Image

levoai/levoai-shadownet:stable

Command Overview

CommandPurpose
scanRun full security scan (crawl + passive + active testing). Full flag reference below.
loginAuthenticate with the Levo platform. Flags: -k/--key, -o/--organization, --env-id/--env-name, --base-url. Persists a session under ~/.config/configstore.
logoutRemove saved credentials (no flags).
exportExport an existing scan-results JSON to another format. Positional: export FORMAT INPUT OUTPUT. Formats: sarif, levo. Example: shadownet export sarif results.json results.sarif.

Scan Command

Run comprehensive security scanning on a target.

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

Basic Examples

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

# Scan with form login
docker run --rm -it --shm-size=1g \
levoai/levoai-shadownet:stable \
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 \
levoai/levoai-shadownet:stable \
scan https://api.example.com \
--auth token \
--token "Bearer eyJhbGciOi..."

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

# Passive scanning only
docker run --rm -it --shm-size=1g \
levoai/levoai-shadownet:stable \
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-cveflagenabledEnable JavaScript library CVE scanning (cve.js)
--dom-cve / --no-dom-cveflagenabledEnable DOM vulnerability scanning (cve.dom)
--ai / --no-aiflagenabledEnable 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)
--auth-session-filepathPath to a session-transplant JSON exported by the Levo browser extension (cookies + localStorage + sessionStorage). Skips the auth phase entirely — works with any MFA / SSO. Env: SHADOWNET_AUTH_SESSION_FILE. See Browser session.

Severity & Filtering

OptionTypeDefaultDescription
--severity [critical|high|medium|low|info]enummediumMinimum 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).

Timeouts

OptionTypeDefaultDescription
--timeoutintegernoneOverall scan timeout in seconds. Set to e.g. 600 for 10 minutes; unset means no timeout.
--crawl-timeoutintegerCrawl-phase timeout in seconds (subset of --timeout).
--test-timeoutintegerSecurity-testing-phase timeout in seconds.
--probe-timeoutintegerPer-probe timeout in seconds (caps a single injection probe).

Advanced

OptionTypeDescription
--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 \
levoai/levoai-shadownet:stable \
--help

docker run --rm -it \
levoai/levoai-shadownet:stable \
scan --help

Next Steps

Was this page helpful?