How it works
A run takes four steps, and you stay in your coding agent for all of them. You can also watch the one-minute demo.
- Your agent plans the test.
plan_usability_test_suitehas the agent read your project and draft 5 to 10 critical user flows, each written as a situation a stranger can follow, with a clear finish line. - A real person runs it.
create_usability_tasksends one flow to an in-house tester. They use your product for 15 to 30 minutes while their screen, voice and every click are recorded. Hallway Test receives a URL (or a mobile app key) and the task, never your source code. - The session comes back to the agent. The recording is ready within 24 hours, and
get_usability_resultbrings it into the agent whenever you ask for the status. The agent then pulls the evidence with the Jam tools for web apps or themobile_*tools for React Native and Expo apps. - The agent proposes fixes, you choose.
plan_jam_ux_auditmakes the agent prove each friction point from the event log and transcript, link it to the exact second of the video, and rank the fixes. Nothing in your code changes until you pick which fixes to make.
What comes back
Every test returns the raw evidence and, in your agent, a short audit built from it:
- A screen recording of the session, with the tester’s webcam and voice
- A timestamped transcript of what the tester said while thinking aloud
- A full log of clicks, taps, typing and navigation, plus console and network logs
- In your agent: a short summary of how hard the task was, and a table of fixes with linked timecodes and a severity (conversion risk, friction or polish)
The audit follows a strict order: events first, then the transcript, then screenshots, and console or network logs only to explain a problem the events already show. A friction point that the evidence does not support is left out.
All 22 tools
The server exposes 22 tools. Your agent picks them itself; you never have to call one by name.
Run a test
| Tool | What it does |
|---|---|
create_usability_task | Writes and dispatches a real usability test to a real user, based on the flow you describe. |
get_usability_result | Checks a test right away: still with the tester, failed, or the recording ready to audit. |
list_usability_tasks | Lists your recent tests with their status, so you can ask how they are going without a task ID. |
wait_for_usability_result | For clients that keep long requests open: follows the run and hands back the recording as soon as it’s ready. |
cancel_test_run | Cancels a test that was already dispatched. |
Plan tests
| Tool | What it does |
|---|---|
plan_usability_test_suite | Scans your project and drafts a full test suite – 5 to 10 critical user flows, ranked by risk. |
Analyze a recording
| Tool | What it does |
|---|---|
plan_jam_ux_audit | Turns a raw recording into a structured, evidence-backed UX audit by running the tools below in the right order. |
jam_get_details | Recording metadata – type, duration, whether a voice transcript exists, and the shareable link. |
jam_get_user_events | The full click / type / navigation log – the source of truth for what the tester actually did. |
jam_get_video_transcript | The tester’s spoken think-aloud commentary, timestamped. |
jam_get_frames | Pulls screenshots from key moments in the recording to visually confirm a friction point. |
jam_get_console_logs | Browser console logs, used to explain a technical cause behind friction that’s already been proven. |
jam_get_network_requests | Network request log, used to trace a failed call behind an already-evidenced UX problem. |
Mobile apps
| Tool | What it does |
|---|---|
setup_mobile_sdk | Adds the Hallway Test SDK to your React Native or Expo app, with your app key filled in, and confirms the first recording arrived. |
list_mobile_apps | Your mobile apps and their app keys, including apps a teammate shared with you. |
mobile_get_details | Start of every mobile audit: device, app version, duration, crash, what was recorded, and the viewer link. |
mobile_get_user_events | Taps, swipes, text input, screens and navigation, each at its second in the video – the source of truth for a mobile audit. |
mobile_get_video_transcript | What the person said while recording, timed to the video. |
mobile_get_frames | Screenshots from the screen video at the seconds the events point to. |
mobile_get_errors | JavaScript errors, native crashes and frozen screens, each with its time in the video. |
mobile_get_console_logs | JavaScript console output and native logs, filtered by level. |
mobile_get_network_requests | HTTP and WebSocket traffic of the app, used to explain a spinner that never ends or a submit that does nothing. |
Connect it
Hallway Test is a remote MCP server at https://mcp.hallwaytest.ai/mcp, with OAuth sign-in through Google. In Claude Code it is one command:
claude mcp add --transport http hallwaytest https://mcp.hallwaytest.ai/mcp
Step-by-step guides for other clients:
A new account can connect right away, but the first request to dispatch a test answers with a link to book the free pilot call. After the 30-minute call we activate the account, with no need to reconnect: you can send tests right away, and results come back within 24 hours.
What it costs
The first test is free: 1 usability test + 30-minute feedback call. Planned price after public launch: $29 per test, with no subscription. The analysis runs in your own agent, so Hallway Test does not charge for it. See pricing or book the free pilot.