1. Open or target a browser surface using `cmux browser open`.
2. Snapshot the current state of the browser surface using `cmux browser <surface> snapshot --interactive` to get element references.
3. Interact with elements using commands like `cmux browser <surface> click <element>`, `cmux browser <surface> fill <element> <value>`, or `cmux browser <surface> press <key>`.
4. Wait for state changes using `cmux browser <surface> wait` with selectors, text, URL conditions, or load states.
5. Re-snapshot the browser surface after DOM or navigation changes.
6. Extract data using `cmux browser <surface> get <property> <element>`.