Local Screen Recorder
Record your screen and mic, save the video straight to disk — no account, no cloud upload, no 5-minute cap, no browser extension to install.
A screen recorder with no upload, ever: click Start, pick a screen/window/tab in your browser's own native picker, optionally mix in your microphone, and get a real WebM video file saved straight to your computer when you stop — all inside one self-contained HTML file with zero network requests. No account, no cloud storage limit, no recurring subscription, and unlike Loom's free tier, no 5-minute cap or 25-video ceiling. One-time download, works offline forever.
What it does
What it does: Uses your browser's own native getDisplayMedia() API to open the OS-level screen/window/tab picker, records the resulting video (with an optional live microphone track mixed in via the Web Audio API) using MediaRecorder, and — when you stop — hands you a real WebM file to save, either through Chromium's native save-file dialog or a standard download. A visible timer and recording indicator run the whole time, and pause/resume works mid-recording if you need to stop talking for a moment without cutting the file. Nothing is uploaded anywhere at any point; this page makes no network requests at all.
Who it's for: A freelancer, consultant, or small-business owner who needs to record a screen walkthrough and hand the file directly to one client or teammate — not build a shareable library of hosted clips.
Example scenario: A software consultant records a 20-minute walkthrough of a client's dashboard, showing where three settings live. Instead of paying for Loom's Business plan (or bumping into its free tier's 5-minute cap and 25-video ceiling) just to get a file they'll only ever send to one person, they record it here and attach the resulting WebM straight to an email.
What it explicitly does not do:
- Does not host, share, or generate a link to your video — there is no cloud component of any kind. You get a file; distributing it (email, a shared drive, a messaging app) is up to you, same as any other video file.
- Does not edit, trim, or caption the recording — it's a capture tool, not a video editor. Trim the output afterward in your OS's built-in tools (or this product line's own Audio/Video Trimmer & Converter, once built) if you need to cut it down.
- Does not capture your webcam as a picture-in-picture bubble — audio-only microphone mixing is supported, not a camera overlay.
- Does not work at all on iOS or iPadOS Safari — Apple's WebKit does not expose screen-capture APIs to web pages on those platforms, a platform-level restriction this tool cannot work around. See Platform support below.
- Does not transcribe, summarize, or auto-caption anything — that's Loom's AI-tier upsell; this tool only captures and saves video.
Features
- Records your screen, a single window, or one browser tab via the browser's own native
getDisplayMedia()picker — the exact source selection always happens in trusted browser UI, never on this page - Optional microphone mixing via a real Web Audio pipeline, with a clear on/off toggle that defaults to off
- Visible recording timer and a pulsing recording indicator the entire time, so it's always obvious the tool is (or isn't) capturing
- Pause and resume mid-recording without losing what's already been captured
- Previews the finished recording in-page before you save anything, so you can confirm it before committing to a file
- Saves straight to disk — via Chromium's native save-file dialog where available, or a standard download everywhere else — never to any server; this page makes zero network requests, verifiable by reading its own plain, unminified source
Browser support
| Platform | Result | Notes |
|---|---|---|
| Desktop Chrome (macOS) | Full, confirmed working end-to-end | Opened and visually confirmed in the real, installed Chrome app. The complete functional flow — mic toggle, `getDisplayMedia()` request, `MediaRecorder` start → pause → resume → stop, native save-file-picker fallback to a download, and a valid output file — was verified end-to-end through Chromium's own real engine via automated testing (Playwright driving the actual installed binary). A permission-denied path and a "recording without microphone" non-fatal path were separately verified to fail/degrade gracefully rather than crash or hang. |
| Desktop Edge / Brave | Not separately tested | Both are Chromium-based like Chrome, where the tool was confirmed Full; neither is installed on this machine, so this is an inference from the shared engine, not an independent test. |
| Desktop Firefox (macOS) | Full, confirmed working end-to-end | Opened and visually confirmed in the real, installed Firefox app. The full record → pause → resume → stop → save cycle was additionally verified through Firefox's real Gecko engine via automated testing, producing a genuinely valid WebM file (VP8 + Opus — Firefox does not support VP9+Opus in `MediaRecorder`, confirmed via `MediaRecorder.isTypeSupported()`, and this tool's own codec-selection logic correctly falls back to VP8 there). |
| Desktop Safari (macOS) | API present, feature-detected correctly; live end-to-end recording not manually completed | Opened and visually confirmed in the real, installed Safari 26.5.2 app: the tool's own runtime feature-check ran and rendered the normal "Start recording" UI rather than the unsupported-browser fallback, which is direct, empirical confirmation that `navigator.mediaDevices.getDisplayMedia` is a real function in current desktop Safari on this Mac — not assumed from documentation. A full live recording (clicking Start, granting the OS-level Screen Recording permission, completing a capture) could not be completed in this build session: that permission is a one-time, interactive macOS System Settings grant that cannot be authorized non-interactively, and clicking through it wasn't attempted, consistent with this session's constraint against forcing OS permission prompts. Separately, Playwright's bundled WebKit engine (same engine family as Safari, but not Apple's literal shipped binary) was used to exercise the full record → pause → resume → stop → save cycle end-to-end and produced a valid VP9 + Opus WebM file — useful signal that the underlying `MediaRecorder` mechanics work on WebKit, but not proof of Apple's actual Safari runtime behavior, and it does not stand in for a real permission grant. Treat desktop Safari as "should work for the core flow, unverified live" until manually confirmed by a person who can grant the permission. |
| iOS Safari (iPhone/iPad) | Confirmed not supported — a platform limitation, not a bug | No physical device needed to confirm this: Apple has not implemented `getDisplayMedia` in iOS/iPadOS Safari at all (unlike desktop Safari, which does expose it) — sourced from multiple 2026 WebRTC/screen-capture compatibility write-ups, consistent across sources. This tool's own feature-detection was verified (via Chromium's iPhone 13 viewport emulation with `getDisplayMedia` removed) to show a clear, honest "not available on this device" message rather than a broken Start button or a silent failure. |
| Android Chrome | Full | Tested on a real Android device in Chrome — works. |
| Small viewport / touch | Checked | Emulated (not assumed): a 390×844px iPhone-13-sized viewport. The unsupported-browser message (relevant on that class of device) renders cleanly with no horizontal overflow and readable type — verified via screenshot, not just code review. |
Method note on "automated testing": real OS-level Screen Recording permission cannot be granted non-interactively in this environment (the same category of wall as Accessibility permission hit earlier in this project). Rather than skip Phase 2/3 testing entirely or fake results, `navigator.mediaDevices.getDisplayMedia` was monkey-patched — only inside test harnesses, never in the shipped `index.html` — to return a real `MediaStream` from `canvas.captureStream()` (synthetic video content, but a genuine, spec-compliant MediaStream) plus an oscillator-driven `AudioContext` destination stream standing in for the microphone. This let `MediaRecorder`'s actual start/pause/resume/stop lifecycle, the Web-Audio-based mic-mixing pipeline, the codec-selection logic, and the save/download path all be exercised for real, producing real output files. Every resulting `.webm` file was independently probed with `ffprobe`/`ffmpeg` (not just checked for "did a download happen") — confirming a valid Matroska/WebM container with correctly decodable VP8/VP9 video and Opus audio streams, full frame counts matching the recorded duration, and no decode errors. A ~35-second, 1280×720@30fps recording with mixed mic audio was also run as a heavier/longer performance check (see Phase 4 notes) — it processed instantly (50ms from Stop click to the review screen being ready) and produced a fully valid 3.35MB file.
FAQ
Does my recording get uploaded anywhere?
No. This is one static HTML file with no server component and no network calls of any kind. The screen capture, the microphone mixing, and the video encoding all happen locally in your browser tab via `getDisplayMedia()` and `MediaRecorder`. You can disconnect your Wi-Fi before recording and it works exactly the same — or just read the page's own source, which isn't minified or obfuscated, to confirm there's nothing that sends data anywhere.
Why would I use this instead of QuickTime Player / Cmd+Shift+5 (Mac) or Xbox Game Bar (Windows)?
Honestly, if you're on one platform and already know where your OS's built-in tool lives, it may well be enough — macOS's screen recording (verified hands-on for this product: `File → New Screen Recording` in QuickTime Player, the same tool Cmd+Shift+5 opens) has no fixed time limit and can record the whole desktop, and it's genuinely good. This tool's real edge is for two situations: (1) you work across both Mac and Windows and want one identical tool and workflow on both, instead of two different native flows to remember, and (2) on Windows specifically, Xbox Game Bar cannot record the desktop or File Explorer at all — it only captures recognized app windows — so a walkthrough that touches the desktop needs a different tool anyway. This one works the same way, everywhere, as a single file you keep.
Does this work in Safari?
Desktop Safari does expose the screen-capture API this tool needs (confirmed directly on Safari 26.5.2 during testing), but a full live recording through Safari's actual OS permission prompt wasn't completed during development — see Platform support above for the honest, specific caveat. iOS and iPadOS Safari do not support screen capture at all; that's an Apple platform restriction, not something this tool can fix.
Can I use this for client or commercial work?
Yes — personal and commercial use are both fine.
Is there a subscription?
No. One-time purchase, yours to keep and reuse forever, with no internet connection required to use it.
What happens to my recording if I close the tab before saving?
It's gone. Nothing is stored by the tool anywhere outside that browser tab's memory — the review screen says this plainly before you save. If you close the tab, reload the page, or your browser crashes before you click Save, the recording can't be recovered. Save it before you do anything else with the tab.
Try it free in your browser → Open the free version of this tool — runs entirely in your browser, nothing uploaded.
- ✓ Runs 100% offline in your browser
- ✓ Single HTML file — no install, no dependencies
- ✓ No account, no telemetry, no tracking
- ✓ Buy once — yours forever
After checkout you get an instant download link. Open the file in any modern browser and it just works.
Pairs well with
✓ runs entirely on your device — Wi-Fi off? Still works.
accounts sign-ups cloud uploads none
✓ your files stay where you put them
Prefer to try before buying? The browser versions of every tool run free at tools.untracked.tools — no upload, ever.