Banner CheckAD-NETWORK PREFLIGHT
Open sourcePython & Node

validate-banner: the HTML5 banner validator as a skill & CLI

Install Banner Check as a command-line tool and Claude/Cursor agent skill. Validate HTML5 banners against ad-network requirements — size, clickTag, dimensions, required scripts, external URLs — from your terminal or CI, and auto-fix oversize creatives. Free and open source.

Install

Three ways to install, depending on your setup.

npx skills (recommended)

Auto-detects your agent (Claude Code, Cursor, …) and symlinks the skill into place.

npx skills add viewst/validate-banner-skill

git clone (no Node required)

Copy the skill folder into your agent's skills directory by hand.

git clone https://github.com/viewst/validate-banner-skill
cp -r validate-banner-skill/skills/validate-banner ~/.claude/skills/

Claude Code plugin

Add the repo as a plugin marketplace, then enable validate-banner from /plugin.

/plugin marketplace add viewst/validate-banner-skill

Usage

The skill ships two runners: python3 validate.py (primary, zero-dependency) and node validate.mjs (fallback). Both take the same flags.

  • Auto-detect the network and validate a ZIP
    python3 validate.py banner.zip
  • Validate against one network
    python3 validate.py banner.zip --network amazon_2dsp
  • Compatibility matrix across every network
    python3 validate.py banner.zip --all
  • Auto-fix (strip external URLs, then compress to fit)
    python3 validate.py banner.zip --network amazon_2dsp --fix
  • Machine-readable output for CI
    python3 validate.py banner.zip --json
  • Node fallback (when Python is unavailable)
    node validate.mjs banner.zip --all

Exit codes

0
Pass, or warnings only
1
Validation errors (matrix mode: only when every network errors)
2
Usage or I/O error

Supported ad networks

The same 19 ad-network rulesets as the web validator. Open one for its full requirements:

Auto-fix --fix

--fix strips non-whitelisted external URLs, then compresses images to fit the size limit, writing a new *_fixed file (non-destructive). Compression is lossy; the Python runner uses Pillow when available (pip install Pillow) and otherwise still performs the URL-strip step.

Open source

validate-banner is the same engine behind Banner Check, packaged for your terminal and CI. It's built by Viewst and published open source at github.com/viewst/validate-banner-skill.