eu-act-check

CLI compliance scanner for EU AI Act Article 50 โ€” scans files for C2PA manifests, EXIF metadata, and AI disclosure text patterns.

eu-act-check ๐Ÿ”

EU AI Act Article 50 compliance scanner โ€” Scan files for C2PA provenance manifests, EXIF/XMP AI generation metadata, and synthetic text markers. Identify compliance gaps before regulators do.

The Problem

August 2, 2026 โ€” the EU AI Actโ€™s transparency requirements under Article 50 take full effect. Any AI-generated or deepfake content distributed in the EU must carry:

  • C2PA provenance manifests (Content Credentials) embedded in the file
  • Metadata declarations identifying the AI tool used to create it
  • Disclosure statements for AI-generated text

Failure is not optional โ€” penalties can reach 3% of global annual turnover or โ‚ฌ15 million.

eu-act-check scans your file tree now and tells you exactly whatโ€™s missing and how to fix it, so August 2 doesnโ€™t catch you off guard.

Quickstart

pip install eu-act-check

# Scan a directory (recursive)
eu-act-check scan ./content/ --recursive

# Quick CI check โ€” exit 0 (pass) or 1 (warn/fail)
eu-act-check check ./blog-post.md

# Deep dive into one file
eu-act-check inspect ./hero-image.jpg

CLI Reference

scan โ€” Scan files or directories

eu-act-check scan <target> [--recursive] [--format table|json] [--remediate]
Argument Description
target File or directory to scan (required)
--recursive, -r Scan directories recursively
--format, -f Output format: table (default) or json
--remediate Show remediation instructions for failing files

inspect โ€” Deep dive on one file

eu-act-check inspect <file>

Shows every detectorโ€™s findings for a single file with full detail and remediation.

check โ€” CI mode

eu-act-check check <file>

Returns exit code 0 (pass) or 1 (warn/fail). Designed for CI pipeline gates.

Detection Layers

Layer What It Checks File Types Standard
C2PA Embedded provenance manifests JPEG, PNG, WebP, MP4, audio, PDF C2PA ISO / Content Credentials
EXIF/XMP/IPTC AI generation tool signatures JPEG, PNG, WebP XMP.xmp.GenerateTool, IPTC.DigitalSourceType
Text patterns AI disclosure markers, watermark comments .md, .txt, .html, .json, .yaml, .xml, .csv 18 regex patterns

Architecture

โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ     โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ     โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
โ”‚              โ”‚     โ”‚              โ”‚     โ”‚                โ”‚
โ”‚  cli.py      โ”‚โ”€โ”€โ”€โ”€>โ”‚  scanner.py  โ”‚โ”€โ”€โ”€โ”€>โ”‚  compliance.py โ”‚
โ”‚  (Typer)     โ”‚     โ”‚  (pathspec)  โ”‚     โ”‚  (aggregator)  โ”‚
โ”‚              โ”‚     โ”‚              โ”‚     โ”‚                โ”‚
โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ     โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ     โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ
                                                   โ”‚
            โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
            โ”‚              โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ           โ”‚          โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎโ”‚
            โ”‚              โ”‚ c2pa.py  โ”‚           โ”‚          โ”‚ table.py โ”‚โ”‚
            โ”‚              โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค           โ”‚          โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”คโ”‚
            โ”‚              โ”‚ exif.py  โ”‚           โ”‚          โ”‚ json_rep โ”‚โ”‚
            โ”‚              โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค           โ”‚          โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏโ”‚
            โ”‚              โ”‚text_patt โ”‚           โ”‚                     โ”‚
            โ”‚              โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ           โ”‚                     โ”‚
            โ”‚           detectors/                โ”‚       reporters/    โ”‚
            โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

Use Cases

๐Ÿ“‹ Pre-deployment audit

eu-act-check scan ./assets/ --recursive --remediate > compliance-report.txt

๐Ÿ”„ CI/CD gate

# .github/workflows/eu-compliance.yml
steps:
  - uses: actions/checkout@v4
  - run: pip install eu-act-check
  - run: eu-act-check check ./dist/ --recursive

Development

git clone https://github.com/vikasudasi/eu-act-check.git
cd eu-act-check
pip install -e ".[dev]"

make lint       # Ruff linting
make typecheck  # mypy type checking
make test       # 87 tests, 85% coverage

Resources