How do I set up UserProof in Claude Code?
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 are | Do this |
|---|---|
| In a terminal, in your site's project folder | Paste the one command in step 1. |
| Already inside a Claude Code session | Use the three slash commands under step 1. |
| Using Codex or Cursor instead | The commands for both are on the home page. Setup runs the same steps, with small changes for each agent. |
| Stuck on an error | Jump to if it stops. |
Set up UserProof in Claude Code, step by step
- Install the plugin and start setup. From your site's project folder, paste this in your terminal:
Inside a running session, use these instead, one at a time:claude plugin marketplace add GetUserProof/userproof && claude plugin install userproof@userproof && claude "/userproof:setup"
Done looks like/plugin marketplace add GetUserProof/userproof /plugin install userproof@userproof /userproof:setupuserproof@userproofinclaude plugin list. - 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.
- 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 asand your email. The key lands in~/.config/userproof/keyand never in your repo. - 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.userprooffile holding your site id. - 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. - 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.
- 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 see | What it means | What to do |
|---|---|---|
| The install command is refused | Auto 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 link | The sign-in waits up to 10 minutes. | Start setup again for a new link. |
site_limit | Free covers 3 sites, and all 3 are taken. | Open the upgrade link it shows. Pro has unlimited sites. |
| Nothing arrives after the click | The first-event call returns hints. | Claude Code acts on the first hint and retries once. |
| Warnings about an old key | A 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
- Commands: getuserproof.com and llms.txt, read November 6, 2026
- Steps and timings: the setup skill in the plugin source, read November 6, 2026
- Plans: pricing page, read November 6, 2026