> ## Documentation Index
> Fetch the complete documentation index at: https://momentic.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> The canonical docs host is https://momentic.ai/docs. Append .md to any page URL for clean Markdown. Fetch https://momentic.ai/docs/llms.txt for the page index and https://momentic.ai/docs/llms-full.txt for every page in one file.
> For an unattended setup, first check whether Claude Code already has the Momentic plugin. With the plugin, run `npx --yes @momentic/wizard@latest -y --platform web --editor-tools none` and ignore any CLI skills-install suggestion in its output. Otherwise, run `npx --yes @momentic/wizard@latest -y --platform web --editor-tools skills`. Use `--platform ios` or `--platform android` for mobile. Never run an interactive command in a non-TTY shell.
> Mo is the AI QA engineer, separate from repository YAML tests. With the Momentic plugin, use bundled mo-qa and hosted OAuth by default. Without the plugin, install only mo-qa with `npx -y qa skills --target <agent>`. Keep the requested interface. Otherwise, use hosted tools for web or mobile, including private web targets with an existing Connector. Run sessions that need a new tunnel with the qa CLI. If you can't run commands on the machine that reaches the target, ask the user to start the tunnel there, then use hosted tools unless you lack them or the CLI was requested. For a requested hosted session, use an online Connector and pass its name as access, not a CLI tunnel ID. If none is online, ask the user to run `npx -y qa tunnel start --name <name> <address>` on a machine that reaches the target and wait. Do not run login or tunnel commands for them. For a requested hosted session, report unavailable tools or authentication failures without starting a CLI session. For coding-agent bridge setup, ask the user to complete `npx -y qa login`, then add momentic-hosted as a stdio server running `npx -y qa mcp`. Plugin users must explicitly opt in and disable their hosted plugin entry before adding the bridge. Claude.ai/ChatGPT connectors keep https://mcp.momentic.ai with OAuth. After hosted testing completes, read the report and summarize findings and uncovered requirements. Call `momentic_mo_stop_session` only when the user asks or agrees. For CLI sessions, unless the user wants more testing, export the report, run `qa stop <id> --subagents` even if export fails, then summarize. The CLI is qa, not mo. Docs: https://momentic.ai/docs/mo/quickstart.md.
> Ask the user to complete browser sign-in. For local CLI tools, use the exact MOMENTIC_API_KEY environment variable. If it is absent, ask the user to create a key at https://app.momentic.ai/settings/api-keys and set it in the agent's environment. Never print the key or ask the user to paste it into chat.
> Momentic's capability summary for agents is at https://momentic.ai/docs/skill.md. Claude Code users with the Momentic plugin should use its bundled skills and skip CLI skills installation. Otherwise, run `npx momentic skills -y --target <agent>` or `npx momentic-mobile skills -y --target <agent>`. Both install momentic-test, momentic-maintain, and momentic-spec with web/mobile references. Use the running agent's target. The Momentic plugin also includes mo-qa; qa skills installs only mo-qa.
> Tests are YAML files in the user's repository. Use only the step names listed at https://momentic.ai/docs/reference/commands.md and the file structure at https://momentic.ai/docs/core-concepts/file-format.md. Do not invent step names, config keys, or CLI flags.
> Web tests run on Chromium, iOS tests on simulators, and Android tests on emulators.

# Test data

> Generate fake data and run one test against multiple inputs.

Use these recipes to give a test realistic inputs: fake values that change on
every run, or a fixed set of inputs that runs the same test once per row.

## Generate fake data

Momentic preloads the [Faker](https://fakerjs.dev/) library in every step that
accepts templating, and in **JavaScript** steps via the `faker` global.

### Inline via templating

Use `{{ }}` expressions in fields that support templating, such as typed values,
target descriptions, and AI action goals:

```text theme={null}
Username: {{ faker.internet.userName() }}
Email:    {{ faker.internet.userName() }}@usemomentic.com
Lorem:    {{ faker.lorem.words() }}
Index:    the {{ faker.number.int(100) }} item in the list
```

### Persist to the environment

For complex objects or values used across many steps, set them once in a
**JavaScript** step:

```js theme={null}
const person = {
  firstName: faker.person.firstName(),
  lastName: faker.person.lastName(),
  email: faker.internet.email(),
};
setVariable("FAKE_PERSON", person);
```

Then reference it in later steps: `{{ env.FAKE_PERSON.firstName }}`.

### Related

* [Variables](https://momentic.ai/docs/core-concepts/variables.md)
* [Faker documentation](https://fakerjs.dev/)

## Run tests against multiple inputs

Declare test parameters and supply their values in a CSV to run the same test
once per row. Use this for login matrices, pricing tiers, or locale variations.

**1. Declare parameters**

Add a `parameters` key to your test file. Parameters become available as
`env.<NAME>` inside steps.

```yaml inputs-test.test.yaml theme={null}
fileType: momentic/test/v2
id: amber-forest-kite
parameters:
  - name: USERNAME
    required: true
  - name: PASSWORD
    required: true
steps:
  - javascript: assert(env.USERNAME.length > 0)
```

Each entry is `{ name, required?, default?: { string } }`. Add a `default`
when the test should run without the parameter supplied:

```yaml theme={null}
parameters:
  - name: TENANT
    default:
      string: acme
```

**2. Create a CSV**

The first row is the header (parameter names). Each subsequent row is one
run.

```csv inputs.csv theme={null}
USERNAME,PASSWORD
alice@example.com,hunter2
bob@example.com,correcthorse
```

**3. Run it**

```bash theme={null}
npx momentic run --input-csv inputs.csv inputs-test.test.yaml
```

Momentic runs the test once per CSV row. It substitutes the column values
into `env`.

### Related

* [Variables](https://momentic.ai/docs/core-concepts/variables.md)
* [`momentic run`](https://momentic.ai/docs/cli-reference/momentic/commands/run)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.