How it works
Extension.js chooses the profile mode in this order:- Explicit
profilepath (if provided) - Managed profile mode (default)
- temporary (ephemeral) by default
- persistent when
persistProfile: true
- System profile mode when
EXTENSION_USE_SYSTEM_PROFILE=true
Profile capabilities
Profile modes
Extension.js creates managed profiles under:
dist/extension-js/profiles/<browser>-profile/<...>
dist/extension-js/profiles/<browser>-profile/dev
Configure in extension.config.*
CLI usage
Use an explicit profile path directly:start and preview.
Lifecycle notes
- Extension.js creates ephemeral managed profiles for each run.
- Extension.js reuses the persistent managed profile (
dev) across runs. - Extension.js automatically removes old managed profile folders. Set
EXTENSION_TMP_PROFILE_MAX_AGE_HOURSto control the maximum age.
Best practices
- Use managed ephemeral profiles for baseline testing: Reduces hidden state and flaky reproductions.
- Use
persistProfilefor long-lived debug sessions: Keep auth/session/devtools state between runs. - Keep custom profiles per browser family: Avoid cross-browser contamination.
- Use system profile mode intentionally: Useful for reproduction, but less isolated than managed profiles.
Next steps
- Learn more about Browser preferences.
- Learn more about Browser flags.

