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

# Select and Preview a Run Scope

> List Experiments first, narrow the scope with paths, Eval prefixes, and tags, then confirm the plan with --dry before spending model and Sandbox cost.

When a repository has several Experiments and many Evals, confirm their definitions and preview the plan first. Do not guess an ID from a filename or start a batch that may select the wrong work.

## List runnable Experiments

```sh theme={null}
pnpm exec niceeval exp list
pnpm exec niceeval exp list compare/codex
```

Each line shows the Experiment ID, description, Agent, model, Attempt count, selected Eval count, and labels. `exp list` only discovers and selects; it creates no Invocation, Sandbox, or model call.

Use JSON when a script needs the complete list:

```sh theme={null}
pnpm exec niceeval exp list --json > experiments.json
```

## Narrow the scope with positional arguments

The first positional argument selects an Experiment ID, directory, or filename prefix. Later arguments narrow only the Evals already selected by those Experiments, using their ID prefixes:

```sh theme={null}
pnpm exec niceeval exp compare/codex memory/commit0
```

An exact Experiment ID takes precedence over a prefix. A directory segment must match exactly. An Eval prefix cannot add a task back that is outside the Experiment's long-lived scope.

Use `--tag` when you only want Evals with a particular tag:

```sh theme={null}
pnpm exec niceeval exp compare --tag smoke
```

Put the long-lived scope in an Experiment's `evals`. Positional arguments and `--tag` only narrow one Invocation temporarily.

## Check the plan with `--dry`

Add `--dry` before a real run:

```sh theme={null}
pnpm exec niceeval exp compare/codex memory/commit0 --dry
```

The plan lists Evals, runtime configuration, Attempt ordinals, and whether each position will execute or adopt a historical result. It creates no Invocation, Run, Sandbox, or model call, and writes no JUnit file.

Combine it with `--json` when a machine needs to read the plan:

```sh theme={null}
pnpm exec niceeval exp compare/codex memory/commit0 --dry --json > plan.json
```

After you confirm the count, model, Attempts, and treatment of historical results, remove `--dry` and run the same command.

## Handle selection failures

* When no Experiment matches, the CLI lists browsable directories and suggests running `exp <path> --dry` first.
* When no Eval matches, the CLI explicitly reports `No evals selected`; it does not fall back to the whole Experiment scope.
* To inspect lifecycle commands rather than the execution matrix, use [Inspect the Lifecycle Plan Before Running](/docs/tutorials/debug-lifecycle-plan).
* To decide which old results can be carried, continue with [Rerun and Carry Results](/docs/tutorials/rerun-and-cache).
