> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://contentful.com/developers/docs/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://contentful.com/developers/docs/_mcp/server.

# Run history and replay

> Manage previous design system import runs — list them, push a recorded run without regenerating, or re-open a run for edits.

Every successful `experiences import` run is recorded to `~/.config/experiences/runs.json`. Alongside each run, the CLI stores short hashes — called **fingerprints** — of the source files at extraction time and the saved artifact files at save time. Fingerprints are used to detect when a recorded run has drifted from what is on disk. You can list past runs, push a recorded run to Contentful without regenerating, or re-open one for edits.

When `runs.json` has entries, `experiences import` opens on a run picker so you can resume a prior run. The picker is skipped in non-interactive shells and when a routing flag (`--push-from-run`, `--modify`, `--project`, `--auto-accept-scope`) is passed.

![Run picker at wizard start, listing four prior runs with their run IDs, timestamps, project paths, component counts, and push state. The highlighted first row shows a run that has already been pushed; the other three are marked "not pushed". A "Start a new run" option appears below the list.](https://fdr-prod-docs-files-public.s3.us-east-1.amazonaws.com/contentful.docs.buildwithfern.com/25469a14ea8f187766c39983524be91320bd8a5b0271b4bd393f851ff59b74db/docs/assets/images/experience-design-system-cli-run-picker.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIA6KXJSKKNFOCF7G4B%2F20260929%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20260929T235045Z&X-Amz-Expires=604800&X-Amz-Signature=8b082dc89861b2088ab0e659493d5e35229bf74a8dc7248fa2f4d1f01533dad9&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject)

## List runs

```bash
experiences runs
```

Prints a table of prior runs with ID, creation time, project path, save path, component count, push target, and staleness. Show details for a single run by passing its ID or a filesystem path that matches a recorded save path:

```bash
experiences runs <id-or-path>
```

Additional options:

* `--json` — Emit the `RunRecord` as JSON (array without a target, single object with one).
* `--pushed` / `--not-pushed` — Filter by push state.
* `--project <path>` — Filter by source project path.
* `--limit <n>` — Limit the number of rows.

The `runs` subcommand also has the alias `experiences ls`.

## Push a recorded run

Push a prior run to Contentful without re-generating:

```bash
experiences import --push-from-run <id-or-path>
```

Credentials resolve in this order: command flags → the run's recorded push target → saved `experiences setup` values → (in a TTY) an interactive prompt. Design tokens ride along automatically when they were part of the original run.

## Re-open a run for edits

Re-open the wizard at the final review step with a recorded run pre-populated:

```bash
experiences import --modify <id-or-path> [--overwrite | --save-as-new]
```

* `--overwrite` — save back to the run's recorded path.
* `--save-as-new` — always save to a new path (prompts for one).

The modify entry skips extract and generate, so you can tweak a field or its metadata and push again without a full re-run.

## Stale-run detection

The fingerprints described above are compared on every replay. When you replay a run whose source has changed on disk, the CLI refuses with a **stale** notice. Pass `--force` to bypass the check:

```bash
experiences import --push-from-run <id> --force
```

The `STALE` column in `experiences runs` shows a short summary per run.