UserProof

How do I set up UserProof in Claude Code?

Updated . By Ryan Doyle, founder of UserProof, a session replay tool for coding agents.

Paste one command in your terminal from your site's project folder. It installs the plugin and starts setup. Claude Code asks about your goal once, you approve a sign-in link in your browser, then it adds the script tag and proves it records. Setup is free for 3 sites, with no card.

Quick picks: where are you?

You areDo this
In a terminal, in your site's project folderPaste the one command in step 1.
Already inside a Claude Code sessionUse the three slash commands under step 1.
Using Codex or Cursor insteadThe commands for both are on the home page. Setup runs the same steps, with small changes for each agent.
Stuck on an errorJump to if it stops.

Set up UserProof in Claude Code, step by step

  1. Install the plugin and start setup. From your site's project folder, paste this in your terminal:
    claude plugin marketplace add GetUserProof/userproof && claude plugin install userproof@userproof && claude "/userproof:setup"
    Inside a running session, use these instead, one at a time:
    /plugin marketplace add GetUserProof/userproof
    /plugin install userproof@userproof
    /userproof:setup
    Done looks like userproof@userproof in claude plugin list.
  2. Answer one round of questions. Claude Code looks through your repo first, then asks in a single step: the one thing visitors should do, roughly what that is worth (you can skip this), and whether to commit and push at the end. Done looks like Claude Code repeating your answers back in one line.
  3. Open the sign-in link. It prints a link and a code. Open the link in your own browser, sign in with GitHub, Google or an emailed link, and approve the code. Done looks like signed in as and your email. The key lands in ~/.config/userproof/key and never in your repo.
  4. Let it add the snippet. It puts the script tag in your site's <head> and shows you the diff. Done looks like one new line and a .userproof file holding your site id.
  5. Let it prove the snippet records. It starts your dev server, opens the page, clicks once and waits for the event. If the dev server won't start, it checks your live page instead. Done looks like status received. It will never report recording without that status.
  6. Restart Claude Code. The plugin's tools load on the next start. Setup itself runs over plain HTTP, so it never needed them. After that, opening the project shows one line when there's something new.
  7. Read the free scan. Setup finishes by scanning your live site for broken elements. If it finds one, you get the defect with the file and line. If it finds nothing, it says so in one line.

A worked example: a Next.js site

Take a Next.js App Router project with a Stripe checkout link and a Vercel deployment. Claude Code finds the live domain in metadataBase and offers “Click Buy” as the goal because it found buy.stripe.com. You pick it and say yes to commit and push. The snippet goes in app/layout.tsx inside <head>. It runs npm run dev -- -p 3123, clicks once through the Playwright MCP, and gets received with env: "dev". It stops only the dev server it started, by its process id. Your goal is saved, and the change goes live with your push.

The script is the same on every framework, and only the file changes. index.html for Vite or a static site, src/app.html for SvelteKit, app/views/layouts/application.html.erb for Rails. What the tag records is on the script tag feature page.

If it stops

What you seeWhat it meansWhat to do
The install command is refusedAuto mode may refuse to install a plugin on its own.Paste the command in step 1 into your own terminal.
expired after the sign-in linkThe sign-in waits up to 10 minutes.Start setup again for a new link.
site_limitFree covers 3 sites, and all 3 are taken.Open the upgrade link it shows. Pro has unlimited sites.
Nothing arrives after the clickThe first-event call returns hints.Claude Code acts on the first hint and retries once.
Warnings about an old keyA leftover key export in your shell profile.Setup names the file and line. Delete that line. The key file is the one that works.

Nobody needs to be watching most of this, except the sign-in link: only your signed-in browser can approve it, so a cloud or background session stops there and waits for you.

What setup costs

Nothing, and no card. Free covers 3 sites and 5,000 recorded visits a month with recordings kept 7 days, read from our pricing page on November 6, 2026. Pro is $29 a month for 50,000 and Scale is $99 for 250,000. Not sure this is the right tool? Our ranking of website analytics for AI coding agents covers the others.

Copy the command from the home page

FAQ

How long does UserProof setup take?

The setup skill plans for a few minutes: about a minute to look and ask, a minute for the snippet and about two to prove it records. The free scan adds 1 to 3 minutes.

Do I need an account before I start?

No. Setup creates one when you open the sign-in link. If you already have one, it adds this site to it, because a second sign-up would replace your key.

Does the UserProof plugin change my code?

It adds one script tag to your site's head and a .userproof file with your site id, and shows the diff. It commits and pushes only if you said yes. Outside your repo, it turns on auto-update for the UserProof marketplace in Claude Code, and tells you how to undo that.

Why don't the UserProof tools show up right after install?

Claude Code loads a plugin's tools the next time it starts. Restart it. Setup runs over plain HTTP, so it works before then.

Sources, read November 6, 2026