# Install & setup

> For the complete documentation index, see [llms.txt](/llms.txt)

## Requirements

- **Node 20+** (for `npx`; you don't need a Node project).
- **Web:** any OS. **iOS:** macOS with Xcode + the iOS Simulator.

## Set up a project

```sh
# web
npx @unotest/web init

# iOS
npx @unotest/mobile install /path/to/Your.app --update-env
```

`init` / `install` scaffold the `unotest/` layout, write `unotest.config.*`, and
wire MCP config (`.mcp.json` / editor settings) so your agent finds the server
automatically.

## Choosing a browser (web)

During `init` you pick how Chromium is provided:

- **System Chrome / Edge** — zero download. Sets `channel: "chrome"` (or
  `"msedge"`) in your config.
- **Bundled Chromium** — Playwright's build (~150 MB). Run
  `npx @unotest/web install-chromium` if you didn't during init.

You can also run **Firefox** and **WebKit** — set `browsers` in
[config](/reference/config/). Single browser in dev; CI can run all three.

## Wire your editor

unotest is an MCP server. After `init`, these editors pick it up automatically:

- **Claude Code** — via `.mcp.json` and project settings.
- **Cursor** / **Codex** — via their MCP config.

See [Connect your editor](/agent/connect/) for details.

## Verify

```sh
# web
npx @unotest/web e2e welcome

# iOS
npx @unotest/mobile doctor
```

If something's off, the CLI prints a single actionable line — no stack traces in
normal operation. Set `UNOTEST_DEBUG=1` for full diagnostics.
