# Recorder

URL: https://docs.testvibe.com/reference/forms/recorder-help

**Help URL:**`/reference/forms/recorder-help`

## Purpose

Capture a real browser journey with the TestVibe Recorder browser extension and turn the recorded steps into reviewable Gherkin, then regenerate the test through the standard engine, without leaving TestVibe.

## Common Tasks

- Install the TestVibe Recorder extension (the drawer links to the store when it's missing).
- Choose the **environment** to record against in-app before launch; TestVibe checks the site is reachable from a cloud browser first (offering **Connect a tunnel** / **Record anyway** if not).
- On the read-only launch page, click the single **Begin recording** button.
- Record a journey against the project's test site; steps stream into the drawer timeline live. Full-page and cross-origin navigation is captured as a step — a recording survives leaving the starting page.
- Review the Gherkin, then **Save & Validate** to persist it and regenerate the Playwright code, or **Discard** .

## Key UI Elements

- Record drawer: A live timeline of captured steps that renders each Gherkin line with its Playwright code.
- Gherkin draft: An editable draft of the recorded journey.
- Review-state actions: **Save & Validate** / **Discard** .
- Credential confirmation line: names the secret/variable tokens captured from password / username fields (values are stored, never shown).
- "Extension required" state: A **Get the extension** button when the recorder is not installed.

## Notes

- **Save & Validate always regenerates.** It persists the reviewed Gherkin, then dispatches a normal generation seeded with the recording — there is no separate Verify step and no cold replay of recorded selectors. The feature's button reads "Fixing…" while the regeneration runs, and clicking it opens the standard generation drawer.
- Closing or dismissing the drawer during review **discards** the recording (with a confirm when there are unsaved steps) — the steps are only kept once you choose Save & Validate.
- Credentials typed into password / username fields are tokenized as `{{secret:PASSWORD}}` / `{{var:USERNAME}}` and auto-stored as project secrets/vars; plaintext is never saved.
- A recording that finishes with no actionable steps (only scrolling/navigating, no clicks or typed input) shows an honest empty state — Discard or Record again.
- The recorder is launched from the feature editor's **Record** action.
