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.2

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.2
File Size Uploaded
modvet-0.2.2.tar.gz 77.8 kB Details

Built distribution (wheel)

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

Total release size: 142.8 kB

Release files / modvet-0.2.2.tar.gz

Download URL modvet-0.2.2.tar.gz
Size 77.8 kB
Tags Source
SHA-256 checksum
How to use checksums
97b04a9fe6fe16c3ed14d1bfb2a91d5564caf397cc511b8cc4f78fffb81a4642
BLAKE2b-256 checksum
How to use checksums
6a7d33f7e3387533ae1f45a97eb3163386fca566f0944db799bce03d97749403
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.2-py3-none-any.whl

Download URL modvet-0.2.2-py3-none-any.whl
Size 65.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
2a49fc0ad497687cb9ed9de128241ca7bf0b8ae00f30aa1b6946246eaec1b215
BLAKE2b-256 checksum
How to use checksums
f5237809a7ee3799c081b81d4703e15eaca4f9ff96e85898ee3c592a593ef56e
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

This release

0.2.2 This release

2 release files

0.2.1

2 release files

0.2.0

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