> ## 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, 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, a separate product from the YAML test framework: its npm package and CLI are `qa` (not `mo` — `npx mo` is a different project). Install with `npm install -g qa`, authenticate the same MOMENTIC_API_KEY way, install repo skills with `qa skills -y`, and start a session with `qa start "<brief>"` or `qa <url>`. Docs: https://momentic.ai/docs/mo.md.
> You cannot complete the browser sign-in yourself. Read the API key from the exact MOMENTIC_API_KEY environment variable (similarly named vars like BILT_MOMENTIC_API_KEY are ignored), or ask the user to create one at https://app.momentic.ai/settings/api-keys and paste it back.
> Momentic's capability summary for agents is at https://momentic.ai/docs/skill.md. Install the skills with `npx momentic skills --yes` (or `npx momentic-mobile skills --yes` for mobile).
> 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. Physical devices are not supported.

# qa cases

> List and describe the test cases Mo observed.

While Mo tests, it records each flow it exercises as a test case with its
account, prerequisites, steps, and status. A session started with
`--no-test-cases`, or one where Mo has not recorded a case yet, lists none.

## cases list

```bash theme={null}
qa cases list <session-id> [--output <file>]
```

Prints a JSON array of the session's current cases, in the order Mo recorded
them:

```json theme={null}
[
  {
    "id": "6d0f1c3a-2b4e-4f8a-9c1d-7e5b3a2f9c10",
    "name": "Check out with a saved card",
    "status": "issues_found",
    "statusReason": "Checkout fails",
    "account": "QA buyer",
    "description": "Pay for a cart with the buyer's saved card.",
    "bugs": [{ "id": "bug_3f9a1c2e", "name": "Checkout fails" }],
    "stepCount": 5
  }
]
```

`status` is `running`, `verified`, `issues_found`, or `blocked`. `statusReason`
is the filed bug or evidence for `issues_found`, the blocker for `blocked`, and
`null` otherwise or when Mo recorded neither. `account` is empty when the case
runs signed out. `bugs` lists filed bugs only, and each id works with
[`qa bugs describe`](https://momentic.ai/docs/cli-reference/mo/commands/bugs). Linked bugs may take a
few more minutes to appear under a test case while they are verified.

## cases describe

```bash theme={null}
qa cases describe <session-id> <case> [--output <file>]
```

Prints one case with its prerequisites and the steps of one run, in order.
Checks are steps too. `<case>` is the `id` or the exact name. An unknown case
fails and lists the ids and names of up to 20 of the session's cases.

```json theme={null}
{
  "id": "6d0f1c3a-2b4e-4f8a-9c1d-7e5b3a2f9c10",
  "name": "Check out with a saved card",
  "status": "issues_found",
  "statusReason": "Checkout fails",
  "account": "QA buyer",
  "description": "Pay for a cart with the buyer's saved card.",
  "bugs": [{ "id": "bug_3f9a1c2e", "name": "Checkout fails" }],
  "evidence": "The order page shows \"Something went wrong\".",
  "prerequisites": ["The cart has at least one item."],
  "steps": [
    {
      "text": "Open the cart",
      "startedAt": "2026-10-28T17:20:02.000Z",
      "finishedAt": "2026-10-28T17:20:05.000Z"
    },
    {
      "text": "Pay with the saved card",
      "startedAt": "2026-10-28T17:20:41.000Z",
      "finishedAt": "2026-10-28T17:20:58.000Z"
    },
    {
      "text": "Check the order confirmation appears",
      "startedAt": "2026-10-28T17:21:00.000Z",
      "finishedAt": "2026-10-28T17:21:09.000Z"
    }
  ]
}
```

`evidence` is what settled the status. It is `null` while the case is running or
when Mo recorded none.

## Options

**--output \<file>** `string`

Write the JSON to this file instead of stdout and print the file's path.


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