External Regulator Scan
Warning-letter crawlers record googletagmanager.com and facebook.net on first paint. The visitor IP is already in a US processor log. Storage or access of information on the terminal equipment lacks a § 25 TDDDG basis.
Local CLI. GDPR, ePrivacy, Schrems II.
KlarAudit launches headless Chromium on your machine, records first-paint requests before any consent click, and scores the page against TTDSG / TDDDG § 25, GDPR Art. 6 and Art. 83, LG München 3 O 17493/20, and Schrems II. No cloud account. No telemetry. Exit code 1 on CRITICAL or HIGH findings.
npx klaraudit scan https://example.com Sample trace
KlarAudit does not click Accept. It watches the idle load, resolves remote IPs with a local GeoIP database, then scores the page with actionable evidence (URL, IP, GeoIP, fix). The trace below matches a representative NON_COMPLIANT run.
klaraudit scan https://shop.example.de --ci
NON_COMPLIANT
$ Scanning https://shop.example.de timeout=15000ms
intercept network (pre-consent, no click)
targets: cookies, scripts, fonts, banner DOM, /impressum, /datenschutz
FAIL Google Tag Manager googletagmanager.com before consent
FAIL Google Fonts fonts.googleapis.com 142.250.185.196 · GeoIP US
FAIL Reject / Ablehnen missing while hosts: googletagmanager.com
OK /impressum 200 /datenschutz 200
Score 45 / 100
Status NON_COMPLIANT (threshold < 60)
| Severity | Category | Finding | Delta | Remediation |
|---|---|---|---|---|
| CRITICAL | TRACKING_CONSENT | Google Tag Manager (googletagmanager.com) loaded on first paint before any consent click | -30 | Load GTM only after opt-in (Consent Mode / CMP gate). |
| HIGH | CROSS_BORDER_TRANSFER | Google Fonts from fonts.googleapis.com resolved to IP 142.250.185.196 in US — visitor IP sent to Google before consent | -15 | Self-host fonts or load Google Fonts only after consent. |
| MEDIUM | BANNER_DARK_PATTERN | Consent UI found, but no equal-prominence Reject / Ablehnen while third-party hosts are active | -10 | Place Ablehnen beside Accept at the same visual weight. |
CI gate: FAIL status is NON_COMPLIANT; CRITICAL or HIGH violations present.
exit 1
Inspection Manifest
Sequential catalog of the checks a German or EU automated scan can trigger before a visitor interacts. Each row pairs the external regulator view with the local CLI finding.
CRITICAL / TRACKING_CONSENT
Catches GTM, Meta Pixel, and other known trackers that fire before the user clicks consent. The runner hooks page requests before navigation and never clicks Accept.
REF: TTDSG / TDDDG § 25, GDPR Art. 6
External Regulator Scan
Warning-letter crawlers record googletagmanager.com and facebook.net on first paint. The visitor IP is already in a US processor log. Storage or access of information on the terminal equipment lacks a § 25 TDDDG basis.
KlarAudit CLI Output
TRACKING_CONSENT CRITICAL -30 Google Tag Manager (googletagmanager.com) loaded on first paint before consent evidence: gtag/js URL · GeoIP US
HIGH / CROSS_BORDER_TRANSFER
Detects Google Fonts, other non-EU third-party hosts, and first-party CDN/hosting edges (for example a Vercel edge outside the EU). Remote IPs are classified with an offline GeoIP database. The scanner does not call a cloud lookup API.
REF: LG München 3 O 17493/20, Schrems II
External Regulator Scan
LG München I held that loading Google Fonts from US servers without consent unlawfully transmits the visitor IP. Schrems II invalidated Privacy Shield. Unannotated US transfers remain an Art. 83 GDPR fine risk.
KlarAudit CLI Output
CROSS_BORDER_TRANSFER HIGH -15 Google Fonts fonts.googleapis.com IP 142.250.185.196 · GeoIP US Self-host fonts or delay until consent
MEDIUM / BANNER_DARK_PATTERN
Validates the first-layer DOM for a reject action with equal prominence to accept. When it fails, the report lists the third-party hosts or cookies that made a banner required. Settings-only paths and visually weaker refusal controls fail this check.
REF: EDPB Guidelines 03/2022
External Regulator Scan
EDPB Guidelines 03/2022 require a genuine choice. A prominent Accept next to a grey settings link is treated as a dark pattern. Equal-prominence Ablehnen is the German baseline.
KlarAudit CLI Output
BANNER_DARK_PATTERN MEDIUM -10 No equal-prominence Reject / Ablehnen while hosts: googletagmanager.com
GATE / CI_GATE
Runs entirely inside your runner or CLI. Zero cloud dependencies. Deterministic exit codes for CI/CD. Network capture, DOM heuristics, and GeoIP stay on the machine that launched the scan. Use --format json for machine-readable output.
REF: CI exit contract, GDPR Art. 32
External Regulator Scan
External scanners do not wait for a SaaS dashboard. They score the site as shipped. A merge that introduces a US font or a pre-consent pixel is visible on the next crawl.
KlarAudit CLI Output
--ci exit 1 status NON_COMPLIANT, or any CRITICAL/HIGH finding npx klaraudit scan URL --format json
Scoring
Base score 100. Deductions apply per incident, then the result is floored at 0. CRITICAL deductions are capped at -60. These are technical heuristics, not a legal opinion.
| Category | Severity | Deduction | Criteria |
|---|---|---|---|
| Tracking Consent | CRITICAL | -30 / incident (CRITICAL total capped at -60) | Named vendors (GTM, Google Analytics, Meta Pixel, DoubleClick, Hotjar, TikTok, Clarity) or tracking cookies fire on first paint. Findings include the request URL and a concrete fix. A missing first-layer banner while third-party activity is present is also CRITICAL. |
| Cross-Border Transfer | HIGH | -15 / unique non-EU asset | Requests resolved outside the EU/EEA via local geoip-lite. Distinguishes Google Fonts, third-party hosts, and first-party CDN/hosting edges. Evidence includes IP and country when available. |
| Banner Dark Patterns | MEDIUM | -10 / incident | A consent UI exists, but Reject / Ablehnen (or equivalent) is missing or weaker than Accept on the first layer. The report lists the third-party hosts/cookies that triggered the check. |
| Mandatory Pages | LOW | -5 / missing page | /impressum or /imprint and /datenschutz or /privacy must return HTTP 200. Findings include the probed URL and status. |
>= 85
COMPLIANT
Heuristic bar cleared for first paint.
60-84
WARNING
Issues remain. Review before treating the page as safe.
< 60
NON_COMPLIANT
--ci exits 1. Fix before launch.
License
KlarAudit is a portfolio project by Shoebill Software. The full CLI is free: local scans, CI gates, JSON, and A4 PDF reports. No account, no telemetry, no paid tier.
Run locally
npx klaraudit scan https://example.com npx klaraudit scan https://example.com --format json docker run --rm --init --ipc=host ghcr.io/shoebill-software/klaraudit scan https://example.com Findings are technical heuristics, not legal advice. For npx, install Chromium once with: npx playwright-core@1.63.0 install chromium — or use the Docker image, which already includes the browser.