Skip to main content

ModVet

Vet your Claude Code mods before you install them — deterministic, offline, in milliseconds.

Mods run unsandboxed inside the agent process with your full permissions. ModVet scans a mod directory for prompt-injection patterns, dangerous capabilities (shell exec, exfiltration, env/file access, permission-lift hooks, update trojans) and hardcoded secrets — no cloud, no LLM, no account. Findings with file:line, OWASP MCP Top 10 mapping, JSON/SARIF/human output, CI-ready exit codes.

modvet scan ./my-mod                    # Pre-Install-Check (human output)
modvet scan ./my-mod --json             # machine-readable report
modvet scan ./my-mod --format sarif     # GitHub Code Scanning kompatibel
modvet badge --input report.json        # Status-Badge als SVG
modvet snapshot ./my-mod                # Baseline nach sauberer Installation
modvet diff ./my-mod --against .modvet-snapshot.json   # "The update is the attack"

Exit codes: 0 clean · 1 findings ≥ --fail-on (default HIGH) · 2 usage error.

Install (dev)

uv pip install -e .
# oder: python -m modvet.cli scan ./some-mod

What it checks

  • Prompt Injection / Instruction Override (EN + DE, ~400 deterministische Pattern inkl. Homoglyph-/Leet-/Base64-/Zero-Width-/Reverse-Normalisierung)
  • Capability-Kombinationslogik: Einzel-Capabilities (fetch, process.env, fs) sind normale Mod-Arbeit — erst KOMBINATIONEN im selben Ausdruck (Env-Read + POST, Exec + Fetch) werden gemeldet. Plus Angriffsprimitive: Shell-Pipe-Downloads, Base64-Exec, Reverse Shells, Hook-Permission-Lift, Config-Rewrite, Committed-Env-Files, npm-Lifecycle-Skripte.
  • Mod-spezifische Detektoren (v0.2): Prompt-Compose-Rewrite, PreToolUse-Argument-Rewrite, Update-Delta-Trojan.
  • OWASP MCP Top 10 Mapping: jedes Finding trägt seine MCP01–MCP10-Referenz (JSON-Feld owasp_mcp).
  • Update-Drift: snapshot + diff — re-audits nur das Delta nach jedem Mod-Update. Der Update-Mechanismus selbst ist ein Angriffspfad: „the update is the attack".

Vergleichstabelle (Stand 10/2026)

ModVet Snyk (MCP/Skills-Scan) mcp-triage
Fokus Claude-Code-Mods (+ Skills) MCP-Server/Skills, breites DevSecOps MCP-Server-Review
Betrieb lokal & offline, 0 €, kein Konto Cloud-Konto, SaaS-Pricing lokal/Repos
Verfahren deterministisch, keine LLM-Entscheidungen Hybrid (inkl. proprietäre Analyse) Review-basiert
Update-Delta snapshot/diff re-auditiert nur Deltas Neuer Voll-Scan je Version —
OWASP-Mapping MCP Top 10 im Finding-Feld vorhanden —
Output JSON, SARIF, Badge-SVG SaaS-UI/API Markdown
Transparenz jede Regel im Open Source einsehbar teilweise proprietär Open Source

Benchmark

12 echte Mod-Repos (awesome-claude-code-Katalog): FP-Reduktion von 1.815 auf <300 Findings (−85 %) seit der v0.1-Engine — Details in specs/benchmark-results.md und specs/pattern-audit.md.

Status

v0.2 — Phase 1 abgeschlossen (FP-Reduktion, Kontext-Engine), Phase 2 (Outputs/Verteilung) im Bau. PyPI-Publish folgt auf Jörg-GO.

(C) 2026 Jörg Michno. Engine portiert aus ClawGuard v0.5.0.

Metadata

Release files for modvet 0.2.0

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

Source distribution (sdist)

Source distribution for modvet 0.2.0
File Size Uploaded
modvet-0.2.0.tar.gz 77.8 kB Details

Built distribution (wheel)

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

Total release size: 142.8 kB

Release files / modvet-0.2.0.tar.gz

Download URL modvet-0.2.0.tar.gz
Size 77.8 kB
Tags Source
SHA-256 checksum
How to use checksums
376777d9d3fcf237b20e5d91d032175646e967230d1e88d496257cc0e5fe0fd5
BLAKE2b-256 checksum
How to use checksums
0e6cd02e901c4912c2416a8b707353ac6fed766fda61181c8578c2e607007293
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.11.16

Release files / modvet-0.2.0-py3-none-any.whl

Download URL modvet-0.2.0-py3-none-any.whl
Size 65.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8ca0064b755c43aea84bfa020f2420f428fc62ef0d7bf64882e730ffbab102c5
BLAKE2b-256 checksum
How to use checksums
8179d90dd30566c3834cd5de9c9d7ce139429bfba778970b125b587b1a6091f7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.11.16

Release history Release notifications | RSS feed

0.2.2

2 release files

0.2.1

2 release files

This release

0.2.0 This release

2 release files

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