Catchwhatchangedbeforeyourusersdo.
One command to test prod against dev, catching what changed on every page and breakpoint.
- padding: 24px → 20px
- layout shift @ 768px
- #7a6e62 → #4b5fed
- “Sign up” → “Get started”
- font-weight: 500 → 400
- 3 elements added
- border-radius: 6px → 10px
- img[alt] removed
- line-height: 1.5 → 1.4
- max-width changed from none
- margin-top: 0 → 8px
- h2 → h3
Fast setup.
A few commands and Ohsee is installed, configured, and testing. The config for each test is saved in your project.
Every page, every breakpoint.
Ohsee runs through your test, capturing pages and breakpoints on both prod and dev. Configure it to work with logged-in states, dark mode, and specific flows.
Diffs that explain themselves.
Semantic diffing doesn't just show you what changed — it tells you. Layout shifts, color swaps, or new content. Accept the changes you want and fix what's broken.
See results in about a minute.
Run it in your project
No config yet? Ohsee walks you through the test name, your production and dev URLs, breakpoints, and pages. More advanced setups? Authenticated pages and scripted flows are easier in the visual wizard: ohsee init --wizard.
cd your-projectnpx ohsee-qaTest and learn
Both sides get captured at every breakpoint, diffed, and the report opens when it's done.
npx ohsee-qa marketingSet it and forget it
Once you've created your test, it's easy to validate changes again and again. Images live on your computer, so there's no limit to testing.
git add ohsee.config.json
The rest of the toolkit.
Recorded flows
Sign-in and multi-step journeys are easiest in the visual wizard — ohsee init --wizard. Record click, fill, and wait interactions once; they replay as test steps on every run.
clickfillwaitcapture
Scripted steps
Playwright function bodies, inline or in a file — anything you can drive, you can capture.
Logged-in states
Sign in once per environment. Credentials come from ${ENV_VAR} references and never touch disk.
Variants
Capture light and dark themes, feature flags, or any custom state via init scripts.
Semantic diffing
Changes are named, not just highlighted — so review reads like a changelog.
Any stack, any host
Ohsee compares URLs, not codebases. Webflow, WordPress, Shopify, a static export, someone else's site — if it answers on two addresses, it can be checked.