Voice App QA Recorder — Catching Bugs Automated Tests Miss
A reusable local QA harness for voice-first and multimodal apps. Records a real browser session as synchronized screen video, microphone audio, system audio, console logs, app events, and stills — then generates a review file.
GitHub: anoop22/voice-app-qa-recorder
Automated tests miss the lived experience of a voice app. Voice lag, missing transcripts, model state confusion, wrong visual context, scrolling problems, focus glitches, assistant answers out of sync with what the user is actually looking at — none of that shows up in a green CI build.
This recorder captures a real browser session as synchronized artifacts: screen or tab video, microphone audio, tab/system audio when available, timestamped app events, console logs, still frames, and a generated review.md. Local-first, development-oriented, MIT.
Quick start
# Start the local recorder service
npm run qa-recorder
# Listens on http://localhost:4317
# Writes session bundles to qa-recordings/Browser client
import { VoiceAppQARecorder } from './packages/voice-app-qa/src/client';
const recorder = await VoiceAppQARecorder.start({
endpoint: 'http://localhost:4317',
appName: 'my-app',
flowName: 'primary-flow',
captureScreen: true,
captureMicrophone: true,
captureSystemAudio: true,
});
recorder.attachConsole();
await recorder.logEvent('app.voice.input_transcript', { text: '...' });
const review = await recorder.stopAndReview();Reviewing a session
npm run qa-review -- qa-recordings/<session-id>With ffmpeg installed, the review command extracts frames and writes review.md — a single artifact an agent (or a human) can scan to spot the regression.
For agent-facing integration details, see docs/VOICE_APP_QA_AGENT_GUIDE.md in the repo.