Skip to main content

ZenVeil

AI-powered security scanner for repositories and APIs.

ZenVeil scans your GitHub repositories and API endpoints for secrets, supply chain risks, CI/CD misconfigurations, and vulnerable dependencies — then uses AI to explain every finding and generate a fix, all from the terminal.


What is ZenVeil?

ZenVeil is a developer-first security tool that catches the vulnerabilities that slip through code review:

  • Leaked secrets — AWS keys, GitHub tokens, Slack tokens, JWT secrets, hardcoded passwords, .env files committed by accident
  • Supply chain risks — unpinned dependencies, missing lockfiles, dependency confusion attacks, known CVEs via OSV.dev
  • CI/CD misconfigurations — unpinned GitHub Actions, pull_request_target privilege escalation, script injection, overly broad token scopes
  • API security gaps — missing security headers, exposed admin/debug endpoints, insecure CORS, sensitive data leakage

Every finding is tagged with its OWASP Top 10 2021 category and includes a severity rating (CRITICAL / HIGH / MEDIUM / LOW). When you want to dig deeper, AI-powered explain, fix, and triage commands stream a Claude-generated analysis right to your terminal.


Features

Capability Free Pro
Secrets scanning ✓ ✓
Supply chain scanning ✓ ✓
CI/CD scanning ✓ ✓
API scanning ✓ ✓
List, stats, reports ✓ ✓
AI triage (prioritized plan) ✓ ✓
AI explain (per-finding) — ✓
AI fix (streamed patch) — ✓
Auto-PR (GitHub PR with fix) — ✓
OWASP tagging ✓ ✓

Free plan includes unlimited scanning, all scanners, triage, and reports.
Pro plan adds per-finding AI explanation, AI-generated fixes, and automatic GitHub PR creation.


Installation

pip install zenveil

Requires Python 3.8+.


Quick start

# 1. Authenticate — shows a step-by-step guide, then prompts securely
zenveil login

# 2. Scan a GitHub repository (animated multi-step progress)
zenveil scan github owner/repo

# 3. List the findings
zenveil list

# 4. Explain a finding with AI  [Pro]
zenveil explain ZV-ABC123

# 5. Generate a fix  [Pro]
zenveil fix ZV-ABC123

# 6. Open a GitHub PR with the fix automatically  [Pro]
zenveil fix ZV-ABC123 --auto-pr --repo owner/repo --token $GITHUB_TOKEN

Example scan

$ zenveil scan github acme/backend

  Scanning  acme/backend

  ✓  🔍  Cloning repository
  ✓  🔐  Running secrets scanner
  ✓  📦  Running supply-chain scanner
  ✓  🧪  Running code analysis
  ✓  🔬  Aggregating results

  CRITICAL  ZV-001  AWS access key exposed in source code
            secrets · src/config.py : line 12

  HIGH      ZV-002  .env file committed to repository
            secrets · .env

  HIGH      ZV-003  Unpinned GitHub Action (actions/checkout@v3)
            cicd · .github/workflows/deploy.yml : line 8

  MEDIUM    ZV-004  Missing Content-Security-Policy header
            headers · https://api.acme.com

4 findings  (1 critical · 2 high · 1 medium)
$ zenveil explain ZV-001

Finding ZV-001: AWS access key exposed in source code

The string 'AKIA...' matches the AWS access key format and is hardcoded
in src/config.py. Any developer with read access to this repository —
or anyone who ever cloned it — has permanent access to this key until
it is rotated in the AWS console.

Attack scenario: An attacker discovers the key via GitHub search or a
leaked repo archive, authenticates to AWS, and exfiltrates data from S3
or spins up resources for cryptomining. AWS bills accrue to your account.

Remediation: Rotate the key immediately in the AWS IAM console, then
store it as a GitHub Actions secret or in a secrets manager. Never
hardcode credentials in source code.

All commands

DISCOVER
  zenveil demo                              Offline preview — no API key needed
  zenveil version                           Show installed version

ACCOUNT
  zenveil login                             Step-by-step guide + secure key prompt
  zenveil login <api-key>                   Save key directly (scripts; prefer env var)
  zenveil whoami                            Show your email and current plan

SCANNING
  zenveil scan github <owner/repo>          Scan a GitHub repository
  zenveil scan github <owner/repo> --token  GitHub token for private repos
  zenveil scan github <owner/repo> --ref    Specific branch, tag, or commit
  zenveil scan github <owner/repo> --check-cves   CVE lookup via OSV.dev
  zenveil scan github <owner/repo> --exclude-tests  Skip test/fixture files
  zenveil scan api <url>                    Scan an API endpoint
  zenveil scan architecture [path]          Analyze architecture risks (defaults to .)

FINDINGS
  zenveil list                              List findings from the last scan
  zenveil list --severity high,critical     Filter by severity
  zenveil list --scanner secrets            Filter by scanner
  zenveil stats                             Findings breakdown by severity and scanner

AI ANALYSIS  [Pro]
  zenveil explain <id>                      AI explanation of a finding
  zenveil fix <id>                          AI-generated fix with syntax highlighting
  zenveil fix <id> --auto-pr --repo <o/r>  Open a GitHub PR with the fix
  zenveil triage                            Prioritized remediation plan  [Free + Pro]

REPORTING
  zenveil report json <file>                Export last scan to JSON
  zenveil report html <file>                Export last scan to styled HTML

MANAGEMENT
  zenveil ignore <id>                       Suppress a finding
  zenveil ignore <id> --reason "text"       Suppress with a reason
  zenveil help                              Show all commands

BILLING
  zenveil upgrade                           Upgrade to Pro (opens Stripe checkout)
  zenveil upgrade pro --annual              Pro with annual billing
  zenveil billing                           Manage subscription, cancel, update card

DOCS
  zenveil docs                              Open documentation in browser
  zenveil docs auth                         Authentication guide
  zenveil docs secrets                      Secrets scanner guide
  zenveil docs supply-chain                 Supply-chain scanner guide
  zenveil docs api                          API scanner guide

Environment variables

Variable Purpose
ZENVEIL_API_KEY Your ZenVeil API key (alternative to zenveil login)
ZENVEIL_API_URL Override the scanning API base URL
ZENVEIL_WEB_URL Override the web server URL
GITHUB_TOKEN GitHub token for private repo scans and PR automation

Exit codes

Code Meaning
0 Scan completed — no HIGH or CRITICAL findings
1 Scan completed — at least one HIGH or CRITICAL finding
2 Command or scan error

Architecture Guard

Beyond file-level findings, ZenVeil can analyze a repository's architecture — unauthenticated routes, trust-boundary gaps, over-broad agent autonomy, sensitive data flows, and blast-radius risks — and give it a 0–100 architecture score.

zenveil scan architecture            # analyze the current directory
zenveil scan architecture .          # same, explicit
zenveil scan architecture ./service  # analyze another local path
zenveil scan architecture . --json arch.json   # also write the report as JSON

It runs entirely locally (no upload) and honors the same build/vendor exclusions as other scans (node_modules, dist, build, .venv, …). The exit code follows the usual convention: 1 when any HIGH/CRITICAL architectural risk is found, else 0 — so it drops straight into CI. Local analysis uses the shared zenguard engine (the same one the web dashboard runs); install it once with pip install 'zenveil-engine>=0.4.0' and ZenVeil will tell you if it's missing.


Context-aware severity

ZenVeil scans test, fixture, and example files by default — because real credentials are routinely leaked there. Instead of ignoring these files, ZenVeil classifies findings by context and adjusts severity accordingly.

Context label Paths Behaviour
prod src/, lib/, app/ Full severity
test tests/, spec/, __tests__/ Severity downgraded
fixture fixtures/, mocks/, stubs/ Severity downgraded
example examples/, demos/, samples/ Severity downgraded

Use --exclude-tests to skip non-production files entirely.


Roadmap

  • Local repo scanning — zenveil scan repo <path> for air-gapped or pre-push workflows
  • GitLab & Bitbucket — native integrations beyond GitHub
  • SARIF output — upload results to GitHub Advanced Security or any SARIF-compatible tool
  • Policy as code — define fail conditions in a zenveil.yml config file
  • Slack / webhook alerts — notify your team on CRITICAL or HIGH findings
  • IDE extension — surface findings inline in VS Code as you code

License

MIT — see LICENSE for details.


Get your API key and view your dashboard at zenveil.dev

Metadata

Release files for zenveil 1.0.21

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for zenveil 1.0.21
File Size Uploaded Provenance
zenveil-1.0.21.tar.gz 47.6 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for zenveil 1.0.21
File Interpreter ABI Platform
zenveil-1.0.21-py3-none-any.whl Python 3 none any Details

Total release size: 83.2 kB

Release files / zenveil-1.0.21.tar.gz

Download URL zenveil-1.0.21.tar.gz
Size 47.6 kB
Tags Source
SHA-256 checksum
How to use checksums
03892d5d75016e863e1e060ae0ab20f456658e4a2c1ebbc71d12973bb50d1d4a
BLAKE2b-256 checksum
How to use checksums
f791afa66657759f9b0fcf2e479302cbc333231903f40da5113f9ae8d64e1810
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.9

Release files / zenveil-1.0.21-py3-none-any.whl

Download URL zenveil-1.0.21-py3-none-any.whl
Size 35.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4c859c6eaa493741aee98433cad525253a2dfb5f97d72084fb0fffee4d8e8344
BLAKE2b-256 checksum
How to use checksums
7f5b627e788dd7627df5e5f41cc278b152715d4b525c3c6abf9191a418e3eeec
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.9

Security for zenveil 1.0.21

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page