When to run it yourself
- Your product only runs on your computer. The hosted console cannot reach
localhost. A copy running on your machine can. - You want the evidence on your own disk. Findings, screenshots and verdicts stay in the folder you run it from.
- You want to use your own AI key. The checks that use AI run on a key you set, billed to you by that provider and never metered by us.
You do not need to install anything for that. In the hosted console, Settings → Coding tools gives you a token that lets Claude Code, Cursor, Codex or any MCP client run checks through the console. Claude, Codex, Cursor has the setup.
What you need
- A copy of the nth Labs repository. It is private, so write to hello@nthlabs.dev first.
- Node 20 or newer. Check with
node -v. There is no build step: Node runs the code as it is. - A model key, but only for the checks that use AI. The free checks need none.
Install it, in order
-
Install the dependencies
npm installRun it in the folder you copied. It fetches the library that drives the browser, but not the browser itself. That is the next step.
-
Install the browser
npx playwright install chromiumThis step is easy to miss. Without it, every check that opens a page fails at the start with a message about a missing executable.
-
Point it at your product
node cli.cjs initIt asks a few questions: the product’s name and address, what it is and who it is for, the pages to test (add
| authto a page behind your login), competitors, where the code lives, an optional test account and an optional model key. Only a name or an address is required. It saves your answers in files only your user account can read, then checks the setup against your real product in one browser pass. -
Check the setup whenever you change it
node cli.cjs doctorIt makes one browser pass and spends nothing. It loads every page, tries the sign-in if there is a test account, and exits with an error when something is broken, so it is safe to put in front of anything else.
-
Run the free check, or open the console
node cli.cjs checkup node cli.cjs uicheckupruns every free check in one pass and prints one summary.uistarts the console on your own machine, reachable only from it. It is the same console, minus the settings only a hosted one needs, such as plans and teams.
Adding a model key
Site review, User simulation and the simulated customers need a model key; everything else runs
without one. Give a key to init, or add it later in the console under Settings
→ API keys, where it is stored only on your machine. Commands you type in a terminal
read the key from your environment instead.
node cli.cjs models lists every model you can run, its price and whether its key is
set, and when a key is missing it shows the variable to set. Runs on your own key are billed to
you by the provider and never metered or capped by us.
Hosting a console for your team
The console can also run on a server of your own, so a team opens a web address instead of a
terminal. It needs a long-running container with a disk for its data, not a serverless function,
because a run drives a browser for minutes at a time. On an address other people can reach, it
refuses to start until it has an owner account, set with LABS_EMAIL and
LABS_PASSWORD. Like the hosted console, it will not open addresses on its own
network, localhost included. docs/DEPLOY.md in the repository walks
through it step by step.
Where to go next
- The command line: every check as a command.
- Claude, Codex, Cursor:
node cli.cjs mcplets your coding agent call the checks itself, as tools namedlabs_*. - Running it in CI: check every preview deploy from your workflow.