Skip to main content

CLI Reference

This section provides complete reference documentation for all DeepScanBot CLI commands and options.

Commands​

DeepScanBot is built around a set of subcommands, each with a focused purpose.

scan​

Crawl and analyze one or more websites, following links up to a configurable depth and producing a report.

deepscanbot scan https://example.com
deepscanbot scan https://example.com https://another.com --depth=3
deepscanbot scan --input-file=urls.txt --depth=3

# Scan with JSON output
deepscanbot scan https://example.com --json

See the Scan Options section below for all available options, or the Usage Guide for detailed examples.

version​

Show the installed version. The short flag --version is also supported.

deepscanbot version
deepscanbot version --json

doctor​

Verify the installation and environment. Useful for checking that everything is set up correctly.

deepscanbot doctor
deepscanbot doctor --json

config​

Manage CLI configuration. Currently configuration is provided via command-line flags; running this command reports the current state.

deepscanbot config

completion​

Generate a shell completion script for Bash, Zsh, Fish, or PowerShell. See Shell Completion below for setup instructions.

deepscanbot completion bash
deepscanbot completion zsh
deepscanbot completion fish
deepscanbot completion powershell

help​

Show help for any command.

deepscanbot --help
deepscanbot scan --help
deepscanbot help scan

Shell Completion​

Install shell completion so that deepscanbot, its subcommands, and options auto-complete in your terminal.

Bash​

deepscanbot completion bash | sudo tee /etc/bash_completion.d/deepscanbot

To load it in the current shell:

source /etc/bash_completion.d/deepscanbot

Zsh​

deepscanbot completion zsh > "${fpath[1]}/_deepscanbot"

Then start a new shell (or run compinit) so zsh picks up the new completion script.

Fish​

deepscanbot completion fish > ~/.config/fish/completions/deepscanbot.fish

PowerShell​

deepscanbot completion powershell | Out-String | Invoke-Expression

Global Flags​

These flags work with any command (scan, version, doctor, etc.):

FlagDefaultDescription
--jsonfalseOutput results in JSON format
--no-inputfalseDisable all interactive prompts; fail if required input is missing
--verbosefalseDisplay additional informational messages
--debugfalseDisplay detailed debugging information
--quietfalseSuppress non-essential output (only show warnings and errors)
--dry-runfalsePreview actions that would be performed without making changes

Scan Options​

These options are specific to the scan command and can be provided as flags (--option=value) or key=value pairs:

OptionDefaultDescription
--depth2Maximum crawl depth
--timeout2Request timeout in seconds
--concurrency8Max concurrent workers
--host-concurrency2Max concurrent requests per host (0 = use effective concurrency)
--content-types"text/html"Allowed MIME types
--output"crawler_results"Output filename base (automatically gets .txt or .json extension)
--size-1Page size limit in KB (-1 = unlimited)
--proxy""Proxy URL
--uniquefalseUnique URLs only
--show-sourcefalseShow URL source in output
--disable-redirectsfalseDisable following HTTP redirects
--insecurefalseDisable TLS verification
--retries0Retry attempts for failed requests
--retry-backoff"1s"Retry backoff duration
--delay"0s"Politeness delay between requests
--sitemapfalseDiscover URLs from sitemap.xml
--resumefalseResume from previous crawl results
--ignore-robotsfalseIgnore robots.txt rules
--cross-domainfalseFollow external links
--forcefalseOverwrite existing output file without prompting
--yesfalseAuto-confirm all destructive operations
--input-file""Read URLs from a file (one per line)
--stdinfalseRead URLs from standard input (one per line)

Note on flag scopes:

  • Global flags (--json, --no-input, --verbose, --debug, --quiet, --dry-run) work with any command and use --flag syntax only
  • Scan options (--force, --yes, --input-file, --stdin, --depth, --timeout, etc.) only work with the scan command
  • Scan options accept both flag syntax (--depth=3) and key=value syntax (depth=3); a few, such as --force and --yes, are flag-only
  • --json is a global flag that produces JSON-formatted output for supported commands

Note: For detailed examples and usage instructions, see the Usage Guide.