Overview
DAWG (Digs Any Web-app Glitch) is a bug-capture and reproduction tool built around a Tauri desktop app and a Chromium Manifest V3 extension. It records a browser session where a bug occurs, sanitizes the captured data locally, and packages the session as a validated OCI Image Layout that can be stored, exported, shared, and replayed later — without needing the original application running.
Under the hood, DAWG pairs a Go CLI engine with the desktop shell and browser extension. The extension records rrweb DOM events, user actions (clicks/inputs), and frontend request/response metadata from the tab where the issue occurs. Once capture stops, the engine runs the session through heuristic PII/secret redaction and an OPA policy gate before packaging it as a digest-addressed OCI artifact. These artifacts can be exported as portable .dawg archives, imported into another DAWG installation, or pushed and pulled through an OCI registry via ORAS.
Replays are reconstructed with Playwright driving Chromium, rendering the recorded rrweb timeline and producing diagnostics plus a final screenshot — letting a developer or QA engineer relive the exact reported glitch on demand.
The project is fully open source (GPL-3.0) and built on an auditable open stack: Go, React, Tauri, Docker, OPA, Playwright, rrweb, mitmproxy, and OCI/ORAS.
Features
- Extension-driven capture — Select a single browser tab from the desktop app or CLI; the extension records rrweb events, click/input actions, and request/response metadata for that tab only.
- Local sanitization before packaging — Heuristic secret/PII redaction rules plus an Open Policy Agent (OPA) policy gate run against the captured JSONL streams before an artifact is ever published.
- OCI-based artifacts — Every capture is stored as a digest-addressed OCI Image Layout, keeping the format standard and portable.
- Portable
.dawgarchives — Validated artifacts export as ZIP-based.dawgfiles that can be imported into another DAWG install or exchanged through an OCI registry. - Persistent artifact catalog — A local catalog tracks captured, imported, and previously discovered legacy artifacts across desktop restarts.
- Full browser replay — Playwright launches Chromium, replays the recorded rrweb session, and captures diagnostics and a screenshot for inspection.
- CLI with CI-ready exit codes — The same engine powers the desktop app and a standalone
dawgCLI, with readable and JSON output modes suited for automation and CI pipelines. - Runtime diagnostics —
dawg doctorchecks the health of the engine, Node.js, mitmdump, Chromium, replay scripts, schema, policy, and extension in one command. - Safety boundaries by design — Input fields are masked in DOM snapshots, imported archives are checked for path traversal/zip-bomb risks before extraction, and the extension only captures the actively selected tab despite requesting broad host permissions.