Scan your project for AI framework usage and check EU AI Act / GDPR compliance
Project description
EU AI Act Scanner
Scan your codebase for AI framework usage and check EU AI Act + GDPR compliance in seconds.
Zero dependencies. Works offline. Detects 26 AI frameworks including OpenAI, Anthropic, LangChain, HuggingFace, and more.
Quick Start
pip install eu-ai-act-scanner
eu-ai-act-scanner scan ./my-project
Or with npx (no install):
npx eu-ai-act-scanner scan ./my-project
What It Does
- Scans your project for AI framework usage (imports, dependencies, model references)
- Maps each framework to its EU AI Act risk level and obligations
- Checks your compliance documentation against requirements
- Reports what's missing with actionable fix instructions
Example Output
EU AI Act Scanner v0.1.0
Scan your project for AI framework usage and EU AI Act / GDPR compliance
Scanning: ./my-ai-app
Scan Results
Files scanned: 47
AI files found: 3
Detected Frameworks:
openai (2 files)
langchain (1 file)
Risk Assessment:
[HIGH] openai: Art. 51-53 (GPAI obligations)
Document OpenAI model usage, register as GPAI deployer...
[MEDIUM] langchain: Art. 50 (transparency), Art. 6 + Annex III
Audit your LangChain pipeline for chained AI models...
Compliance: 1/3 (33.3%) for limited-risk
PASS transparency
FAIL user_disclosure
Clearly inform users that AI is involved in the system
Art. 52(1) - Natural persons must be notified of AI interaction
- Add an 'AI Disclosure' section to your README.md
- Include: which AI models are used, what they do, what data they process
FAIL content_marking
Mark AI-generated content so users can distinguish it from human content
Art. 52(3) - AI-generated text/image/audio/video must be labeled
- Add metadata or visible label to AI-generated outputs
Supported Frameworks (26)
| Provider | Frameworks | Risk Level |
|---|---|---|
| GPAI Providers | OpenAI, Anthropic, Gemini, Mistral, Cohere, DeepSeek, Vertex AI, AWS Bedrock, Azure OpenAI, ZhipuAI, Qwen, Moonshot | High |
| Orchestration | LangChain, LlamaIndex, LiteLLM, CrewAI, AutoGen, Semantic Kernel, Haystack, DSPy, Groq, Replicate, Ollama | Medium |
| ML Infrastructure | HuggingFace, TensorFlow, PyTorch | Low (use-case dependent) |
Usage
Basic Scan
# Scan current directory
eu-ai-act-scanner scan
# Scan a specific project
eu-ai-act-scanner scan ./path/to/project
# Scan with explicit risk category
eu-ai-act-scanner scan ./project --risk high
GDPR Scan
# Include GDPR compliance check
eu-ai-act-scanner scan ./project --gdpr
JSON Output
# Full report as JSON (for CI/CD integration)
eu-ai-act-scanner scan ./project --json
Python API
from eu_ai_act_scanner import EUAIActScanner, GDPRScanner
# EU AI Act scan
scanner = EUAIActScanner("./my-project")
results = scanner.scan()
print(f"Found: {list(results['detected_models'].keys())}")
# Compliance check
compliance = scanner.check_compliance("limited")
print(f"Score: {compliance['compliance_score']}")
# GDPR scan
gdpr = GDPRScanner("./my-project")
gdpr_results = gdpr.scan()
print(f"Personal data: {gdpr_results['processing_summary']['processes_personal_data']}")
CI/CD Integration
Add to your GitHub Actions workflow:
- name: EU AI Act Compliance Check
run: |
pip install eu-ai-act-scanner
eu-ai-act-scanner scan . --json > compliance-report.json
How Risk Levels Work
The EU AI Act classifies AI systems into 4 risk categories:
- Unacceptable: Banned (social scoring, mass biometric surveillance)
- High: Strict requirements (recruitment, credit scoring, medical devices)
- Limited: Transparency obligations (chatbots, content generation)
- Minimal: No specific obligations (spam filters, games)
This scanner detects which frameworks you use and maps them to their default risk level. Your actual risk category depends on your specific use case — the scanner suggests a starting point.
MCP Server
This scanner is also available as an MCP server for AI coding assistants (Claude, Cursor, Windsurf, etc.). Run compliance scans directly from your IDE.
# Connect via direct URL
https://arkforge.fr/mcp
See arkforge.fr/mcp for setup instructions.
Troubleshooting
CLI not found after pip install
If eu-ai-act-scanner is not found after install, your Python user scripts directory may not be on PATH:
# Add to your shell profile (~/.bashrc, ~/.zshrc)
export PATH="$HOME/.local/bin:$PATH"
Or run directly with Python:
python -m eu_ai_act_scanner scan ./my-project
Contributing
Issues and PRs welcome at github.com/ark-forge/eu-ai-act-scanner.
License
MIT — Built by ArkForge
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file eu_ai_act_scanner-0.1.2.tar.gz.
File metadata
- Download URL: eu_ai_act_scanner-0.1.2.tar.gz
- Upload date:
- Size: 22.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
edf583a4d2ca2a595f2fc64f28e332391d964aa0e5ff02c4e12ac1a7c786a495
|
|
| MD5 |
16be14e3d7ce9c9f25d38cf1316a7090
|
|
| BLAKE2b-256 |
fa8cb8f88af76edc3898e58bbbdc616e211dde76561428bca0dd6fc39182050b
|
Provenance
The following attestation bundles were made for eu_ai_act_scanner-0.1.2.tar.gz:
Publisher:
publish-pypi.yml on ark-forge/eu-ai-act-scanner
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
eu_ai_act_scanner-0.1.2.tar.gz -
Subject digest:
edf583a4d2ca2a595f2fc64f28e332391d964aa0e5ff02c4e12ac1a7c786a495 - Sigstore transparency entry: 1005039430
- Sigstore integration time:
-
Permalink:
ark-forge/eu-ai-act-scanner@141d0359cb51526c32fe61723a9a310f4b44b261 -
Branch / Tag:
refs/tags/v0.1.2 - Owner: https://github.com/ark-forge
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@141d0359cb51526c32fe61723a9a310f4b44b261 -
Trigger Event:
release
-
Statement type:
File details
Details for the file eu_ai_act_scanner-0.1.2-py3-none-any.whl.
File metadata
- Download URL: eu_ai_act_scanner-0.1.2-py3-none-any.whl
- Upload date:
- Size: 22.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a43e29284fdc0e70f689d9374a961279192f6b2cc044c6863a46522417476668
|
|
| MD5 |
970a3382e51778d535a5ff441128ac12
|
|
| BLAKE2b-256 |
586e7891addf4bc3cd6e9ae10abfe242706b923069eafccc13f1b3dbf13f396e
|
Provenance
The following attestation bundles were made for eu_ai_act_scanner-0.1.2-py3-none-any.whl:
Publisher:
publish-pypi.yml on ark-forge/eu-ai-act-scanner
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
eu_ai_act_scanner-0.1.2-py3-none-any.whl -
Subject digest:
a43e29284fdc0e70f689d9374a961279192f6b2cc044c6863a46522417476668 - Sigstore transparency entry: 1005039432
- Sigstore integration time:
-
Permalink:
ark-forge/eu-ai-act-scanner@141d0359cb51526c32fe61723a9a310f4b44b261 -
Branch / Tag:
refs/tags/v0.1.2 - Owner: https://github.com/ark-forge
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@141d0359cb51526c32fe61723a9a310f4b44b261 -
Trigger Event:
release
-
Statement type: