Loupe
LIVE DEMO

Point at the DOM — right here

Hover any element in the panel and the Selection frame morphs to fit it. Click to leave a mark — pointing is scope-locked to the panel, so it never picks the wrong thing.

Live demo — pointing is locked to this panel.

Account settings

Manage your profile, sign-in and notification preferences.

Free plan. Upgrade to unlock unlimited members and API access.

Profile
Ada Lovelace
ada@acme.com
Picking element
Hover any element · click to leave a mark
AGENT SIDE

What the agent actually receives

The mark you just made — read back over MCP as a low-noise AgentMark payload. No raw DOM dump, no styling soup.

agent · loupe mcp
$ # Leave a mark in the demo above, and it streams in here.
THE PROBLEM

The handoff is lossy today

Without Loupe

See it → switch to the editor → describe “the blue button top-right” → agent guesses the component → maybe edits the wrong file → back-and-forth.

With Loupe

Point at the real node → write one line of intent → the agent reads a project-scoped mark with a stable locator → finds the code and fixes it.

What gets lostexact DOM node · its context · a stable locator · current route & project · accessible name · framework component · whether it’s already done
WHY IT’S TRUSTWORTHY

Locating is the trust

Multi-evidence locating

A locator bundle, weighted resolve, and ambiguity downgrade — not one fragile selector. Low confidence is surfaced as drifted / lost, never a silent wrong pick.

Project & session isolation

Every mark carries project_id, route_key and session_id. Marks never bleed across projects; a project is a mark’s trust boundary.

Local-first, token-guarded

Everything runs on an authenticated local daemon over loopback. The MAIN world stays read-only; the MCP payload never leaks tokens, raw storage, or screenshot bytes.

Done is a real state

resolve_mark closes a task; delete_mark is an explicit user deletion that writes a tombstone. The agent always knows what’s still open.

GET STARTED

Install

Three honest pieces. No single-line curl-pipe-bash — Loupe never pretends.

  1. STEP 1

    Run the daemon

    The local daemon hosts the MCP endpoint on 127.0.0.1:7373 and stores your marks.

    $ npm i -g @loupe-server/server
    $ loupe serve # starts on 127.0.0.1:7373
  2. STEP 2

    Chrome extension Coming soon

    The in-page picker and surfaces live in the extension. Not on the Web Store yet — load it unpacked.

    Load unpacked (guide)
  3. STEP 3

    Claude plugin Coming soon

    Wires the MCP tools into Claude over a token-free stdio proxy. Coming soon.