Skip to content
Free · local · no account

Normascope — compare your running UI to any reference

Catch the drift.

Compare your running app with a design or approved build, then spot unintended changes before your users do. It runs on your machine and never blocks a commit.

npx norma-scope init
View on npm

Node 18+ · no account · nothing to uninstall

Join early accessshared visual memory for your team

Use Normascope free on your machine today. When your team needs a shared history, stable links and trends, that’s Normascope Cloud.

ScanningMeasuring18.4% shifted

Diff overlay · live preview

A real commit

One line changed. Four pages moved.

Five characters, on a real site. The kind of change that passes review without a comment — and a blast radius nobody predicts by eye.

one file, one line

- max-w-6xl

+ max-w-5xl

Four of seven pages flagged. And three measured exactly 0.00% — a tool that cries wolf is worse than no tool, so the quiet rows matter as much as the loud ones.

  • Try It12.73%
  • Pull Requests9.71%
  • Hero8.27%
  • Commands0.73%
  • Engine0.00%
  • Articles0.00%
  • Lab0.00%
What the report looks like, and how to read it →
The whole workflow

Three commands, then it’s automatic

  1. 01norma-scope init

    Answer a few questions. It sets up the folder and a git hook.

  2. 02norma-scope check

    Photographs your running app and scores every page you track.

  3. 03open the report

    Side-by-side pictures and one number per page. Send it to anyone.

Every command →
On every pull request

One comment, edited in place

The GitHub Action runs the same comparison your laptop runs, then posts one sticky comment. It finds its own previous comment by a hidden marker and rewrites it — ten pushes leave one comment, not ten.

When a summary from main is available, the table gains a delta column: not “8.4%”, but “8.4%, +2.1% since main”.

  • Nothing turns red on its own. The job passes unless you ask for --strict. A score is information, not a verdict.

  • The full report rides along. Side-by-side images and diff overlays are attached as a workflow artifact.

  • Not on GitHub? norma-scope ci comment prints the same markdown to stdout — pipe it into any CI, or into Slack.

feature/hero-redesignintomain
3 commits
normascope-botcommented 2 minutes ago
updated
Normascope
4 checked1 flagged3 clean
Frame
Aligned
Δ
St.
hero-section
2.1%
+0.3%
✓
primary-button
18.4%
+12.1%
⚠
nav-bar
0.3%
−0.1%
✓
pricing-page
1.8%
+0.2%
✓

Full report + diff overlays attached as a workflow artifact

commit abc123f

One step in your workflow

- uses: harshattray/norma@main
with:
base-url: ${{ steps.deploy.outputs.preview-url }}

Drawn in GitHub’s own shape. A screenshot of a real pull request would carry somebody’s repository — the columns, the delta and the sticky behaviour are exactly what the Action posts.

For coding agents

Your coding agent cannot see

Agents ship frontends fast, and blind. They diff text, not pixels — so one finishes a UI task, declares it done, and has no way to know whether the thing it built looks anything like the thing it was asked for.

Normascope gives it a camera and a measuring tape — a number it can move, so it can tell whether its last edit helped. Free and local, the same engine the CLI runs.

The agent loop

Build

agent writes code

Capture

norma-scope capture

Score

aligned % · SSIM

Read

summary.json

Fix

agent edits

Agent writes CSS → captures → compares → sees 25% → fixes → compares → sees 0%. It converges, because for the first time it has something to converge on.

The five MCP tools, and what stops an agent fetching anything →
Then your team grows

Three walls every team hits, in roughly this order

None of them are limits we put there. They’re what a tool running entirely on one laptop physically cannot do.

01

Someone asks “is this new?”

Your run knows about today. It cannot tell you whether this page has been drifting for three weeks or broke an hour ago.

“First exceeded your threshold at a1b2c3 — 14 commits ago.”

02

Your designer asks to see it

The report is a file on your laptop. So you email it. Then you email the next one, and the one after that, and nobody is sure which is current.

A private link they open in a browser — no account, always the latest run.

03

The same page breaks again

You fix it, and two months later you fix something that feels familiar. Nothing anywhere connects the two.

“3rd time this page has regressed.”

Normascope Cloudnormascopecloud

Turn every run into shared visual memory.

Cloud keeps the history, gives your team a stable link, and shows when a page first started drifting. Join early access now and be first to use it when the hosted surface opens.

Join early access

Or see everything it adds
Before you install it

Four things it will never do

  • It won't block your commit. Or your build, unless you explicitly ask it to.

  • It won't change anything. It reports. You decide.

  • It won't upload your screenshots by default. Cloud is opt-in when your team needs shared history.

  • It won't let an AI decide pass or fail. The score is pixels and geometry, always.

Try it on your next commit

Sixty seconds, no account, nothing to uninstall.

npx norma-scope init