Chrome extension · Built-in MCP server for AI agents · Free

One scroll. Every screen.

Open your site on a phone, a tablet and a desktop at once — scroll, tap and type in one, the others follow. Or don’t touch it at all: Claude, Cursor or any MCP agent can drive every viewport, click through the flow, take screenshots and read the console — then tell you exactly what broke, and where.

Hand holding a smartphone
390 × 844Phone
Tablet on a desk
820 × 1180Tablet
Laptop with code on a wooden desk
1440 × 900Desktop

Keep scrolling

You drive one.
Three follow.

  1. 01Scroll — by percentage or exact pixels, so long pages line up on every width.
  2. 02Tap & click — the same element is hit on every screen, with a ripple so you see it land.
  3. 03Type — inputs, selects, checkboxes and radios fill in everywhere at once.
  4. 04Capture — one shortcut, a full-page PNG of each viewport. Ready for Jira.
localhost:5173
1440
820
390

Two minutes,
no voice-over needed.

Recorded straight from the extension on a real project. Muted preview below — hit play for sound.

ScreenSync demo video preview
REC 00:00
Scroll syncClick rippleFull-page snipWebM recordingMCP run Open on YouTube ↗
Team reviewing a website on several laptops
The usual QA meeting: four laptops, one bug, nobody on the same breakpoint.

Before / after

DevTools shows you
one screen. Bugs live
between them.

DevTools device modeScreenSync
Screens at once1As many as fit
Repeat each scroll & clickBy hand, per deviceOnce
Bug evidenceSeparate snipping appFull-page PNG + WebM, built in
Localhost / stagingYesYes — X-Frame & CSP handled
AI agent control—MCP server included
Install size—A browser extension, not an Electron app

What’s inside

Six tools you’d otherwise
install separately.

  • 01

    Real-time sync

    Scroll, click, tap and form input mirrored across every viewport at display refresh rate — 60 or 120 fps.

    Scroll · Click · Input
  • 02

    Full-page screenshots

    Stitches the entire scrollable page per device. Or drag a snip area around just the broken bit for the ticket.

    PNG · Snip
  • 03

    Screen recording

    Record the bug happening on all screens together and export high-resolution WebM. No OBS, no Loom.

    WebM
  • 04

    Localhost that just loads

    No more “refused to connect”. X-Frame-Options and CSP frame-ancestors are lifted — only inside ScreenSync tabs.

    :3000 · :5173 · :8080
  • 05

    Inspector & rulers

    Hover to read computed margins and fonts, add any custom breakpoint, toggle realistic device bezels.

    CSS · Breakpoints
  • 06

    Local-only, free

    Nothing leaves your browser. No telemetry, no ads, no sign-up, no watermark on exports.

    0 bytes sent

Model Context Protocol

Hand the boring pass
to your agent.

ScreenSync ships a small MCP server over WebSocket. Claude, Cursor, Windsurf or Antigravity can load a URL into every viewport, click through a flow, take screenshots and pull console errors — then tell you what broke and where.

responsive_navigate
Load a URL into all viewports
responsive_interact
Click, type and scroll everywhere
responsive_capture_screenshots
Images for vision review
responsive_get_logs
Console & network errors

Running in under a minute.

  1. 1

    Add to Chrome

    From the Chrome Web Store. Works in Chrome, Edge, Arc and Brave.

  2. 2

    Pin the icon

    Keep it in the toolbar so it’s one click from any tab.

  3. 3

    Open any page

    Click the icon — your current tab opens on every screen, already in sync.

Get ScreenSync for Chrome

Questions
people ask.

Does it work on localhost and private staging?

Yes. localhost:3000, :5173, 127.0.0.1:8080, intranet IPs — everything runs inside your own browser, so there’s no tunnel to set up.

How does it get around “refused to connect”?

It uses Chrome’s declarativeNetRequest API (Manifest V3) to drop X-Frame-Options and CSP frame-ancestors headers — only for ScreenSync’s own simulation tabs. Your normal tabs keep their protections.

Is it really free?

Yes. No paywall, no device limit, no watermark, no ads. If it saves you time, you can buy the developer a coffee.

What do I need for the AI / MCP part?

Node.js and an MCP-capable client (Claude Desktop, Cursor, Windsurf, Antigravity). Run the bundled server in mcp-server/, point your client at it, and the extension connects over ws://127.0.0.1:8765.

Does it collect my data?

No. URLs, keystrokes, screenshots and recordings stay on your machine. There’s no analytics in the extension.

A cup of coffee on a table

Made by one developer

“I built ScreenSync because I was tired of testing the same checkout form on four breakpoints, one at a time. It’s free, and it’ll stay free.”

— Thong Nguyen

Buy me a coffee via PayPal