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 code | Meaning |
|---|---|
0 | Scan completed — no CRITICAL or HIGH findings |
1 | HIGH severity findings detected |
2 | CRITICAL 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