Docs
← Home Sign In Get Started

Installation

The CLI is included in the Shieldome package. No separate install needed — just ensure dependencies are available:

bash
pip install -r requirements.txt

Basic usage

bash
python cli.py scan https://example.com

All options

bash
python cli.py scan <URL> [options]

--type        vuln | perf | both | api  (default: both)
--ip          Custom IP override (Host header preserved)
--output      Output file path (e.g. report.pdf, results.json)
--format      json | pdf | sarif | csv  (auto-detected from --output extension)
--cookie      Add request cookie: name=value
--header      Add request header: Name=Value
--quiet       Suppress progress output, show findings only
--no-color    Disable colored terminal output
--no-exit-code Always exit 0 (disables CI/CD fail-on-finding)

Examples

Full scan with PDF output

bash
python cli.py scan https://example.com \
  --type both \
  --output report.pdf

Scan staging server by IP

bash
python cli.py scan https://example.com \
  --ip 10.0.1.42 \
  --type vuln

Export SARIF for GitHub

bash
python cli.py scan https://example.com \
  --output results.sarif

Scan with custom auth cookie

bash
python cli.py scan https://app.example.com \
  --cookie "session=abc123" \
  --type both

Exit codes

By default the CLI uses exit codes to signal findings — useful for failing CI/CD pipelines on security issues:

Exit codeMeaning
0Scan completed — no CRITICAL or HIGH findings
1HIGH severity findings detected
2CRITICAL severity findings detected
💡
Use --no-exit-code if you want to collect results without blocking the pipeline.

GitHub Actions integration

.github/workflows/security.yml
name: Security Scan

on: [push, pull_request]

jobs:
  shieldome:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Install dependencies
        run: pip install -r requirements.txt

      - name: Run Shieldome scan
        run: |
          python cli.py scan ${{ secrets.TARGET_URL }} \
            --type both \
            --output results.sarif \
            --quiet
        # Exit code 2 = CRITICAL findings → workflow fails

      - name: Upload SARIF to GitHub
        if: always()
        uses: github/codeql-action/upload-sarif@v3
        with:
          sarif_file: results.sarif

GitLab CI integration

.gitlab-ci.yml
security-scan:
  stage: test
  script:
    - pip install -r requirements.txt
    - python cli.py scan $TARGET_URL --type both --output results.json
  artifacts:
    paths: [results.json]
    when: always