Usercase

io.usercasePublished by usercase.iov0.2.15Updated Nov 14, 2026

Ask real users on your site and run virtual users in a real browser, then fix what they hit.

Overview

AI-generated overview

Runs virtual users and real-visitor research on your site in a real browser, then helps fix what they hit.

What you can do
  • Set up and check the site: verify the Usercase SDK is running, get the install snippet, connect a project, install the visitor sub-agent.
  • Create and run virtual users: save and list people, open a visit as one of them, act on screen, answer survey cards, read visit results.
  • Record and verify task paths: start a recording, click, type, scroll, generalize page patterns, replay-check and save the path.
  • Build questions and research: read recent visit context, check and save question conditions, send steps to the dashboard, save research drafts.
  • Read and fix findings and issues: list and read reports with evidence, mark findings or issues as fixing or fixed with files and PR links.
When to use it
Use it when you want to test or get feedback on a web app with simulated visitors or real-user research, record expected task paths, or work through usability findings and issues from the Usercase dashboard inside your coding assistant.
Requirements
Runs as a local stdio process (npm package) on desktop only. A Usercase account and project are needed; USERCASE_API_KEY is optional, since the browser sign-in flow can connect on first use. A visible browser is used for sign-in and path recording, and the setup tool installs a user-wide agent definition for Claude Code or Codex.
Before you install
Visitors' writes (sign-up, posting, commenting, saving, liking) are blocked by default; set_writes with 'send' makes them real on the site, so only use it on test or staging sites with the user's decision. Sign-in cookies are stored under .usercase/sessions/ and people data in .usercase/people.json. Tool failure diagnostics are sent to the Usercase team unless USERCASE_DIAGNOSTICS is set to off.

Installation

In SourceWeft

  1. Open Usercase in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Tools

34

check_site

Open the site once as a virtual user and report: does it load, is the Usercase SDK running (which project), is a firewall/bot protection blocking us (and how to unblock, per vendor), is the secret key set. Always run this before starting visits. If it reports a block, stop and tell the user. If you have not read the research procedure yet, call the instructions tool with command research first.

Parametersurlrequired

install_snippet

Get the Usercase script for the connected project, with where to put it per framework. If nothing is connected yet, it opens the browser to connect and says what to tell the user. Use when check_site says the SDK is not running and you are in the site's repository: add the script once to the root layout/document, show the user the diff, then run check_site on the local site to confirm. Do not commit or deploy unless asked. If you have not read the install procedure yet, call the instructions tool with command install first.

Takes no parameters.

save_people

Save virtual users to .usercase/people.json (adds to what is there). People have no names — like real visitors; each gets a number (p1, p2…) to refer to them by. Make people who would really come to this site — varied goals, devices, arrival paths, and states of mind. Do not make everyone a perfect fit for one feature. Show the list to the user before running visits.

Parameterssiterequiredpeoplerequiredresearchsite_aboutrequired

list_people

List the virtual users in .usercase/people.json and whether each has visited yet.

Takes no parameters.

results

Recent visit results (one summary per visit) and what the safety guard blocked. Call after each round of visitor sub-agents finishes — it also says whether the research run goes on to another round.

Parameterslimit

login

Open a visible browser on the user's screen so THEY can sign in to the site with one demo account. Only the resulting session (cookies) is saved, under an account name in .usercase/sessions/ — the password never passes through you or us. Call it once per demo account, one at a time. Returns immediately; tell the user to sign in and close the window, then run check_site — it checks whether the sign-in really worked. If an account is not signed in or has expired, call login again with that same account name. Members (member=true) are spread across the signed-in accounts. Never ask the user for their password.

ParametersurlrequiredwindowaccountlifetimeHours

set_writes

Choose whether visitors' writes reach the site: signing up, posting, commenting, saving, liking. 'block' (the default) sends nothing to the site; 'send' lets those through for real. Only the user can decide this — ask them, and only call this with their answer. 'send' suits a test or staging site, or data that may be messed up; on a live site real users will see what visitors post. Payments, deleting, wallet connections and sign-out stay blocked either way. Saved in .usercase/settings.json.

Parametersmoderequired

connect

Connect Usercase to a project in the browser, or switch to another project. Opens the Usercase dashboard where the user signs in and picks the project. Other tools connect by themselves when nothing is connected — use this only when the user wants another project, or check_site says the SDK sends to a different project.

Takes no parameters.

setup

Install the visitor sub-agent definition (Claude Code: ~/.claude/agents/, Codex: ~/.codex/agents/ — user-wide, nothing is added to the repository) so visitors can be started. Run once if that agent type is not available. The user may need to restart Claude Code afterwards.

Takes no parameters.

question_context

Screens and element words from this project's recent real visits. Call first in the question procedure, before writing a condition — page globs and click targets must match what visitors actually saw. If you have not read the question procedure yet, call the instructions tool with command question first.

Takes no parameters.

question_check

Run a condition over this project's recent visits: how many it matches, grammar problems, overlap with existing questions, and what matched visitors did. Repeat until there are no problems.

Parametersconditionrequired

question_save

Save the question as a DRAFT in the dashboard Inbox, after the user approved it. The server checks the condition again and refuses it if there are problems. Nobody sees it until someone turns it on.

ParameterswhytitlechoicesquestionrequiredconditionrequiredtriggerEnallowOtheranswerTypeacceptWarnings

steps_brief

What is in the user's Several steps window: whether the card is a question or a research invite, the page under Where, and the words they wrote. Call first in the steps procedure. If you have not read the steps procedure yet, call the instructions tool with command steps first.

Parameterssessionrequired

steps_send

Send the condition back to the user's Several steps window (a question or a research invite), after question_check shows no problems. The server checks it again and refuses it if there are problems. The user saves it there.

ParameterssessionrequiredconditionrequiredtriggerEnrequiredacceptWarnings

report_findings

List the findings of a Usercase research's latest report (key, severity, title, who, and whether one is being fixed). Use when the fix command has no finding key. If you have not read the fix procedure yet, call the instructions tool with command fix first.

Parametersaudienceresearchrequired

report_finding

Read one finding of a Usercase research report with all its evidence: why, who, the screen checks from the recordings, the paths people took, what they wrote, and the suggested changes. Read it before looking for the code. If you have not read the fix procedure yet, call the instructions tool with command fix first.

Parametersfindingrequiredaudienceresearchrequired

report_fix

Record on the research report that you are fixing a finding (status fixing, once the user approved the change) or have fixed it (status fixed, with the files, a one-sentence summary for the team, and the pull request link if any). If the last fix of this finding is already live on the site, this starts the next fix (fix 2, 3 …); otherwise it adds to the current one. The report compares people after each fix goes live with the version right before it.

ParametersfilesprUrlstatusrequiredfindingrequiredsummaryaudienceresearchrequired

issue_list

List the open issues of the Usercase project (problems found from visitors' answers to questions on the site): id, title, where, whether it is a clear fix, and whether one is being fixed. Use when the fix command has no issue id. If you have not read the fix procedure yet, call the instructions tool with command fix first.

Takes no parameters.

issue_read

Read one issue of the Usercase project with all its evidence: the question and page, what people chose, what they wrote, the AI's reading, other issues with the same cause, and earlier fixes. Read it before looking for the code. If you have not read the fix procedure yet, call the instructions tool with command fix first.

Parametersissuerequired

issue_fix

Record on a Usercase issue that you are fixing it (status fixing, once the user approved the change) or have fixed it (status fixed, with the files, a one-sentence summary for the team, and the pull request link if any). After a finished fix, starting again records the next fix.

ParametersfilesissuerequiredprUrlstatusrequiredsummary

path_tasks

List the tasks of a Usercase research (from the dashboard) and whether each already has an expected path. Call first in the path procedure. If you have not read the path procedure yet, call the instructions tool with command path first.

Parametersresearchrequired

path_start

Open a fresh browser on the page where the task's intended route begins and start recording its expected path. The page itself is step 1. Starting again discards the recording in progress.

Parametersurlrequiredtaskrequireddeviceaccount

path_click

Click a numbered element from the latest screen. By default it becomes a step of the path (the element is recorded; a new page reached is recorded too). record=false for clicks that are not part of the route (closing a cookie banner) — they are still repeated by path_check. press=false records the element as the final click without pressing it (a Pay or Submit button the safety guard will not press).

Parametersindexrequiredpressrecord

path_type

Type into a numbered field (a search box, a quantity). Not a path step, but repeated by path_check.

Parameterstextrequiredindexrequired

path_scroll

Scroll the recording page to see more.

Parametersdirection

path_pattern

Make a page step match any page of its kind: /notice/6553c3ba → /notice/:id. Use when participants would open a different item than the one you did (the route reads from the code). Applies to every step on that page.

Parametersurlrequiredsteprequired

path_check

Walk the recorded path again in a fresh browser: every clicked element must still be found at its recorded position with the same text, and every page must be reached. Lists the screenshots to show the user. Required before path_save.

Takes no parameters.

path_save

Upload the checked path to the dashboard, replacing the task's expected path. Only after the user approved it. success: keep (default) leaves the task's success condition; page = done on reaching the last page of the path; click = done on the last recorded click. With page or click the saved path ends at that point (later steps are left out: the task ends there, so nobody could reach them). Ask the user before changing it.

Parameterssuccess

research_context

What this project's data says is worth researching: open findings, where real visitors and virtual users left, what virtual users said when they left without getting what they came for, and the researches and drafts that already exist. Call first in the new-research procedure. If you have not read the new-research procedure yet, call the instructions tool with command new-research first.

Takes no parameters.

research_save

Save the research as a DRAFT in the dashboard Inbox, after the user approved it. It becomes a research only when someone creates it there. Paths are page paths starting with / (no host), with :name for the parts that change. Expected paths recorded and saved beforehand as plan-<n> (n = the task's position in tasks, from 1) are uploaded with it.

ParametersbasisrequiredtaskstitlerequiredinviteminutespurposerequiredquestionsfindingIdshypothesesstart_screen

open_visit

Start a visit as one virtual user from people.json. Returns a visit_id and what you see first. You ARE this person from now on. If it says the site is blocking us, stop and report that.

Parameterspersonrequired

act

Do one thing on the screen, as the person. Numbers refer to the latest screen you were shown — only what is in view; scroll to see more. It happens after the pause a real person would take on that screen, then you get the new screen — or a survey card, or the end of the visit.

Parameterstowhyrequireddonetextindexrequiredtimesactionrequiredvisit_idrequired

answer_card

Respond to the survey card on screen, as the person. Decide `bothered` FIRST — most people close these without reading. Only if bothered, pick an option, write your own words, or still close.

Parameterswhyrequiredactionrequiredbotheredrequiredvisit_idrequiredother_textbothered_whyrequiredchoice_indexrequired

instructions

Start here for any Usercase work — whether the user typed a command or just asked in their own words. Returns the step-by-step procedure; follow it as the user's request, and call this before the other Usercase tools. Commands: research (test or get feedback on the site with virtual users; `research` id to have them take part in a research), new-research (plan or create a research / usability study), install (add or install the Usercase script on the site), question (make a question to ask visitors at a moment on the site), steps (write the steps for the question open in the dashboard; `session` = its window id), path (record the expected paths of a research's tasks; `research` id, optional `task`), fix (fix a finding from a research report: `research` id + `finding` key like F1, `audience` real for the real-people report; or an issue from Issues: `issue` id), connect (connect this repository to another Usercase project).

Parametersurltaskcountfocusissuecommandrequiredfindingsessionaudienceresearch

Version history

1
  1. v0.2.15LatestNov 14, 2026

Score

65% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts
  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts

    Declare a GitHub repository with a README, or serve resource_documentation in the OAuth protected-resource metadata.

  • License10 pts

    Declare a license in the repository or the registry entry.