Record your screen, window, or browser tab from VS Code. Output is .mp4
(or raw .webm if you skip the transcode). Optional ZoomIt-style zoom +
draw overlay, system + microphone audio mixing, multi-monitor auto-detect.
Commands
Screen Recorder: Start Recording — opens a recording page in your
default browser (VS Code webviews can't access getDisplayMedia, so
the page runs on a localhost server the extension spins up). Pick a
source, hit Record, and the bytes upload back to VS Code where they
get saved (and optionally transcoded to MP4).
Screen Recorder: Convert Video to MP4 — pick any .webm (or other
ffmpeg-readable video) and re-encode it to MP4 (H.264 / AAC).
Settings
screenRecorder.captureAutoSaveDir — folder where recordings drop
when Save automatically is checked. Empty = ~/Videos.
screenRecorder.annotator.* — defaults for the Windows ZoomIt-style
zoom + draw overlay (color, pen size, font size, hotkey fallback).
Requirements
ffmpeg on PATH is required for MP4 output. Install with:
Windows: winget install ffmpeg
macOS: brew install ffmpeg
Linux: apt install ffmpeg (or your distro's equivalent)
Without it, recordings save as raw .webm.
Windows 10 v2004+ is required for the native screen-edge red
border overlay and the ZoomIt-style annotator. macOS and Linux fall
back to the browser's "is sharing" indicator and do not get the
Windows-only annotator hotkeys.
VS Code webviews run inside a sandboxed iframe that doesn't grant the
display-capture permission, so navigator.mediaDevices.getDisplayMedia
can't run in-extension. To work around this, the extension serves a
self-contained recording page on 127.0.0.1:47823 (or the next free
port in a 10-port range) and opens your default browser to it. The page
does the actual capture via getDisplayMedia + MediaRecorder and
POSTs the bytes back to the extension. The localhost server is bound
to loopback only and protected by a per-session 32-byte random token.