# Resume a World

Continue work in an application that already has `.volter/world.json`. Ordinary startup keeps
the current branch's records; you do not need to run `init` again or reset yesterday's work.
For a fresh example, use [getting started](../getting-started.md). For an existing team World,
confirm the workflow in [team onboarding](./team-onboarding.md) first.

## Check where you are

From the app directory, inspect the saved selection and branch:

```console
$ npx volter world status
$ npx volter world branch
```

Check the World name, branch, selected vendors and origin. Run from the application that owns
this config; a different folder can select a different World. If you just cloned the app's Git
repository, install its locked dependencies with its package manager before starting. The config,
seeds and handlers are shared project inputs; ignored running state is local to each machine.

## Resume, or start from known data

Choose the outcome you need:

| Outcome | Action | Data afterward |
|---|---|---|
| Continue with saved records | `npx volter world up` | A previously started branch resumes; a fresh branch loads default data |
| Repeat from your project's default data | `npx volter world reset` | The current branch's changes are discarded and default data is reloaded |
| Preserve this starting point while experimenting | [Branch the World](./branch-a-world.md) | A child starts from this history and records its own changes |
| Return to another branch | `npx volter world checkout <branch>` | That branch resumes with its own data |

Reset only a branch whose changes you intend to discard. A parent with dependent branches
refuses reset; creating a child is not an independent backup of a removable parent. See
[branch lifetime](../concepts/the-model.md#a-branch-is-a-position-not-a-copy).

For an exact replay, inspect `npx volter world clock show` and set the same clock and advances
as the original workflow. Reset alone does not freeze time. App-owned database and browser
session state may need their own setup; resetting a vendor twin does not reset every part of
your application. [Browser testing](./test-in-the-browser.md) shows the separate application
and browser assertions.

## Run and inspect

Run your application's usual command inside the World:

```console
$ npx volter world run -- npm test
$ npx volter world log
$ npx volter world diff
```

Replace `npm test` with your app's development or test command. Read stored results through
the real vendor SDK as well as the World log; reads need not create log entries.
[Inspect a World](./inspect-a-world.md) opens the dashboard and explains its lifetime.

Stop your app consumers when finished, then run `npx volter world down`. It stops compute and
retains data. Purging is a separate deliberate deletion, not a routine end-of-day step.

## When the project changed

Keep the config, package manifest and lockfile in agreement. Do not overwrite an existing World
with `init --force` just to get startup past a version mismatch. [Trial an update](./update-a-twin.md)
in a separate candidate, or [recover the failing call](./recover-a-failed-call.md) from its
recorded cause. An existing app's new vendor, changed handler or seed requires a deliberate
configuration decision; a catalog recommendation does not replace your saved pin.
