Loupe
Motion Tool / Open Source
A timeline-first tool for reviewing web animations. You scrub to the exact moment, point at it, and hand a coding agent something precise instead of a paragraph.
Loupe running on a real project build.
Loupe is a tool I built and put on npm, free to use. It came out of the projects I was working on: the back-and-forth of fixing animations by describing them to a coding agent.
The loop you already know
If you've fixed an animation by describing it to a coding agent, you know how it goes. You say the card comes in too fast. It changes a number. You reload. Still not right, so you describe it better and go again.
The part you can't say
The thing you can't give it is when. You can name the element and what's wrong with it, but the moment it goes wrong is the part you have no words for. “When it fades in.” When exactly? “About halfway.” Halfway through what? That's not you being vague. The animation doesn't hold still long enough to be precise about. It runs for 600 milliseconds and it's gone.
What Loupe does
Loupe ties every animated value in a scene to one clock, so time becomes a number the tool controls. Pausing freezes the number. Scrubbing sets it to 840. You can hold the animation still and look at it.
How you use it
You install it, wrap the scene you're working on, and a panel shows up in the corner while you run the project locally. You click the element you care about, scrub to the frame where it goes wrong, and type your note right there.
What the note carries
What comes out is the part that matters for an agent. The note carries your sentence plus the element, the file, the line number, and the moment: something like 308 milliseconds into 600. Paste that into Claude or Cursor and it doesn't have to guess which thing you meant or when. It opens the file and changes the right number.

A production version when you're done
When you've finished tweaking, you can ask Loupe for a production version, and it hands the animation back as ordinary code with the timeline taken out. It won't invent a number, though. If it can't work a value out honestly, it stops and tells you which one. A wrong duration doesn't throw an error; it just runs slightly wrong from then on.
When it's worth it
Making a scene scrubbable means writing it against the timeline rather than firing animations off, which is a different way of working. For a single fade, it isn't worth it. It pays off once four or five things are moving and they all need to agree on where they are in time.
Get it
It's free. Two lines to start:
npm install @arinze-clinton/loupe -D npx loupe init
I built it while handling projects at work, because I got tired of writing paragraphs to describe a moment I could have pointed at.