End-user browser automation with cmux. Use when you need to open sites, inspect or interact with browser surfaces, wait for page state, and extract data without stealing focus.
Refs are invalidated when page structure changes. Snapshot before interacting, re-snapshot after navigation and modal open/close, and use --snapshot-after on mutating actions so the fresh snapshot comes back with the result.
Troubleshooting
not_found / stale ref: take a fresh snapshot --interactive.
Element missing on visibility or timing: wait --selector "#target" --timeout-ms 10000, or scroll --dy 400, then re-snapshot.
Too many elements: scope the snapshot, e.g. snapshot --selector "form#checkout" --interactive.