A name, a snapshot, and a place to keep things.

Updated October 15, 2026 ยท Independent experiment

A session name selects a running browser context. A state file transfers selected data. A profile directory gives the browser persistent storage. Those choices answer different questions.

A named session: keep working in the same run

Repeated commands using the same session can operate the same live page. In that page the lamp stays on because its JavaScript variable still exists. After a plain close and reopen, our test found all seven values empty. A familiar session name alone did not restore them.

Use the running session when one sequence of actions belongs together. Do not treat its name as a durable save. Explicit restore features are another mode with their own behavior; our named-session row did not use --restore.

A state file: carry selected values to a new context

In 0.39.1 our saved state restored normal and HttpOnly cookies, localStorage and sessionStorage. The desk lamp, IndexedDB postcard and cached map did not return. This can be enough for a small application but it is not a whole-browser backup.

Real state files may contain credentials. CarryLab neither requests nor imports them. Our experiment saves only fabricated values from this site in its own temporary directory. Keep that separation when adapting a recipe to your application.

A profile: keep browser-managed state on disk

Our dedicated profile brought back cookies, localStorage, IndexedDB and Cache Storage. A newly opened page did not preserve the old page memory or sessionStorage. A profile may hold much more data than this test describes. Use a new path for the experiment, not a personal Chrome profile.

If another process holds that profile, the browser may refuse to launch. That launch failure is distinct from an empty fixture. Close the owned test browser cleanly before reopening it; do not delete locks or terminate unrelated browser processes as a shortcut.

Keep launch configuration consistent

We reproduced a current report where launching with --idle-timeout 10m and omitting it on a later command returned a blank page and lifecycle.restartedBackground=true. The control using consistent flags retained the live state. That is a specific tested version and sequence, not a universal explanation for missing storage.

If your result is unexpected, preserve the raw response, compare launch flags, and observe the same trial again. The desk itself cannot read the CLI process lifecycle.

Read the official sessions guide and the configuration-change report. Our measured matrix names the tested versions.