Screen recording workflow
Keep source recordings and edited outputs in the user's workspace. Never
overwrite a source recording. Run node scripts/screen-record.mjs doctor before
the first capture in a session.
Read exactly one capture reference for the current host:
- Windows:
references/windows.md - macOS:
references/macos.md - Linux:
references/linux.md
Prepare
- Get the intended audience, outcome, approximate length, output path, and whether the demo needs microphone audio, captions, narration, or a side-by-side layout.
- Write a concise shot list. Prepare and rehearse the application before recording. Silence notifications and remove credentials or private data.
- Use computer-use tools for application interaction. Do not use shell or window-manager focus workarounds during a computer-use workflow.
Capture
- Discover inputs when needed:
node scripts/screen-record.mjs devices. - Start a managed recording:
node scripts/screen-record.mjs start --output <raw.mp4>. Add platform-specific input options only as documented in the current host's reference. - Drive the rehearsed shot list. Leave a short pause before the first action, after meaningful state changes, and before stopping.
- Stop gracefully:
node scripts/screen-record.mjs stop --output <raw.mp4>. If interrupted, runstatus --output <raw.mp4>before attempting another recording. Do not kill FFmpeg unless graceful stop has failed and the user approves recovery. - Inspect the raw file:
node scripts/screen-record.mjs probe --input <raw.mp4>.
Edit
Use references/editing.md for command options and subtitle/narration formats.
- Trim setup and dead time into a new file with
trim. - Use
side-by-sideonly when simultaneous comparison adds meaning. - Add supplied or user-approved SRT captions with
subtitles. - For narration, draft a short script grounded in visible behavior. Generate
audio with
narrate, then combine it withdub.narratefirst checks the local OMLX endpoint, then falls back to SAPI on Windows, built-insayon macOS, or FFmpeg Flite on Linux. Usevoicesbefore selecting a non-default voice. Never clone a person's voice or imply that synthetic narration is a real speaker. - Probe the final file and preview it with
ffplay <file>when an interactive preview is appropriate. Confirm duration, dimensions, audio presence, and that no sensitive content is visible.
Preserve the raw recording, narration text, subtitle source, and final video so the edit remains reproducible.